Jak jsme se dopracovali k verzi RC1

Mezi programátory se označení RC1 (release candidat #1) používá pro první verzi programu či aplikace, která obsahuje všechnu požadovanou funkčnost, vypadá, jak má a dělá to, co má. Není to ještě hotový produkt, ale je to důležitý milník, na kterém je již jasné, jak přesně bude vypadat výsledek. Paradoxem bývá, že právě rozhodnutí o tom, jak přesně by měl vypadat výsledek bývá to nejtěžší. Jak jsme se k němu dopracovali my? Nabízím vám pár praktických zkušeností z cesty k RC1.

Zadání nikdy není dost přesné

Když jsme v listopadu  loňského roku začali Fripito připravovat, myslel jsem si, že zadání je zcela jasné. Hlavní funkčnost jsem v hlavě nosil roky, na rozvržení základních obrazovek jsme se shodli během jednoho večera a myslím, že jsme všichni měli skvělý pocit, jak je to všechno nalinkované. V průběhu půlročního vývoje se samozřejmě objevily desítky otazníků a křižovatek, na kterých jsme se museli znovu rozhodovat, ale jsem pyšný, že původní zadání jsme dodrželi.

Dobré zadání je základ. Jakmile v průběhu vývoje začnete měnit samotnou základní myšlenku, dostanete se do nekonečného kolotoče vylepšování, které nikdy neskončí. Vždy můžete něco vymyslet líp, vždy můžete něco přidat. Ale pokud se stanete myší, běžící v kole, nikdy nedosáhnete cíle. Proto mám pro vás pár tipů:

  • Udělejte si bodový seznam toho, co má umět verze 1.0, a pod ním udělejte tlustou čáru. Ubírat je povoleno, přidávat nikoli. To jsme zvládli.
  • Rozmyslete si a nakreslete schéma toho, jak by měla aplikace vypadat a jak by se měla ovládat. Stačí tužkou na papír a v hrubých rysech. U většiny aplikací ve verzi 1.0 nepotřebujete drátové modely, grafické návrhy a jiné ultra sofistikované nástroje hned v úvodu. Zpětně musím přiznat, že já osobně jsem přesnost tohoto popisu podcenil a zvládli jsme to jen díky skvělému týmovému duchu.

Zavřete se do místnosti a programujte

Člověk je z principu tvor pochybovačný, a tak má tendenci se ujišťovat o správnosti své cesty. Možná je v tom i trocha ješitnosti, ale jakmile je hotový kousek práce, člověk to nevydrží a má potřebu se s ním pochlubit okolí, otestovat reakce, dostat chválu za odvedenou práci. Bohužel v této fázi se mu pochvaly málokdy dostane, protože produkt není hotový, vize není jasná a místo chvály přijde hromada více či méně konstruktivních připomínek, nápadů apod. Vaše okolí to myslí dobře, snaží se pomoci, ale výsledek je často opačný.

Moje rada je, zavřete se do místnosti a programujte tak dlouho, dokud není hotová hlavní kostra projektu. Až v tomto okamžiku vyjděte s výsledkem na světlo světa a očekávejte hluboké nepochopení vaší myšlenky. Pokud se vám ho dostane, tak je to velmi dobrý signál. Děláte něco, co ještě na trhu není, a uživatelé teprve musí kouzlo vašeho přístupu objevit. My jsme se dozvěděli, co všechno naše aplikace není, což je skvělé, protože jsme nechtěli dělat ani další Instragram, ani Lonely Planet, ani učebnici fotografie. Dozvěděli jsme se, co všechno nám v appce chybí, což je taky dobře, máme kam růst. A samozřejmě milion tipů, co by mohlo být trochu jinak. Za všechny tyto reakce jsem strašně vděčný a jsem hrdý na to, že jsme neustoupili od původní vize.

Verze 1.1 a verze 2.0

V průběhu vývoje a při komunikaci s okolím se vyrojí milióny myšlenek. Všechny z nich jsou více či méně užitečné, ale nesmí vás zpomalit na cestě k první verzi vašeho projektu. Toto úskalí jsem si uvědomoval, ale chvíli nám trvalo, než jsme se s ním naučili pracovat. Nakonec nám pomohlo vytvoření dvou seznamů.

Seznam s označením verze 1.1 obsahuje drobná vylepšení, která nejsou nezbytná k samotnému používání aplikace, ale považujeme je za užitečná a ne příliš náročná. Jsou to ty věci, které má člověk tendenci dostat už do verze 1.0 s tím, že zaberou jen pár hodin práce. Problém je, že když takto obětujete desetkrát pár hodin práce, je z toho několik týdnů zpoždění. Trvalo nám naučit se tento přístup, nějaké zpoždění jsme nabrali, ale naštěstí jsme to zvládli.

Seznam verze 2.0 obsahuje všechny ostatní myšlenky, které se objevily.  Cokoli, co by aplikace mohla dělat, o co by šla rozšířit, na co napojit atd. Je dobré na tento seznam zapisovat i zdánlivě nesmyslné, protichůdné či nerealizovatelné impulzy, protože časem se váš pohled na ně může změnit. Smyslem seznamu není zadání pro programátora, ale spíš objevování budoucího potenciálu.

Najděte efektivní systém checkpointů

Pokud na projektu pracuje víc jak jeden člověk, je nutné nastavit komunikaci. Všichni nemohou být u všeho, ale každý potřebuje nějakou úroveň zpětné vazby a hlavně každý může přijít s efektivním řešením problému, který řeší jiný člen týmu. Chvíli jsme hledali, jak často pro nás má smysl sedět společně nad aplikací a přestože je to velice individuální, mám pár poznámek:

  • Minimálně jednou týdně je potřeba udělat revizi toho, co se udělalo, co se řeší a jak se to řeší. Kdykoli jsme z jakýchkoli vnějších vlivů toto nedodrželi, bylo to na škodu věci.
  • Nemá smysl o věcech diskutovat, dokud nejsou hotové nebo dokud se neobjeví problém. Každý by měl být profesionálem ve své oblasti a nepotřebuje, aby mu neustále někdo koukal pod prsty.
  • Pokud narazíte na problém či nejasnost v zadání, jsou dvě možnosti. Pokud vás napadne přímočaré řešení, udělejte ho. Pokud váháte mezi více variantami řešení, hned požádejte o názor kolegy. Zvenčí jsou věci vždy jasnější než zevnitř.

Naučte se odměňovat a chválit

Závěrem jedna dobrá rada. Člověk je tvor, který potřebuje pozitivní motivaci. Naučte se pochválit kolegu, pokud něco udělá dobře, radovat se společně z dokončeného bloku práce a drobně se odměňovat. Vím, že tohle je moje velmi slabá stránka a tímto bych se rád omluvil všem skvělým kolegům, které jsem dostatečně nechválil. Není to tím, že bych si nevážil jejich práce a přístupu, jen jsem prostě často až příliš ponořený do toho, co dělám já, a nedokážu nahlas ocenit práci druhých. Takže ještě jednou: “Jste úžasní a Fripito je projekt, na který jsem neskonale pyšný!”

Honza Březina, zakladatel Friptia, t.č. uprostřed Death Valley připravující jednoho z dalších průvodců Fripita

 

 

 

Facebooktwitterredditpinterestlinkedinmail

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *