egyéb:
mert tervezőmérnök vagyok, nem fejlesztő.
Van egy tervnek 5-10-15-30-40 iterációja. Egy iteráció lehet hogy néhány óra, az is lehet hogy több nap. Minden iteráció valamiféle ellenőrzésen megy keresztül, ezek jelentős része usability teszt, valós felhasználókkal.
Egy termék akkor van kiadva fejlesztésre, amikor ezek az iterációk elég éles képet rajzolnak ki, hogy mit is kell csinálni.
Oka: a fejlesztő baromi drága, és néha pixeles dolgok is baromi nagy architekturális változtatásokat jelentenek.
Egy végleges, állapotgépes, százszor átbeszélt, errorcheckelt, mit-miért csinálunk tervvel a fejlesztő is nyugodtabban fejleszt, akár agilisen, akár anélkül.
Nyilván a terv sose lesz tökéletes. Nincs tökéletes terv. De óriási változtatásokra azért ritkán kerül sor, sz.rrá vannak kutatva a felhasználói célok, tudjuk, mit miért csinálunk, miért kell az nagyon oda, és innentől kezdve általában az ügyfélnek is édesmindegy, mennyibe kerül csak jó legyen.
Szóval egyeztetünk, a terv változik, esetleg a fejlesztők eltérnek - hogy még a jó úton vagyunk-e, arra jó ha ők Agile-ban vannak, mert akkor a kéthetente készült belső release-t (haha, vicceltem: még nem láttam olyan csapatot ahol a belső sprint release képes lett volna 3 kattintást kibírni összeomlás nélkül) elvisszük tesztelni, ellenőrizzük hogy ez továbbra is egy síkban van a felhasználói és üzleti célokkal.
Mondok egy példát: fail-safe törléstechnika UI-t terveztünk egy listányi valamihez. A programozók önkényesen gondoltak egyet, és hogy lecsökkentsék a projektidőt (Memento pattern implementálásához gondolkozni kell, azt nem mindegyik szeret), helyette "do you want to delete yesno" alert-et varázsoltak a UI-ba (de szó szerint, JS confirm). Semmi gond, mert deleted flag-ot is terveztünk, csak épp az adatbázis team UPDATE deleted=1 helyett DELETE utasítást csinált lustaságból... Semmi gond, van napi backup, de abból meg nem tudtak gyorsan (48 órán belül) visszaszedni, mert ez a team is lusta volt... Na itt pl. már jeleztük, hogy ez tipikusan olyan dolog, amit a user véletlenül is törölhet, mi lenne, ha mindenki azt csinálná, amit mondtunk.
Nyilván a prototípusokon már láttunk random törléseket. A supporttól tudtuk, hogy az előző rendszerben is gyakran voltak random törlések (amikre széttárták a kezüket, ezért lett itt feature a safe delete).
De a programozó az olyan, mint holmi tékozló Ádám és Éva a Paradicsomban, érezni akarja az önálló döntés szabadságát - s ha meg van mondva, hogy egy dolgot kétféleképp lehet megcsinálni, de ott van mellette az értékítélet is, hogy az egyik rossz, a másik meg jó, hát csak úgy érezheti hogy él, hogy nem egy fogaskerék egy rendszerben, hogy rosszul csinálja.
Ecce homo.