Občas jsem si říkal, proč některé korporace prostě nezvýší mzdy, aby byla dlouhodobá úroveň vývojářů lepší. Nedávno, když jsem zase řešil údržbu zpraseného systému pro jednu jinou korporaci, která u nás outsourcuje, mi došel ten důvod. Je to proto, že je prostě při outsourcingu nevýhodné dělat kvalitní SW, který je řádně odokumentován a nepotřebuje udržbu:
1. Pořádně napsaný SW, který je přehledný a každý se v něm dobře vyzná, postrádá totiž vendor lock - zákazník by se mohl při nespokojenosti jednodušeji rozhodnout, předat další vývoj jiné firmě. Ikdyž zákazník požaduje dokumentaci, testy atd., tak celkově se dá systém stejně tak dokonale zprasit, že je to nakonec skoro fuk.
2. Pořádně napsaný SW není tak časově náročný na údržbu, takže kdo bude firmě outsourcující svoje peníze platit?
Korporát jde po zisku a to vyžaduje, aby byl na něm zákazník co nejvíc závislý. Při outsourcingu, zprasený kód, ve kterém se vyznají nejlíp jen ty prasata, co ho psali, je k tomu naprosto ideální. Navíc údržba zpraseného systému stojí násobně víc času, což znamená, že to bude hodně stát - ideální kombinace.
V krystalické formě je to vidět u těch částí systému, který psali prasata v Indii. Ten kód je totiž tak zprasený, že žádný programátor s ním nechce mít nic společného a bude hrozit výpovědí, pokud by to na něj někdo násilně hodil. Takže ikdyž to Indové zprasili a zákazník si to chce rozmyslet a zastavit u nich jakýkoliv další vývoj, nedá se to udělat tak jednoduše. Mezitím Indové chytí do pasti vocasníka managera z Evropy, který si u nich něco nechá udělat.
Závěrem, není v zájmu korporací mít optimální vývoj, v jejich zájmu je mít vývoj jen přibližně podobný, jako konkurenční korporace.