Vývoj nových funkcí vs řešení technického dluhu

Přestože nejsem softwarový inženýr, po většinu svého pracovního života pracuji s technickými týmy. Mám tu čest pracovat s lidmi skvěle na tom, co dělají. Pokusím se tedy odpovědět na otázku o názvu z pohledu produktového managementu netechnického chlapa na pozadí.

Je skutečností, že vždy bude existovat tlak vycházející z nevyřízených položek, obchodních týmů, managementu nebo trhu a bude náročné stavět nové funkce. Jde o to, že pokud jste příliš nevědomí o svém technickém dluhu, brzy zjistíte, že je příliš pozdě na to, abyste se s tím vypořádali.

Marty Cagan to velmi dobře popisuje ve své knize „Inspired“. V této knize se můžete dozvědět, jak technický dluh téměř zničil jednorožce, jako je e-Bay.

Cítil jsem to u produktů, na kterých také pracuji. Během mé práce na Avocarrot Exchange jsme měli tento obrovský projekt, jehož cílem bylo sloučit dva produkty do jednoho. Naše SSP (Supply Side Platform) s produktem Mediation. Po 10 měsících plánování, schůzek, vývoje toho, jak se tyto dva produkty sloučí do jednoho, jsme to konečně udělali. A pak realita nastoupila.

Problémy se stabilitou se objevily v různých službách, zejména v důsledku technického dluhu, který byl vždy „příliš malý na to, aby se s ním nyní vypořádal“. Celý tým začal cítit tlak, protože tyto služby využívali nejen naši klienti, ale také interní uživatelé. V tu chvíli musel tým tvrdě rozhodovat, protože jsme prakticky trpěli. Nové funkce a nevyřízené produkty na jedné straně, technický dluh na straně druhé. Technický dluh se samozřejmě stal naším hlavním zaměřením, kam jsme investovali většinu našich zdrojů. Naštěstí pro nás nebylo příliš pozdě, ale mohlo by to být čisté štěstí. Ve většině případů se výrobky s velkým potenciálem zřídka z toho vracejí.

Tato zkušenost mě naučila tvrdě, že musíte být vždy aktivní, pokud jde o technický dluh. Bez ohledu na to, jak malý problém je, nebo jak nedůležité si myslíte, že je v konkrétním okamžiku. Vyřešte to co nejdříve. Nyní se snažím dosáhnout toho, že vždy máme nějaké lidi z produktového týmu, kteří v každém sprintu pracují výhradně na technickém řešení dluhů, takže na to nebudeme muset později věnovat více prostředků.

Pokud například na produktu pracuje tým 10 lidí, je dobré mít vždy 2 z nich na projektech technického zadlužení. Uvědomuji si, že by se mohlo zdát divné vrcholovému managementu a zejména lidem odpovědným za termíny vydání produktu nebo funkce. Z mého pohledu je však lepší obětovat 2 nebo 4 týdny uvolnění funkce, než mít žádný produkt za 4 měsíce. Vedení by mohlo zpočátku tlačit proti tomu. Je nezbytné vysvětlit výhody kompromisu s tím a zde přichází silná důvěra, která by měla existovat mezi týmem produktů a vedením.

Pokud je váš produkt opravdu skvělý, trh tam bude stále. Otázkou je, zda bude váš produkt stále na trhu?

A konečně, je nesmírně cenné spolupracovat s velmi silným týmem, který vás v tom podporuje, aniž byste o to museli žádat. Pamatuji si na pondělí, když v našem denním standupu přichází chlap z týmu, který říká: „Víte, kluci, měl jsem přes víkend nějaký volný čas a rozhodl jsem se přepsat burzu v Pythonu“ (tento chlápek je pythonský guru). Výsledkem bylo, že nová verze produktu vedla 9x lépe ve srovnání s předchozí verzí, čímž se náklady snížily na polovinu. Žádné plánování, žádné spekulace na projekt. Jen velmi talentovaný člověk s vůlí k iniciativám. Takové chování by mělo být nejen přijato, ale mělo by se stát součástí DNA týmu produktů a pracovního postupu.

Závěrem buďte aktivní, pokud jde o technický dluh, vždy udržujte určitou rovnováhu mezi řešením technického dluhu a budováním nových funkcí a vždy se musíte spolehnout na silný tým, pokud jde o dovednosti a kulturu. Koneckonců, Lannisters stále mají na starosti 7 království a jejich dům moto je „Lannister vždy platí své dluhy“.