Sådan oprettes fred med deadlines i softwareudvikling

DEADLINE…

Som udvikler er dette en af ​​dine største mareridt, eller skal jeg sige din fjende? Navngiv det, hvad du vil.

Indrøm det. Det skræmmer dig meget. Selv nu, mens du læser disse sætninger, får det dit hår til at stå på enden.

Gad vide hvordan jeg ved det?

Jeg ved det, for jeg har følt det samme. Men nu er frygt fortiden. Jeg har indgået fred med deadlines. Jeg har omfavnet dem.

Så jeg foreslår, at du gør det samme. Omfavn dem, slut fred med dem. Dette er den eneste måde, du kan besejre dem på.

Ok, men hvordan kan du gøre det?

Der er nogle fakta, som vi alle har tendens til at ignorere, når det kommer til at fastsætte en deadline. Mit mål her er at vise dem for dig, så du kan se, at det tager så lidt at begrave frygt og begynde at nyde livet, mens du arbejder på dit projekt uden at bekymre dig om datoer.

Arbejd i et roligt miljø

Skynd dig ikke. Tving ikke noget.

Den første ting du først skal vide er, at du ikke kan finde din fred ved at indstille urealistiske datoer og tvinge dit team til at arbejde i et skyn. Der er virksomheder, der smider store ord ud og viser urealistiske ting for at motivere deres team til at komme videre. Men mens der er nogle fakta, der er åbenlyse for alle i holdet, hvordan kan du forvente, at de tror på det, du siger, hvis det er langt væk fra virkeligheden?

Uden en fast - og vigtigst af alt troværdig - deadline kan du ikke arbejde roligt. Ja, at bevare roen er nøglen her. Når du ikke stoler på datoen, eller når nogen beder dig om at gøre alt inden for en begrænset periode, eller nogen tilføjer flere opgaver til projektet uden at give dig mere tid, begynder du at arbejde manisk. Dette fungerer ikke længere. Dette er helvede.

Når du er under stress og pres, kan du ikke være produktiv. Når du er rolig, er du også bevidst, hvilket betyder at du kan træffe bedre beslutninger.

Vores skøn suger

Windows-brugere husker vinduesdialogen. Skønnet i dialogen er nøjagtigt som vores skøn, er det ikke?

Lad os indrømme det. Vores skøn suger. Vi tror, ​​vi kan gætte, hvor meget tid noget vil tage. Vi har en tendens til at tro, at uanset hvad vi gætter på, vil gå i opfyldelse.

Imidlertid ignorerer vi generelt, når vi gætter, nogle vigtige faktorer, der kan påvirke vores antagelser. Hvorfor? Fordi vi er for optimistiske.

For mig er det første skridt i at skabe fred med deadline og blive bedre til at fastsætte deadlines at indrømme, at vi er forfærdelige estimatorer. Når du omfavner denne kendsgerning, vil du være ved bevidsthed næste gang, og det forhindrer dig i at undervurdere kravene. Og her er en løsning, som du kan blive bedre til at estimere:

Opdel de store ting i mindre ting . Jo mindre det er, jo lettere er det at estimere . Dette øger dine chancer for at have mere nøjagtige estimater.

Godt nok er fint

"Perfekt er det gode fjende." - Voltaire

Folk kan lide store udfordringer. Vi er bedst til at finde en kompliceret løsning til et simpelt problem. Men her er en kendsgerning:

Hvert problem har sin egen enkle løsning, som du sandsynligvis ignorerer.

Forfølg ikke en perfekt løsning. Din første version behøver ikke at være perfekt. Byg et halvt produkt, der kan fungere. Hvis du venter for meget, spilder du dine begrænsede ressourcer og dyrebare tid, eller du går glip af deadline og endnu værre gør slet ikke noget, fordi du jagter perfektion. Løsningen er:

Find den løsning, der giver dig meget værdi og kræver lidt indsats. Og glem ikke, godt kan omdannes til godt senere.

Vær ikke for optimistisk. Vær realistisk.

