Software nestárne tím, že se používá
„Kolik nás bude stát, aby tenhle systém žil ještě deset let?“
Auto zestárne i ve garáži. Ne nájezdem, ale tím, že vyschnou těsnění a na dvacet let starý model přestanou být díly. U software je to podobné, jen bez té garáže: program se spouštěním neopotřebuje, můžete ho pustit milionkrát a bude dělat pořád totéž. Zestárne tím, že svět okolo něj jde dál a on stojí.
Pořád ta samá aplikace
Spravuju jednu aplikaci od roku 2019. Za tu dobu přešla na tři generace .NET, naposledy v roce 2025, a nikdo ji nepřepisoval. Je to tatáž aplikace, jen vždycky o kus novější pod kapotou.
Jednou přišel zásah, který si nikdo nepřál. Změnilo se chování ovladače, kterým aplikace mluví s databází, a bez úpravy by přestala fungovat. Nová funkce z toho nevznikla, žádné vylepšení — jen práce, aby všechno dál dělalo to, co dělalo.
Právě proto mě na větě „nic neměníme, ať to běží“ zajímá to slovo nic. Nemění se jen to, na co saháte. Okolí se mění tak jako tak, a když ho nesledujete, ty změny se hromadí a čekají na vás.
Malá faktura, nebo velká
Průběžné přechody na nové verze jsou nudná práce. Jednou za čas se posune verze, zkontroluje se, že všechno běží, a jede se dál. Platí se po malých kusech, které se vejdou mezi běžné úkoly. Říká se tomu údržba a nikdo o ní nepíše do novin. Zrovna teď takhle posouvám několik projektů najednou, i společnou šablonu, ze které nové vznikají, aby se nezačínalo na starém.
Kdo to odkládá, platí taky — jen jednou a víc. Každý rok bez aktualizace přidá jeden schod, a až se pak někdo rozhodne skočit, nepřeskakuje schod, ale celé patro. Často z toho vyjde přepis a při něm se vývoj na pár měsíců zastaví, protože se nedá zároveň přestavovat a přidávat nové věci. Jak se takový přepis dělá, aby si toho uživatelé nevšimli, popisuju v článku Přepsat systém tak, aby si toho nikdo nevšiml. Lepší je se k němu vůbec nedostat.
Co z toho má zákazník
Dvě věci se dají vyžádat, ještě než se o údržbě začne mluvit jako o nákladu. Za prvé ať je v nabídce vlastní položkou, a ne něčím, co se někam schová — nudná položka v rozpočtu se dá naplánovat, přepis ne. Za druhé ať víte, na čem váš systém běží a jak dlouho ta verze ještě dostává opravy. Je to jedna otázka a odpověď na ni je datum.
Něco se pokazí tak jako tak. Rozdíl je v tom, že se rozbije jedna malá věc a vy víte, kdy a proč vznikla. A za deset let máte pořád tu samou aplikaci — jen mladší, než je dnes.