Cayman Islander | Diary of a Freelance Programmer traveling the world

Cayman Islander's blog - Diary of Freelance Programmer

Rozhoduje cíl nebo konec? Nejlepší začátek je konec!

Už jsem na podobné téma psal mnohokrát, že cesta je sice náš cíl, ale že bychom si měli nejprve uvědomit, kam směřujeme a co je naším cílem, což platí obecně v každé profesi a v každém oboru. Je úplně jedno, zda programuji aplikaci pro nějakého zákazníka, či zda chci rozběhnout firmu na prodej párků v rohlíku.

Vždy mě potěší, když narazím na mnohem lépe zpracovaný článek, který se zamýšlí nad podobným tématem (viz inspirační link níže) a můžu téma ještě doplnit.


Základem je dobrá analýza!

Když jsem začínal programovat, tak mi můj první učitel praktického programování (kolega a první šéf v praxi) zadával nejprve jednoduché úkoly, abych se naučil programovat a hlavně, abych se vůbec naučil správně analyzovat zadání, ze kterého mělo vycházet každé řešení pro reálný provoz. V ten moment totiž nezáleží ani na programovacím jazyku ani na vývojovém prostředí.

London - Give Way

Bez dobré analýzy vzniká obvykle co? Správně, patvar, který je nutno neustále opravovat, hledat a řešit nějaké chyby, měnit i základní kostru řešení, kdy místo kvalitního "sochařského díla" se stabilní základnou vznikne neforemný útvar z plastelíny, který se rozpadne hned při první bouřce, závanu silnějšího větru, či ostřejším slunci.

To ovšem neznamená, že hned v první verzi projektu musí být hotové všechny funkce, že není plno prostoru k rozšiřování a doplňování, že všechno musí být od počátku naprosto dokonalé. Každý dobrý projekt je jako náš život. Rychle se vytvoří prototyp se základními funkcemi, dále by se měl vyvíjet, zkvalitňovat své základní "funkce", zlepšovat svůj "život" a uživatelskou přívětivost.


Nejlepší začátek je konec?

Radil mi také, že se mám na každý nový problém podívat z pohledu konečného řešení: Co by mělo být výsledkem mé činnosti? Např. jaké sestavy a výstupy by měly být jednoduše dostupné z mého procesního a datového návrhu? Co přesně očekávají uživatelé a jak jim svým řešením pomůžu?

Podívat se na každý projekt od konce nabízí totiž dokonalou možnost vidět cíl nejprve ve své fantazii, představit si funkčnost i reakce uživatelů. Při základní analýze lze pak lépe rozeznat důležité od méně důležitého, neboť cíl je jasný, lépe se také hledají cesty k realizaci a nastavuji priority, když vím, čeho chci dosáhnout.

Tohle je stále jeden z nejlepších přístupů ke každému problému (nejen v programování). Je totiž úplně jedno, zda se jedná o nějaký počítačový program pro jednoho uživatele, či o řešení pro více platforem, pro nadnárodní firmu a statisíce online připojených uživatelů s terabyte databázemi v clusteru.

Základ je vždy stejný pro každé řešení, tj. co je důvodem vzniku nějaké aplikace, jaké jsou požadavky na zpracování dat a jaké jsou požadované výstupy a rozhraní. Ostatně, jako v našem životě: Co je naším cílem, co chceme umět, znát, vidět, dělat? Kolik chceme vydělat peněz, příp. kolik volného času chceme mít?


Konec je naším cílovým řešením?

Čeho chci dosáhnout? Co je mým cílem? Jaký má být výsledek mé nové činnosti? Co budu dělat po dosažení toho cíle? Na tohle, když si každý odpoví ještě před zahájením nějakého projektu, či nějaké činnosti, tak má z půlky vyhráno - jen najít ten správný postup (přístup), jak se k němu dopracovat a jak prožít plně svůj život ;-)

Cíl je vlastně taková základní otázka, neboť bez přesné představy je pak každá činnost jen takovým "blouděním v kruzích", jak se píše v jednom inspirujícím článku.

- 5 Hard Questions You Should Answer Before Starting a New Project:

"If you don’t know where you want the journey to end, you can’t do anything except wander around in circles. The first step in starting any new project is to work out where you want to end up."

London - Hours on Piccadilly Street

Kolik by nám takový přístup uspořil času a starostí?

3 comments :

JaK řekl(a)...

Hele, konec je potřeba vidět a trochu analyzovat proces, ale co když začneš něco dělat a teprve v průběhu se z toho něco vyvine? Konec nevidíš, cíl neznáš a přitom to může být úspěšné. Asi znáš všechny ty předražené "overanalyzed" projekty :D

MacInek řekl(a)...

Co se týče cílů a konců (u programování web aplikací), tak mě poučil seriál na http://gettingreal.37signals.com/toc.php
Ze začátku jsem vytvářel ony "overanalyzed" aplikace, kdy 90% funkcí nikdo nevyužíval. Chtělo to změnu a gettingreal hodně pomohlo.

Cayman řekl(a)...

Pravda, ty "overanalyzed projects" jsem měl zmínit, to mě nenapadlo. Je to ale jak se vším, nic se nemá přehánět a týká se to analýzy projektu i třeba takového denního plánování. Někdy je dobré se na všechno vykašlat a prostě udělat to - bez analýzy, bez plánování, rychle a jednoduše.

2MacInek: Díky za link, mrknu se na to.

Okomentovat