Tyhle akce (přepis „legacy“ verze do jiného jazyka) probíhají zhruba takto:
1) Na základě různých indicií (produktivita práce atd.) se management rozhodne, že stávající codebase je již dost špatně udržovatelná a že v zájmu modernizace a ochrany business value se to přepíše, třeba z C do Javy. Všichni se dušují, že počítají s tím, že to bude velká investice.
2) Klíčová zápletka: na tento přepis se najme jiný tým, než který dělal původní verze. Důvody jsou různé: nedůvěra ve schopnosti „starých pardálů“ v novém technologickém frameworku (posílená i eventuálním odporem těchto lidí k novinkám), snaha dělat leapfrog a podobně.
3) To vede k okamžité ztrátě dost velkého know-how, protože staří se s novými bavit nebudou (proč by měli; někdy se to i explicitně nechce), takže nový tým podcení rozsah zadání. Tato ztráta know-how je někdy považována za prospěšnou („očistíme se od starého paradigmatu“).
4) V důsledku začne nový tým nestíhat, a to velmi. Některé termíny se posunout dají, nakonec se však vždy narazí na takové, jež posunout nelze.
5) Takže se provede oříznutí featur, některé prostě v nové verzi nebudou. V tomto ořezu vždy skončí i ladění na výkon, protože jeho důležitost pro zákazníka je všeobecně podceňována a protože to bývá zařazeno až na konec projektu. Dá se to dělat velmi dobře i v Javě (živím se tím), ale jak říkám, obvykle to (z obchodních důvodů) nemá prioritu.
Cesty inovace jsou někdy nevyzpytatelné.