Két dolgot találtam, ami elengedhetettlen ahhoz, hogy hatékonyan lehessen fejleszteni. Nem nagy dolgok, de még az igazán nagy rendszerek is hiányát szenvedik (lásd SAP, bár lehet, hogy csak nem látom)
- Verziókövető rendszer. És itt most tényleg teljes rendszer leverziózását lehetővé tesvő eszközre gondolok. A SAP-ban van egyedi "álloményokat" verziózó esköz, de nem láttam olyat, amivel azt tudom mondani, hogy a mult hétfő 14:42-es állapotot akarom visszanyerni és onna folytatni a melót. Persze ez kapcsolódik ahhoz, hogy ebben az esetben elengedhetettlen az egy gombnyomásos build. Barátom dolgozott olyan projekten, ami részben azért fuccsolt be, mert nem tudtak egy clean-build párosítást megcsinélni.
- Lokális fejlesztés. Ez azt jelenti, hogy bérmi amit csinálok csak a saját fejlesztői gépemen legyen. Ez sem triviális. Lásd SAP, vagy mikor Oracle tárolt eljárásokat kellett fejlesztenem. Egyetlen sor változás, amit mág adott esetben tesztelni sem volt időm kihat az aegész rendszerre. És a teszteletlen,a dott esetben hibás kód rögtön végiggyűrűzik az egész rendszeren. Természetesen szorosan kapcsolódik a verziókövető használatához.
Ez a két dolog együtt olyan szabadságot és megynugvást ad, amivel sokkal nyugodtabban mersz beleturhálni a kódba. Olyan helyzetben vagyok, hogy sokszor nem vagyok biztos, hogy mi, mikor mit csinál. Teljesen egysyerű lenne adott esetben annak a konstansnak értzékét változtatni vagy az eljárást átírni és azonnal látnám az eredményt. De nem szivesen tennék ilyet, hiszen akármit csinálok azonnal kihat a müködő rendszerre és abban sem lehetek biztos, hogy a sok módosítás után teljesen vissza tudom állítani az eredeti, működő változatot.
Az ilyen más logikát és gondolkozást igényel.