Esimese GeekDinneri teemaks oli xDUF ehk Big Design Up Front (BDUF), Enough/Little Design Up Front ja No Design Up Front. Vestlus oli igati huvitav ning neile, kes ei jõudnud tulla, väikene tutvustus seisukohtadest.
Esimene äärmus, mille vaatluse alla võtame on BDUF. See parktika on tulnud otse ehitusest – kõigepealt tuleb plaanid valmis teha ja siis hakata reaalselt ehitama. Tundub esmapilgul loogiline samm, kuid tarkvara on siiski pehme ja lihtsamini muudetav kui maja, mida ehitatakse. Teine problemaatiline koht selle vaate puhul on, et peaksime suutma võtta kõike arvesse võtta ja seda siiani inimesed teha ei suuda.
Mittetäielikkuse printsiip:
Ei ole võimalik kõike arvesse võtta, kõike määratleda, kõike põhjendada.
[Lorents, “Süsteemse käsitluse alused”, lk 26]
Peale printsiibi mõjutab suurt plaani ka maailma muutused. Äri on tihtipeale muutlik ning meeletu planeerimine võib kasutu olla, kui valimis saab. Lean põhimõtete järgi on see rämps ehk kasutu töö (suures mahus süsteemi spetsifikatsioon seisab riiulis ja osa funktsionaalsust võib üldse ära jääda).
BDUF teine ots on NDUF, mis juba nime järgi tundub olevat kauboilik lähenemine või häkkimine. Küll kuidagi saab järgnevad nõuded juurde lisada. Tavaliselt tekkib suur tehniline võlg, mida keegi ei soovi ära maksta ning proovitakse uuesti alustada. Seda praktikat võiksid kasutada äärmisel juhul väga tugevate disaini oskuste ja arhitektuuriliste teadmistega inimesed. Selle peale pole mõtet rohkem aegagi kulutada.
Kuldne kesktee on siinkohal pigem piirkond kui punkt. LDUF/EDUF puhul tuleb küllaltki palju lähtuda enda meeskonna võimetest ja enesekindlusest. Projekti alguses tasuks panna paika arhitektuurilised väärtused ja konventsioonid koodi kirjutamise ja disaini osas. Need pole kivisse raiutud ning neid võib vajadusel muuta. Teine hea praktika on visandada mudel, mis annaks üldise pildi, kuidas ehitatav maailm välja näeb (see ei pea olema ilusasti joonistatud UML diagramm mõnes programmis, vaid visandid tahvlil on piisavad).
Projekti käigus on meil võimalik hõlpsalt kasutada parktikad nagu Test Driven Development/Behavior Driven Development, sest kõik ei ole nö geeniuste poolt ette kirjutatud. Lisaks võib toetavad mudelid võtta küllaltki standardsed, mis võiksid natuke aega kokku hoida.
Minu poolsed argumendid on praegu lauale laotatud, võib-olla on teil midagi lisada või vastu väita.
Loe veel sarnastel teemadel:
- GeekDinner alustab Tallinnas, 27. aprill
- Kõike, mida sa omad, ei ole sul vaja, 2. aprill
- GeekDinner Mai juba sellel kolmapäeval, 11. mai
- Mida TDD tähendab?, 18. november
- Raamat: “Refactoring: Improving the Design of Existing Code”, 19. veebruar
KAIZEN FEED
Telli endale Kaizeni uudisvoog
KOMMENTAARIDE FEED
Telli endale kommentaaride voog
KAIZEN TWITTER
Lühiuudised Kaizeni autoritelt
KAIZEN FACEBOOK
Liitu Kaizeniga
MIS ON KAIZEN?
Kaizen on Saiku tarkvaraarendusealane blogi, kus kirjutame erinevatest lähenemistest meisterlikule tarkvaraarendusele.
KATEGOORIAD
- .NET (18)
- Analüüs/Arhitektuur (11)
- Arendus (66)
- Ettevalmistus (1)
- Juhtimine (2)
- Varia (23)
SILDIPILV
- .NET (41)
- ilus kood (23)
- Arendus (23)
- C# (20)
- Analüüs/Arhitektuur (14)
- Testimine (10)
- raamat (8)
- Ruby (8)
- projektijuhtimine (8)
- printsiibid (6)
- produktiivsus (5)
- ReSharper (5)
- PHP (5)
- NHibernate (4)
- objekt-orienteeritud (4)
- pidev integratsioon (4)
- Viited (4)
- agile (4)
- Java (4)
- Geekdinner (4)
- lean (4)
- raamatukogu (4)
- CI (3)
- Cruise Control.NET (3)
- Robert C. Martin (3)
- scrum (3)
- iteratsioon (3)
- suhtlus (3)
- jQuery (2)
- TechEd 2008 (2)
- Visual Studio (2)
- valideerimine (2)
- intervjuu (2)
- analüüs (1)
- ASP.NET (1)
- ümberstruktureerimine (1)
- üritus (1)
- CodeRush (1)
- dokumentatsioon (1)
- Kent Beck (1)
- LINQ (1)
- Martin Fowler (1)
- Moq (1)
- Rhino Mocks (1)
- stackoverflow (1)
- võltsitud objektid (1)
- Whiteboard Wednesday (1)
- hindamine (1)
- tarkvara kvaliteet (1)
- ajagraafikud (1)
- Saiku (1)
- koolitus (1)
- tagasivaate (1)
- koosolek (1)
- dünaamilised keeled (1)
- staatilised keeled (1)
- FluentNHibernate (1)
- facebook (1)
- aastapäev (1)
- Rake (1)
- Oredev 2008 (1)
- toyota way (1)
- raiskamine (1)
- NDepend (1)
- podcasts (1)
- väle tarkvaraarendus (1)
- raido tonts (1)
- minimal marketable feature (1)
- kasutajalugu (1)
- twitter (1)
- Joomla! (1)
- MVC (1)
- andmebaas (1)
- versioonimine (1)
- diskussioon (1)
- regulaaravaldised (1)
- motiveerimine (1)
- mõõdikud (1)
- agileestonia (1)
- riistvara (1)
- koolitused (1)
- kujundus (1)
- kodulehed (1)
- veeb (1)
