Како се помирити са роковима у развоју софтвера

РОК…

Као програмер, ово је једна од ваших највећих ноћних мора или бих требао рећи ваш непријатељ? Дајте му име како год желите.

Признај. Много те плаши. Чак и сада, док читате ове реченице, коса вам стоји на крају.

Питате се како то знам?

Знам јер сам и ја исто осећао. Али сада је страх у прошлости. Помирио сам се са роковима. Пригрлио сам их.

Зато предлажем да урадите исту ствар. Загрли их, помири се с њима. Само на тај начин можете да их победите.

Ок, али како то можеш?

Постоје неке чињенице које сви обично занемарујемо када је у питању одређивање рока. Циљ ми је овде да вам их покажем како бисте видели да је потребно толико мало да сахраните страх и почнете уживати у животу док радите на свом пројекту без бриге о датумима.

Радите у мирном окружењу

Не жури. Не форсирај ништа.

Прво што бисте требали знати је да не можете пронаћи свој мир постављањем нереалних датума и присиљавањем свог тима да ради у налету. Постоје компаније које избацују велике речи и показују нереалне ствари како би мотивисале свој тим да иде напред. Али иако су неке чињенице очигледне свима у тиму, како можете очекивати да верују у оно што говорите ако је то далеко од стварности?

Без фиксног - и што је најважније веровати - рока не можете мирно радити. Да, задржавање смирености је овде кључно. Када не верујете датуму или када вам неко каже да све урадите у ограниченом временском периоду или неко пројекту дода више задатака, а да вам не да више времена, почињете манијакално да радите. Ово више није посао. Ово је пакао.

Када сте под стресом и притиском, не можете бити продуктивни. Када сте мирни, такође сте при свести, што значи да можете доносити боље одлуке.

Наше процене су срање

Корисници оперативног система Виндовс памтиће тај дијалошки оквир прозора. Процена у дијалогу је потпуно слична нашој процени, зар не?

Признајмо. Наше процене су срање. Мислимо да можемо да претпоставимо колико ће времена нечему требати. Имамо тенденцију да верујемо да ће се оно што претпоставимо остварити.

Међутим, генерално, када погађамо, занемарујемо неке важне факторе који могу утицати на наше претпоставке. Зашто? Јер смо превише оптимистични.

За мене је први корак у помирењу са роком и побољшању постављања рокова признање да смо страшни проценитељи. Када прихватите ову чињеницу, следећи пут ћете бити при свести и то ће вас спречити да потцените захтеве. И ево решења за боље процењивање:

Подијелите велике ствари на мање ствари . Што је мањи, то је лакше проценити . Ово ће повећати ваше шансе за тачније процене.

Довољно добро је

„Савршено је непријатељ добра.“ - Волтаире

Људи воле велике изазове. Најбоље је пронаћи сложено решење за једноставан проблем. Али овде је чињеница:

Сваки проблем има своје једноставно решење које вероватно игноришете.

Не јурите савршено решење. Ваша прва верзија не мора бити савршена. Направите полупроизвод који може да функционише. Ако превише чекате, изгубићете своје ограничене ресурсе и драгоцено време, или ћете пропустити рок, а још горе уопште не учинити ништа јер јурите за савршенством. Решење је:

Пронађите решење које ће вам донети велику вредност и захтева мало напора. И не заборавите, добро се касније може претворити у сјајно.

Не будите превише оптимистични. Буди реалан.

Видим менаџере који су превише оптимистични због чега постављају оптимистичне рокове да мотивишу тим. Ово је тако погрешно. Не кажем вам да бисте требали бити песимистични према будућности. Напротив, кажем вам да бисте требали бити у могућности да видите сваку могућност која може створити уско грло. Једном када их видите, можете их размотрити и имати тачнију процену.

У компанији постоје различити тимови. Инжењеринг, пословни развој, маркетинг итд. Када вас тим за пословни развој примора да им дате рок у врло блиској будућности, они на вас не би смели да утичу. Желе да се њихов посао заврши што пре.

Запамтите да сваки тим размишља о својој страни.

Разликовати између „мораш учинити“, „могао би учинити“ и „желиш учинити“

Разумевање је овде кључно. Који су основни захтеви за објављивање вашег производа? Обично их тим производа тешко разликује.

Када имате састанак, један од чланова тима ће рећи: „Могли бисмо то да применимо, донеће нам толику вредност“ или ће други рећи „Требало би ово да објавимо“. Они гледају из своје перспективе. Ок, можемо то применити и то нам може донети неку вредност, али важно питање је „да ли нам је то потребно сада? У првој верзији? “

Одговор је НЕ у већини случајева.

Ствари које морате да урадите су оно на шта треба да се усредсредите . Елиминишите ствари које сте могли и желите да урадите. О њима се у већини случајева чак не може преговарати.

Подразумевано кажите не

Постоји једна важна чињеница коју обично заборавимо када нечему кажемо „да“. Кажемо не стварима које већ морамо да довршимо.

Када кажете да нечему новом, не размишљате о утицају који ће то имати на ваше постојеће задатке.

„Хајде да додамо још задатака пројекту након што одредимо рок. (Ваш пројекат би временом требао постати мањи, а не већи.) “ НЕ .

„Фокусирали смо се на оно што је важно, ок. Али шта је са детаљима? Хајде да размотримо какве детаље имамо и који могу стварати проблеме у будућности. “ НЕ . Занемарите сваки детаљ прве верзије. Не покушавајте да предвиђате будућност.

