Data Driven Development (DDD)

Data Driven Development (andmetepõhine arendus) on tarkvaraarenduse metoodika, kus otsuseid ja prioriteete ei määra mitte "kõhutunne" või hierarhia (nt kõrgeima palgaga isiku arvamus), vaid kogutud kvantitatiivsed ja kvalitatiivsed andmed.

Selle mudeli eesmärk on vähendada ebakindlust, valideerides hüpoteese reaalsete kasutajate peal võimalikult vara. See on tihedalt seotud Lean Startup ja Agile põhimõtetega.

Arendusmudeli etapid

DDD protsess on tsükliline, mitte lineaarne. Tüüpilised etapid on järgmised:

Kas sellel on alamvariante?

Kuigi DDD ise on pigem katusmõiste või "mõtteviis", eksisteerib selle all spetsiifilisemaid lähenemisi ja alamvariante:

Tähelepanu: Ära aja segi TDD-ga (Test Driven Development). TDD räägib koodi tehnilisest testimisest, DDD aga toote ärilisest valideerimisest andmete abil.
<

Arendusmudel joonisena

Data Driven Development mudelit kujutatakse kõige sagedamini ringdiagrammina (tagasiside silmusena), mis on tuntud kui "Build-Measure-Learn" tsükkel.

BUILD MEASURE LEARN

Joonis: Build-Measure-Learn tagasiside tsükkel

Joonis on iteratiivne: see algab ideest, liigub koodi kirjutamiseni, sealt andmete kogumiseni ja lõpuks tagasi uue ideeni, mis põhineb õpitul.

Mudeli tähtsaim omadus

Tagasiside ahel (Feedback Loop)

Kõige kriitilisem omadus on lühike ja objektiivne tagasiside ahel.

Miks? Ilma kiire tagasisideta on andmete kogumine vaid "edevusmõõdik" (vanity metric). Mudeli väärtus seisneb selles, et arendustiim ei raiska aega funktsioonidele, mida keegi ei kasuta. See asendab subjektiivsed arvamused objektiivse reaalsusega, võimaldades ebaõnnestuda kiiresti ja odavalt (fail fast).

Heade ja Veade tabel

Positiivne (Head) Negatiivne (Vead) / Riskid
Objektiivsus: Vähendab isiklikel arvamustel põhinevaid vaidlusi ja poliitikat organisatsioonis. Analüüsi halvatus (Analysis Paralysis): Oht jääda andmeid jõllitama ja lõputult analüüsima, lükates otsuseid edasi.
Parem ROI (Tasuvus): Ressurss suunatakse sinna, mis päriselt toob tulu või väärtust kasutajale. Konteksti puudumine: Andmed näitavad "mis" juhtus, aga harva "miks". Võib tekkida valesid järeldusi ilma kvalitatiivse uuringuta.
Parem kasutajakogemus (UX): Toodet arendatakse vastavalt sellele, kuidas inimesed seda tegelikult kasutavad. Lokaalne maksimum: Andmed võivad optimeerida olemasolevat lahendust, kuid ei pruugi viidata vajadusele radikaalse innovatsiooni järele (mida andmetes veel pole).
Riskide maandamine: Vigased ideed praagitakse välja enne suuremahulist investeeringut. Privaatsusprobleemid: Liigne andmekorje võib minna vastuollu GDPR-i või kasutajate usaldusega.
Loe lähemalt: How to Implement Hypothesis-Driven Development (ThoughtWorks)

Viited