Надвор од „доволно добро“: Инженерски производи што навистина траат
Најскапите одлуки за производот често се носат под знамето на брзината. Тимот испорачува кратенка затоа што е „доволно добра“, ветува дека ќе се наврати на неа подоцна и продолжува кон следното итно барање. Понекогаш тоа е токму правилно. На производот не му е потребна катедрала пред да има корисници.
Но „доволно добро“ станува опасно кога престанува да биде намерен компромис и станува стандардна норма. Резултатот не е само технички долг. Тоа е производ што е потежок за разбирање, побавен за менување, помалку доверлив за клиентите и исцрпувачки за луѓето од кои се бара да го одржуваат.
Производите што траат не се оние што го избегнуваат секој компромис. Тоа се оние чии тимови знаат кои компромиси се привремени, кој ги презема нивните последици и кога првичната одлука веќе не важи.
Градете за промена, не за замислена совршена иднина
Долговечноста често погрешно се сфаќа како прекумерно инженерство. Не е така. Таа значи следната разумна промена да биде поевтина и побезбедна отколку што инаку би била.
Трајниот производ има јасни граници. Правилото за наплата не е расфрлано низ компоненти на интерфејсот, закажани задачи и барања до базата на податоци. Проверката на корисничките дозволи не е копирана во секоја крајна точка. Распоредувањето не зависи од тоа некој да запамети недокументирана низа команди.
Тие граници може да бидат скромни. Мала услуга, добро именуван модул, документиран интерфејс и сигурен тест може да бидат доволни. Поентата е одговорноста да биде видлива.
Кога оценувате имплементација, поставете покорисно прашање од „Дали ова ќе работи денес?“ Прашајте: Што ќе се случи кога следната личност ќе треба да го промени ова под притисок? Ако одговорот е „ќе треба да проследи пет неповрзани датотеки и да се надева дека ништо нема да се расипе“, решението можеби е евтино само на денот кога е напишано.
Користете ги одлуките за производот за да ги насочите техничките вложувања
Техничкиот квалитет е важен бидејќи ги штити опциите за производот. Полесно е да се тестира нов модел на цени кога логиката за цени е централизирана. Полесно е да се поддржи поголем клиент кога дозволите се доследни. Полесно е да се учи од експеримент кога настаните се разбирливи, а неуспесите се забележливи.
Ова не значи дека секое внатрешно подобрување заслужува приоритет пред работата за клиентите. Силен технички лидер ги поврзува вложувањата со конкретен ризик или можност за производот.
- Работата на доверливоста ја штити довербата на клиентите кога неуспехот би блокирал критичен работен тек.
- Работата на перформансите е важна кога доцнењето прекинува задача што корисниците често ја повторуваат.
- Рефакторирањето е итно кога кревка област постојано ја забавува испораката или предизвикува регресии.
- Автоматизацијата го заслужува своето место кога рачната работа создава грешки, доцнења или тесни грла во знаењето.
Таквото поставување ја менува дискусијата. Наместо да кажете: „Ни треба време да го исчистиме кодот“, кажете: „Овој пат за наплата бара рачна интервенција при изданија, па секоја итна поправка носи ризик што може да се избегне.“ Првата изјава може да звучи како опционална. Втората идентификува деловно ограничување.
Направете ја сопственоста експлицитна
Многу проблеми со производот опстојуваат затоа што теоретски им припаѓаат на сите, а во пракса на никого. Нестабилна интеграција, нејасен тек на воведување, застарена зависност или збунувачко предупредување може да остане недопрено со месеци кога сопственоста е нејасна.
Сопственоста не е за обвинување. Таа е за создавање сигурен пат од проблем до одлука. Некој треба да го знае наменетото однесување, тековните ограничувања, релевантните засегнати страни и следната акција.
За тим, ова може да биде едноставно:
- Доделете јасен сопственик за секој важен систем или област на производот.
- Документирајте го очекуваното однесување и оперативните сигнали што покажуваат дали е здраво.
- Водете видлива листа на познати ризици, со одлука секој од нив да се реши, одложи или повлече.
- Преиспитајте ја сопственоста кога се менуваат луѓето, архитектурата или приоритетите.
Сопственоста бара и простор за дејствување. Да му кажете на инженер дека поседува услуга, а притоа да му ускратите контекст, пристап или овластување за донесување одлуки, создава одговорност без можност за дејствување. Одржливите тимови им го даваат на луѓето и едното и другото.
Работата од далечина ја прави јасноста способност на производот
Во заедничка канцеларија, нејаснотијата може да се скрие зад разговори во ходник. Во далечински тим, таа брзо се појавува: одлука донесена на состанок нема писмена евиденција; задача е „речиси завршена“, но никој не се согласува околу критериумите за прифаќање; инцидентот е решен, но наученото исчезнува во историјата на разговорот.
Писмената комуникација не е бирократија кога го заменува нагаѓањето. Кратка белешка за дизајнот може да ги објасни проблемот, разгледаните опции, одлуката и последиците. Добро барање за повлекување може да наведе што е променето, зошто е променето и како е тестирано. Белешка за издание може јасно да го истакне влијанието врз клиентите.
Целта не е да се документира секоја мисла. Таа е да се зачува контекстот што некому ќе му треба подоцна. Ако некоја одлука би било тешко да се реконструира за три месеци, веројатно вреди да се запише сега.
Претпочитајте одлуки што може да се поништат
Далечинските тимови се движат побрзо кога прават разлика помеѓу избори што може да се поништат и оние што тешко се поништуваат. Промена на текст, ознака за функција или внатрешен работен тек често може брзо да се приспособат. Јавен договор за API, миграција на модел на податоци или безбедносна граница бара попромислена проверка.
Таа разлика спречува два вообичаени неуспеси: секоја одлука да се третира како настан за комитет или неповратните одлуки да се третираат како лежерни експерименти. Брзината доаѓа од усогласување на процесот со цената на погрешната одлука.
Заштитете го системот за испорака
Производот е одржлив само колку што е одржлив системот што се користи за неговата испорака. Ако изданијата зависат од херојски напори, ако инцидентите постојано ја прекинуваат планираната работа или ако тимовите не можат да утврдат дали некоја промена помогнала, испораката на крајот ќе забави без оглед на тоа колку е талентиран тимот.
Здравите практики за испорака обично не се впечатливи:
- Мали промени што полесно се прегледуваат, тестираат и враќаат назад.
- Автоматизирани проверки што ги откриваат повторливите грешки пред продукција.
- Надгледување што го одразува однесувањето видливо за корисниците, а не само активноста на инфраструктурата.
- Контроли за постепено пуштање функции за промени со значајна неизвесност.
- Следење по инцидент фокусирано на подобрување на системот, наместо на пронаоѓање виновник.
Овие практики не го елиминираат неуспехот. Тие го прават неуспехот помалку мистериозен, помалку штетен и попоуčen. Тоа е практичното значење на отпорноста.
Развивајте кариери преку подобрување на работата околу вас
За развивачите, трајното размислување за производот е и предност во кариерата. Луѓето што стануваат доверливи технички лидери не се едноставно оние што можат да имплементираат тешки функции. Тие забележуваат повторливо триење, ги разјаснуваат компромисите и ги оставаат системите поразбирливи отколку што ги нашле.
Тоа може да значи претворање на племенски ритуал за распоредување во оперативно упатство, оспорување на барање што создава непотребна сложеност или објаснување на технички ризик на јазик што партнер од производниот тим може да го искористи. Овие дејства се надоврзуваат бидејќи ја подобруваат способноста на тимот да испорачува откако непосредната задача ќе биде завршена.
Најдобрата работа ретко се дефинира со тоа колку паметно изгледала кога била лансирана. Таа се дефинира со тоа дали клиентите продолжиле да добиваат вредност и дали тимот можел да продолжи да ја подобрува без да прегори. „Доволно добро“ има свое место. Само направете го свесна пресвртница на патот кон нешто доверливо, а не дестинација.