Jeg ser ledere, der er for optimistiske, hvilket får dem til at sætte optimistiske deadlines for at motivere holdet. Dette er så forkert. Jeg fortæller dig ikke, at du skal være pessimistisk om fremtiden. Tværtimod siger jeg dig, at du skal være i stand til at se enhver mulighed, der kan skabe en flaskehals. Når du først kan se dem, kan du overveje dem og få et mere nøjagtigt skøn.

Der er forskellige hold i virksomheden. Ingeniørarbejde, forretningsudvikling, markedsføring osv. Når forretningsudviklingsteamet tvinger dig til at give dem en deadline i den nærmeste fremtid, skal du ikke blive påvirket af dem. De ønsker, at deres job skal udføres hurtigst muligt.

Husk at hvert hold tænker på deres egen side.

Skel mellem "du skal gøre", "du kunne gøre" og "du vil gøre"

Forståelse er nøglen her. Hvad er kernekravene til frigivelse af dit produkt? Normalt har produktteamet svært ved at differentiere dem.

Når du har et møde, vil et af teammedlemmerne sige: "Vi kunne implementere det, det vil give os så meget værdi" eller en anden vil sige "Vi skal bringe dette i frigivelse." De ser fra deres eget perspektiv. Ok, vi kan implementere dette, og det kan give os en vis værdi, men det vigtige spørgsmål er, at ”har vi brug for det nu? I den første version? ”

Svaret er NEJ i de fleste tilfælde.

De ting, du skal gøre, er hvad du skal fokusere på . Fjern ting, du kunne gøre, og du vil gøre. De er ikke engang omsættelige i de fleste tilfælde.

Sig nej som standard

Der er en vigtig kendsgerning, som vi normalt glemmer, når vi siger "ja" til noget. Vi siger nej til de ting, vi allerede har brug for at gennemføre.

Når du siger ja til noget nyt, tænker du ikke på, hvilken indvirkning det vil have på dine eksisterende aktiviteter.

”Lad os tilføje flere opgaver til projektet, når vi har sat deadline. (Dit projekt skal blive mindre over tid og ikke større.) ” NEJ .

”Vi fokuserede på det der betyder noget, ok. Men hvad med detaljerne? Lad os overveje, hvilke slags detaljer vi har, der kan skabe problemer i fremtiden. ” NEJ . Ignorer alle detaljer til den første version. Forsøg ikke at forudsige fremtiden.

At finde mere tid til ting er ikke problemet her. For meget ting at gøre er problemet. Skel mellem " must-haves " og " nice-to-haves ".

Den eneste måde at få mere gjort på er at have mindre at gøre.

Ændr aldrig deadline

Jeg ser udviklingshold med en dårlig vane, der kan påvirke deres produktudvikling dårligt: ​​tidsplan for omlægning.

Når de går glip af fristen, sætter de en ny. Hvis de ikke kan møde denne, sætter de en anden. Når de gør dette gentagne gange, bliver det en vane. Så bliver denne dårlige vane til deres kultur. Andre hold i virksomheden mister tillid og sætter spørgsmålstegn ved udviklernes arbejde. Endnu værre, kan udviklerholdet selv miste tilliden til hinanden. I sig selv også.

Ændring af fristen er i det væsentlige en erkendelse af fiasko . Det kommer med udsagn som: "Vi kunne ikke planlægge krav, vi sagde ikke nej nok, vi fokuserede ikke på det der betyder noget, vi skubbede vores hold til at gøre urimelige ting i en urimelig tid."

Vær opmærksom på, at der altid vil være nogle problemer

At være for optimistisk får dig til at ignorere det faktum, at der kan være nogle problemer. Vær opmærksom. Sandsynligvis vil noget gå galt. Og dette vil medføre, at du mister noget tid på at ordne ting. Så bedre at være forberedt på dårlige scenarier. Jeg siger ikke, at du skal være pessimistisk, og du skal prøve at forudsige fremtiden og forberede dig selv og dit team på det ukendte. Bare find en balance mellem optimisme og pessimisme. Vær realistisk.

Min erfaring viste mig, at nogle ting altid går galt i softwareudvikling. Mit råd til dig er:

Tilføj lidt tid til din deadline, inden du indstiller den, ved at overveje, at noget kan gå galt.

Tilføj ikke flere mennesker til et projekt