Проналажење више времена за ствари овде није проблем. Проблем је превише посла. Разликовати између „ оних који морају имати “ и „ оних који се лепо морају имати “.

Једини начин да се више уради је мање посла.

Никада не мењајте рок

Видим развојне тимове са лошом навиком која може лоше утицати на развој њихових производа: премештање рока.

Када пропусте рок, постављају нови. Ако не могу да упознају овог, поставиће другог. Када то раде више пута, то им постаје навика. Тада се ова лоша навика претвара у њихову културу. Други тимови у компанији губе поверење и доводе у питање рад програмера. Још горе, сам тим програмера може изгубити поверење једни у друге. И у њима самима.

Промена рока је у суштини признање неуспеха . Даје изјаве попут: „Нисмо успели да планирамо захтеве, нисмо рекли не довољно, нисмо се усредсредили на оно што је важно, натерали смо наше тимове да раде неразумне ствари у неразумном времену.“

Имајте на уму да ће увек бити неких проблема

Превише оптимистични узрокују да занемарите чињеницу да можда има неких проблема. Буди опрезан. Вероватно ће нешто кренути по злу. А ово ће довести до губитка времена на поправљању ствари. Зато је боље бити спреман за лоше сценарије. Не кажем да треба да будете песимисти и да покушате да предвиђате будућност и припремите себе и свој тим за непознато. Само пронађите равнотежу између оптимизма и песимизма. Буди реалан.

Моје искуство ми је показало да у развоју софтвера неке ствари увек пођу по злу. Мој савет вам је:

Додајте време крајњем року пре него што га одредите узимајући у обзир да нешто може поћи по злу.

Не додајте више људи у пројекат

Многи људи мисле да могу убрзати процес ако додају више људи у пројекат. Међутим, пропуштају врло важну тачку. Сетимо се Бруксовог закона:

Додавање људских ресурса касном софтверском пројекту то чини касније. - Фреед Броокс

Према Броокс-у на Википедији, постоји додатна особа која, када се дода пројекту, чини да му треба више, а не мање времена. Па зашто то функционише на овај начин?

  • Потребно је неко време да људи додати пројекту постану продуктивни. Прво ћете их морати образовати. Већ имате ограничене људске ресурсе и мораћете да их намените за образовање новог члана. Такође, будући да су нови, они ће представити нове грешке које пројекат удаљавају од завршетка.
  • Општи трошкови комуникације повећавају се како се број људи повећава.
  • Додавањем више људи на врло дељив задатак, као што је чишћење соба у хотелу, смањује се укупно трајање задатка. Међутим, други задаци, укључујући многе специјалности у софтверским пројектима, мање су дељиви. Још један сјајан Бруоксов пример за то је: док је једној жени потребно девет месеци да роди једну бебу, „девет жена не може да роди бебу у једном месецу“.

Још један доказ Рицхарда Далтона да би се разумело зашто додавање нових људи није у реду је:

„Тимови су непроменљиви. Сваки пут кад неко оде или се придружи, имате нови тим, а не промењени тим. “ - Рицхард Далтон

Не одуговлачи

Дозволи ми да ти помогнем да разумеш шта мислим. Прошле недеље смо имали састанак око дефинисања рока за нову карактеристику нашег производа. Разговарали смо о томе који су нам задаци приоритет и како их треба ефикасно применити.

Био је задатак на који смо јако изгубили време. Била су три начина за спровођење тог задатка, али некако смо запели. Нисмо могли да изаберемо јер су програмери покушавали да предвиде будућност. Започињали су сваку реченицу са „Шта ако“.

Не можете предвидети шта ће вам донети будућност. Немојте се превише припремати за непознато.

Овде не говорим о великим техничким одлукама. Наравно, ако морате да се одлучите за своју основну технологију, требало би да преспавате на њој да бисте пронашли право решење. Али не трошите време на ситнице. Неизвесне ствари повећавају састанке и блокирају ваш напредак јер ваш позадински процес непрестано ради на њима.

Не одлажите то, одлучите се за њега и идите напред.

Промените свој менталитет из „Размислимо о томе“ у „Одлучимо сада“. Одлуке ће убрзати ваш напредак. Кад се нешто одлучи, биће јасно свима у тиму. Сви ће тачно знати шта треба да раде.

Комуницирајте: Погледајте где је уско грло?

Све си испланирао. Дефинисали сте на шта се фокусирати и шта радити. Тачно знате колико ће вам времена требати (вероватно ћете погрешити). Дакле, рок је сређен. Да ли је довољно?

НЕ.

Као што сам горе напоменуо, увек постоји могућност да нешто пође по злу. Док чланови вашег тима раде на својим задацима, нешто их може блокирати. Нешто их може зауставити да своје задатке заврше на време. Морате да видите где је уско грло и шта је то.

Комуникација је овде кључна. Морате да одржавате синхронизацију тимова. Понекад чланови тима могу да уђу у кутију и може им бити веома тешко да виде шта се из ње дешава. Овде треба да ступите на сцену. Када идентификујете уско грло, уклоните га како би чланови вашег тима могли да наставе од места где су заглавили.

Желим вам пуно среће у испуњавању свих ваших рокова :)

Хвала за читање.

Првобитно објављено на //хусеиинполатиурук.цом.