Pravidlo obrácené pyramidy

Publikováno 22.11.2008 v kategorii Metodika. Trvalý odkaz permalink. RSS kanál pro sledování komentářů.

Docela nedávno jsem si uvědomil jednu zajímavou věc. Když se začíná nový projekt nebo přede mnou stojí nějaký netriviální programátorský úkol, často se mi stane, že se přistihnu jak jen tak nečinně sedím a lámu si hlavu nad tím, jak já to jenom vyřeším. Nakonec to samozřejmě všechno dobře dopadne. Nicméně proces, který vede k úspěšnému konci, stojí za popis.

Jakási programátorská poučka říká, že programátorské úkoly se dělí na ty trivální a na ty co už někdo řešil. Jiná poučka říká, že každý problém se dá rozložit na konečné množství triviálních problémů. Kdyby toto neplatilo, byly by nám všecky současné programovací jazyky k ničemu.

Osobně si programátorské problémy dělím na tři skupiny podle toho, zda si jejich řešení dokážu představit

  1. a jsem si jím jistý
  2. a jsem si jím jistý, ale nakonec to dopadne jinak
  1. jenom velmi vágně

Zajímavá je samozřejmě druhá a třetí kategorie. Ta často vede k nekonečnému myšlenkovému procesu a pocitu beznaděje nebo ještě hůře inkompetence. Když jsem byl dotázán jak se s těmito situacemi vypořádávám podařilo se mi zformulovat řešení.

Pokud je daný problém nevelkých romzěrů tak se většinou stačí ponořit do kódování a prvotní řešení časem vyplyne tak nějak samo od sebe. Jelikož se ale velikost problému odhaduje velmi těžce, práce se nakonec zlomí do pravidelných iterací jako u na prvních pohled větších problémů.

Jak už to tak bývá proces je velmi jednoduchý. Hned na začátku je potřeba v sobě zapřít touhu porozumět hned všem sub-problémům, které mě čekají. Začít je nejtěžší. Druhým krokem je vymyslet nejmenší možný funkční celek. Nemusí to být programátorské veledílo, ale také to nesmí být úplná prasárna, aby se s tím dalo dále pracovat. Následně přichází ta úplně nejtěžší fáze. Je potřeba ten nejmenší možný celek naimplementovat. Nejtežší na tom je nepodlehnout pokušení dotahovat všechno do absolutní dokonalosti. To v drtivé většině vede k nekonešným smyčkám rozšiřování nekompletního díla a nakonec do propasti neudržitelného kódu.

Jakmile je první iterace u konce většinou získám docela dobrou představu o výsledném dílu a ta spousta nezodpověditelných otázek na začáktu mi připadá jako směšný vtip. V tu chvíli přichází čas pro iterace ve stylu: test, implementace, refaktoring a znova. V horším případě v pořadí implementace, test, refaktoring.

Nejvetší sranda je, že onen počáteční strach a nejistota se zatím vždy ukázaly jako neopodstatněné, takže v podstatě zatím pořád řeším triviální problémy.

 

Komentáře

 
Zatím zde není žádný komentář.
 

Přidej komentář

 
Povinná pole jsou vyznačena tučně.