Mange mennesker tror, ​​at de kan fremskynde processen, hvis de tilføjer flere mennesker til projektet. De går dog glip af et meget vigtigt punkt. Lad os huske Brooks lov:

Tilføjelse af menneskelige ressourcer til et sent softwareprojekt gør det senere. - Freed Brooks

Ifølge Brooks på Wikipedia er der en trinvis person, der, når det føjes til et projekt, får det til at tage mere, ikke mindre tid. Så hvorfor fungerer det på denne måde?

  • Det tager lidt tid for de mennesker, der føjes til et projekt, at blive produktive. Du bliver nødt til at uddanne dem først. Du har allerede begrænset menneskelige ressourcer, og du bliver nødt til at afsætte disse ressourcer til at uddanne nyt medlem. Da de er nye, vil de også introducere nye bugs, der flytter projektet længere væk fra færdiggørelsen.
  • Kommunikationsomkostninger stiger, når antallet af mennesker stiger.
  • Tilføjelse af flere mennesker til en meget opdelelig opgave, såsom rengøring af værelser på et hotel, reducerer den samlede varighed af opgaven. Imidlertid er andre opgaver, herunder mange specialiteter i softwareprojekter, mindre delelige. Et andet godt eksempel på dette af Brooks er: mens det tager en kvinde ni måneder at få en baby, "kan ni kvinder ikke føde en baby på en måned".

En anden smule bevis fra Richard Dalton til at forstå, hvorfor tilføjelse af flere mennesker er forkert, er:

”Hold er uforanderlige. Hver gang nogen forlader eller slutter sig til, har du et nyt hold, ikke et ændret hold. ” - Richard Dalton

Udsæt ikke

Lad mig hjælpe dig med at forstå, hvad jeg mener. Sidste uge havde vi et møde om at definere fristen for et nyt element i vores produkt. Vi talte om, hvilke opgaver der er vores prioritet, og hvordan vi skal gennemføre dem på en effektiv måde.

Der var en opgave, som vi har spildt vores tid kraftigt på. Der var tre måder at gennemføre den opgave på, men på en eller anden måde sad vi fast. Vi kunne ikke vælge, fordi udviklere forsøgte at forudsige fremtiden. De startede hver sætning med "Hvad hvis".

Du kan ikke forudsige, hvad fremtiden vil bringe dig. Forbered dig ikke for meget på det ukendte.

Jeg taler ikke om store tekniske beslutninger her. Selvfølgelig, hvis du skal beslutte din kerneteknologi, skal du sove på den for at finde den rigtige løsning. Men brug ikke din tid på små ting. Usikre ting øger møderne og blokerer for dine fremskridt, fordi din backend-proces kontinuerligt arbejder på dem.

Du må ikke udsætte det, beslutte det og gå videre.

Skift din mentalitet fra "Lad os tænke over det" til "Lad os beslutte nu". Beslutninger vil fremskynde dine fremskridt. Når noget er besluttet, vil det være klart for alle i holdet. Alle ved præcis, hvad de skal gøre.

Kommuniker: Se, hvor er flaskehalsen?

Du planlagde alt. Du definerede, hvad du skal fokusere på, og hvad du skal gøre. Du ved præcis, hvor meget tid det vil tage (sandsynligvis tager du fejl). Så fristen er afgjort. Er det nok?

INGEN.

Som jeg nævnte ovenfor, er der altid en mulighed for, at noget kan gå galt. Mens dine teammedlemmer arbejder på deres opgaver, kan noget blokere dem. Noget kan stoppe dem for at afslutte deres opgaver til tiden. Du skal se, hvor flaskehalsen er, og hvad den er.

Kommunikation er nøglen her. Du skal holde hold synkroniseret. Nogle gange kan teammedlemmer gå ind i en kasse, og det kan være meget svært for dem at se, hvad der sker ud af det. Det er her, du skal komme ind på scenen. Når du har identificeret flaskehalsen, skal du fjerne den, så dine teammedlemmer kan fortsætte fra det sted, hvor de sidder fast.

Jeg ønsker dig held og lykke med at overholde alle dine deadlines :)

Tak for læsningen.

Oprindeligt offentliggjort på //huseyinpolatyuruk.com.