Blog

Jak na problémy se zadáním pro vývojáře

Dobré zadání pro vývojáře je základ pro úspěšný projekt v každém oboru. Velmi často se však setkávám s tím, že zadání pro vývojáře je nejasné a každý si pod ním představí něco jiného. Nejsou výjimkou ani situace, kdy zadání je pro vývojáře spíše matoucí. Důvodem je, že úkoly se vývojářům zadávají pomocí stručných e-mailů, místo aby zadání chodilo v předem dohodnuté struktuře a formátu, které komunikaci posunou na výrazně vyšší úroveň.

Zkušenosti našich zákazníků ukazují, že po využití Abakowiki, se na projektech výrazně zlepšilo zadávání požadavků vývojářům. A to ze dvou důvodů:
1) Nástroj pomáhá formalizovat zadání.
2) Nástroj umožňuje kompletní zadání, včetně doplňujících obrázků.

Pojďme se podívat na jednotlivé důvody podrobněji.

Formalizované zadání
Pokud přichází zadání e-mailem, zní většinou nějak takto: "Ahoj Petře, dodělej prosím funkci, aby po najetí myší na odkaz v menu automaticky vyjelo menu se seznamem stránek v dané kategorii. Díky. Pavel."

Problém takové zadání je, že není jasné o jaké odkazy v menu se jedná, jak má rolovací menu vypadat, jestli se má zobrazovat jen jedna úroveň stránek v kategorii nebo více apod. E-mail nenutí formalizovat zadání a to vede k nejasnostem, následným telefonátům, schůzkám, kolečkům ujasňování apod. V projektu je určitě přímá komunikace lidí jedním z nejdůležitějších prvků, ale musí být nad dobře připravenými podklady. Tím však zadání e-mailem není a vývoj jen prodlužuje a prodražuje.

Formalizované zadání však snadno docílíte pokud se úkoly zadávají přes nástroj, kde nezačínáte oslovením, ale naopak úvodem do problému a kde můžete udělat kompletní zadání, které bude pro vývojáře i lidi z businessu snadno přístupné.

Zadání, které vytvoříte v Abakowiki je formální. Lidé, kteří ho píší musí přemýšlet jinak, než při psaní e-mailu. Nepíší zadání jako soupis akcí, které má udělat konkrétní člověk, ale popíší problém a jeho požadované řešení. Pro pochopení problému na straně vývojáře je to klíčové. Takové zadání pak šetří čas celému týmu a minimalizuje zbytečně prováděné práce.

Zadání přes e-mail má ještě jeden doprovodný problém, který se často skrývá pod větou na konci e-mailu, která zní: "Vysvětlím osobně." To znamená, že přes e-mail se lidé nesnaží psát kompletní zadání, ale místo toho, aby ho promysleli, tak sepíší rychlý e-mail s úkolem a problém přehodí na druhou stranu. Vývojář pak musí shánět zadání a projektový manažer řešit problémy se špatně fungujícím týmem a přenosem informací.

Při zadání přes Abakowiki, strávíte například 15 minut tvorbou zadání. Programátor pak stráví 5 minut čtením zadání. Tvorba zadání je delší, než napsaní e-mailu, ale je užitečná. Protože vývojář lépe pochopí problém a k popisu se může kdykoli vrátit a použít ho. Nemusí se tak zatěžovat pamatováním si všech detailů.

Druhým důvodem, proč Abakowiki umožňuje lepší zadání pro vývojáře je jeho kompletnost.

Kompletní zadání včetně doplňujících obrázků
Kompletní zadání vzniká, pokud jsou k úkolu připojeny veškeré specifikace, jsou dobře popsány a jsou jasné. Abakowiki umožňuje ke každému úkolu vkládat obrázky a tak je snadnější popsat řešený problém. Protože se vše zobrazuje jako webová stránka, tak je snadné i zadání číst.

Lepšímu zadání napomáhá i to, že ke každému odstavci textu může být přiložený doprovodný obrázek a tak vzniká zadání jasnější a kompletnější. Je také možné přiložit doprovodný soubor a zadání dále doplnit. U úkolů je také možné diskutovat a tak online vyjasňovat poslední nejasnosti. Veškerá komunikace stejně jako soubory jsou rovnou u úkolu a vše je online na jednom místě. V Abakowiki proto můžete, stejně jako naši zákazníci, tvořit kompletní zadání pro vývojáře a výrazně tak zefektivnit činnosti na vašich projektech.

Formální a kompletní zadání vnese lehkost do komunikace mezi vývojáři a businessem. Z našich zkušeností vyplývá, že vývojáři jsou "šťastní", pokud mají dobré zadání a projektoví manažeři jsou spokojení také, protože ví o všech úkolech, které se na projektu dějí a nemají problém s komunikací v týmu. Úkoly nevznikají někde skrytě v e-mailech, ale jsou v jedné aplikaci, která nutí zadavatele úkolů k jejich formálnímu popisu. Vzniká tak zadání, se kterým se dobře pracuje a které nezpůsobí, že se věci musí předělávat.


7 návyků dobrého projektového manažera

Na blogu Improve Your Management Skills vyšel zajímavý článek o 7 návycích, které musí mít každý dobrý projektový manažer. Blog, stejně jako tento článek, je zajímavý a stojí za přečtení. Minimálně proto, abyste si připomněli hlavní body, které byste si jako projektový manažeři měli každý den hlídat.

7 návyků dobrého projektového manažera je následujících:

1) Zaměřte se na řešení - na projektu vznikají problémy a váš úkol je problémy řešit, ne si na ně stěžovat.
2) Účastněte se komunikace a rozhodujte - v každém projektu musí projektový manažer silně komunikovat se svým týmem a mít dostupné informace. Důležité je také rozhodovat, pouhé diskuze nikam nevedou. A pamatujte, že nástroje na projektové řízení a online spolupráci vám v komunikaci pomůžou, pomůžou vám mít přehled a získávat rychle informace, ale setkání s vaším týmem nenahradí.
3) Zaměřujte se na zákazníky - ať už je vaším zákazníkem interní nebo externí klient, vždy je nutné se primárně soustředit na jeho potřeby. Jeho potřebou však nemusí nutně být každý požadavek, který vznese. Je proto nutné umět posoudit, co je pro klienta dobré a co ne (což nemusí být nutně v danou chvíli pro vás pohodlné).
4) Dosahujte win-win situací - je nutné si uvědomit, že se pohybujete v prostředí, kde je mnoho zájmů a zájmových skupin. Musíte být schopni projekt vést tak, abyste dosahovali výsledků, kdy jsou spokojení všichni, i když dochází ke kompromisům.
5) Veďte své lidi příkladem - to mluví samo za sebe, ale pokud chcete, aby se vaši lidé chovali dobře ke klientovi, musíte dělat to stejné. Pokud potřebujete, aby vaši lidé dělali přesčasy, nepočítejte s tím, že odejdete domů v minutě, kdy končí pracovní doba.
6) Adaptujte se na změny - projekt je v principu jeden velký problém a jedna velká změna. Pokud by to tak nebylo, nemusel by existovat projektový manažer. Jako dobrý projektový manažer se změnami musíte počítat a musíte si s nimi umět poradit. A pamatujte, v armádě mají dobré přísloví, které říká, že žádný bojový plán nevydrží kontakt s nepřítelem.
7) Dostaňte ze všech to nejlepší - nejlepší projektoví manažeři vědí, že nemohou vše zvládnout sami. Musí si uvědomit, co jsou silné stránky každého jednotlivce a s těmi pracovat a využívat je. Pokud budete využívat silné stránky vašich lidí, budou motivovaní a budou svou práci dělat dobře.


Nechte své vývojáře koncentrovat na práci

Jedna ze zajímavých knížek o projektovém managementu se jmenuje 97 klíčových znalostí projektového manažera. Knížka je zajímavá především tím, že neobsahuje žádné metodiky, jak řídit projekty, ale je plná příběhu a zkušeností od projektových manažerů. Každý z nich měl napsat svůj nejdůležitější poznatek při řízení projektů a tak vniklo 97 rad, které vám pomohou při řízení projektů.

Jedna z rad se týká vyrušování pracovníků od práce. James Leigh popisuje několik základních typů, jak můžete zničit produktivitu svých vývojářů a jak budete v konečném důsledku místo přebírání řešení poslouchat důvody, proč nebylo možné úkoly stihnout.

Jako nepřítel produktivity práce jsou označované porady, ať již plánované nebo neplánované. Plánované mají negativní vliv na programátory, kteří mají sklon plýtvat časem. Před poradou už nic nezačínají a tak ztráta produktivity je větší, než délka porady. 

Ke každé neplánované poradě nebo vyrušení si přičtěte 20 minut na návrat do stavu s plnou koncentrací a tak z pětiminutového rozhovoru ztratíte 25 minut času vývojáře. To stejné platí pro e-maily, telefony apod.

Některé přední společnosti, aby omezily ztrátu produktivity, zavádí dny bez e-mailů a porad. V tuto dobu se na projektu porady nekonají a e-maily nevyřizují. Takové dny jsou obvykle pátky a pomáhají zvyšovat produktivitu týmu.

Stejné nebezpečí pro ztrátu produktivity je i stav, pokud má vývojář na starost více projektů. Každý projekt navíc významně snižuje produktivitu a někdy až o 50 %. Proto pokud musíte přesunovat vývojáře mezi projekty, ujistěte se, že jsou na každém projektu alespoň plné dva dny.

A co snižuje vaši produktivitu práce nejvíce?


Řízení firemní wiki s mnoha daty

Nedávno jsem se bavil s kamarádem, který pracuje ve velké softwarové společnosti, která má vývojáře po celém světě. Řešili jsme, jak pracující se znalostmi, jak je ukládají, jak on sám přispívá a jak se mu ve firemní znalostní databázi hledá.

Říkal, že pro ukládání znalostí používají wiki a mají s tím ty nejlepší zkušenosti, co se týče ukládání a editace dat. Problém však mají, pokud mají něco hledat. Jejich wiki obsahuje velké množství záznamů a stránek a proto se v ní špatně orientuje. V takovou chvíli se stává wiki s přibývajícím obsahem stále hůře použitelná a v důsledku toho i nově vznikající záznamy nenavazují na stránky, které k sobě obsahově patří. Z wiki se jim pak stává čím dál tím hůře udržovatelný nástroj. 

Ukázalo se, že v takové situaci zcela dobře nefunguje ani fulltextové vyhledávání, protože najít hledaný relevantní obsah je příliš zdlouhavé. Důvody byly dva. Špatná indexace dané wiki a množství obsahu, ve kterém se špatně fulltextově hledá, protože jsou používána různá synonyma, wiki je špatně prolinkována apod. 

Pokračovali jsme v diskuzi dál a narazili jsme na související odkazy, které jsou implementované v Abakowiki. Jedná se o řešení, které doporučuje podobný obsah k právě otevřené stránce. Řešení je možné i různě nastavovat, aby doporučovalo podobné stránky pouze z určité oblasti dané štítky (tag cloudu). A dále aby doporučovalo seznam prolinkovaných stránek (příchozí i odchozí odkazy). V obou případech vám systém automaticky nabídne související odkazy. Obě kritéria se pak vzájemně doplňují a vznikají tak sémanticky relevantní doporučení.

Používání souvisejících odkazů příznivě ovlivňuje i výsledky fulltextového vyhledávání, protože lidé začnou odkazovat na více stránek, které jsou jim nabídnuté pomocí tag cloudu, takže se nakonec zlepšují obě formy vyhledávání.

V konečném důsledku mohou lidé jednak lépe najít obsah pomocí fulltextového vyhledávání a zároveň jim systém doporučuje podobný obsah ke stránce, kde se právě nacházejí. Tyto dvě formy navigace ve wiki způsobují, že informace jsou snadněji nalezitelné a wiki tak i při velkém množství obsahu slouží svému účelu.


Tři největší problémy při řízení projektů

Často se setkáváme s problémem, že lidé potřebují naplánovat úkoly a pak je sdílet se svým týmem. Vedoucí týmů až příliš často plánují projekt v jednom nástroji a úkolují pomocí e-mailu nebo instatnt messangerů. Výsledkem potom je, že ztrácí přehled, co lidé mají vlastně dělat a jaké jsou termíny. Stejně tak lidé, kteří úkoly dostávají ztrácí v snadno přehled. Vzniká tak první problém, který se nazývá zmatek.

Nejen pro vedoucí projektů je důležité sdílet se svými kolegy materiály, metodiky a postupy práce. Až příliš často se setkáváme s problémem, že lidé mají uložené metodiky ve wiki nebo na různých sdílených discích a v e-mailech. Úkoly však sdílejí v nějakém nástroji na projektové řízení. Výsledkem je, že lidé nakonec metodiky nepoužívají a původně nastavené procesy a nejlepší praktiky se z týmu vytrácejí. Vzniká tak problém ztráty přístupu.

Třetím problémem, které lidé v práci řeší je nalezení vhodných sdílených prostorů na spolupráci. Je nutné si někam ukládat dokumenty, které budou přístupné pro kolegy i zákazníky. Je nutné někde společně navrhovat a plánovat výstupy projektu. Je nutné mít místo pro společnou práci. Pokud tomu tak není, lidé se buď začnou topit v e-mailech nebo tráví příliš mnoho času na poradách. Výsledkem je ztráta času.

Abakowiki v edici pro projektové vedení řeší všechny tři problémy. Umožňuje vám projekty plánovat, rozdávat úkoly týmu, sdílet dokumenty i spolupracovat na výstupech. Vše z jednoho nástroje a vše velmi snadno a rychle. Abakowiki vám šetří váš čas.

Spolu s novou verzí Abakowiki přichází i nový web, kde najedete mnohem více informací a můžete si také projektové řízení v Abakowiki vyzkoušet.


Vylepšili jsme systém sdílení a přístupových práv

Naší trvalou snahou je usnadnit všem uživatelům Abakowiki její každodenní používání. A protože primárním cílem nasazení Abakowiki je spolupráce nad informacemi jak v rámci jedné firmy, tak i mezi partnerskými firmami, zaměřili jsme se na zjednodušení funkcí sdílení.

Navrhli jsme řešení, které umožňuje snadněji sdílet obsah s kolegy, a zároveň jsme ponechali možnost komplexního systému správy práv k jednotlivým informacím, takže si můžete být jisti, že řídíte přístup k obsahu přesně tak, jak potřebujete.

Tuto aktualizaci jsme přidali do systému a ve vaší Abakowiki se na nástěnce nyní ukazuje, že byl nahrán nový systém sdílení.

Abakowikioznameni.png

Změny, které nové sdílení dokumentů v Abakowiki nyní nabízí, spočívají především ve vyšším uživatelském komfortu a v lepší kontrole přístupů k obsahu. Budete tak schopni s malým vynaloženým úsilím opravdu efektivně spolupracovat i s velkým množstvím kolegů a spolupracovníků. Vznikl tak opravdu mocný a pohodlný enterprise nástroj na sdílení dokumentů v rámci jedné i více firem.

Informace o tom, jak přesně s právy pracovat naleznete v dokumentaci systému.


První úpravy na základě uživatelských doporučení

Dnes jsme hromadně aktualizovali Abakowiki na základě prvních uživatelských doporučení, která jste nám zaslali. V této první vlně jsme se snažili zapracovat rady na zjednodušení menu a udělali jsme také změny, aby více používané odkazy byly rychleji dostupné. Od teď se tedy všem uživatelům bude v pravé horní části zobrazovat seznam rychlých odkazů (místo seznamu prostorů), které usnadňují navigaci po Abakowiki a horní menu bude více intuitivní.

Toto je vlastně jedna z prvních aktualizací systému týkající se přímo uživatelského rozhraní, kterou jsme dělali od vpuštění prvních uživatelů do privátní bety. A tato aktualizace, stejně jako řada dalších provedených dříve, mi jen stále více připomíná, jak software dodávaný jako služba zjednodušuje život všem, kteří chtějí využívat software, chtějí ho mít stále aktualizovaný a nemohou nebo nechtějí vynaložit námahu, aby aktualizace prováděli sami.

Kromě tohoto pohodlí je ve skutečnosti také vyšší četnost samotných aktualizací. Bylo by naprosto nemyslitelné, že bychom vydávali dnešní aktualizaci tak snadno a rychle a dostali ji zdarma všichni uživatelé, pokud bychom nevyužívali výhod SaaS.


Abakowiki najdete také na Facebooku

Facebook je fenomén poslední doby, je to sociální síť s obrovským dosahem a tak jsme se rozhodli zkusit ji využít jako možnou formu komunikace s našimi uživateli. Vytvořili jsme skupinu Abakowiki, kam je možné se volně registrovat a diskutovat o této službě. Každým dnem přibývají další členové a doufáme tak, že komunikace, která se nyní vede na několika různých platformách, se stáhne na několik málo a bude o něco efektivnější.

Facebook budeme využívat např. pro organizaci setkání členů této skupiny, součástí budou také různé diskuze týkající se Abakowiki nebo enterprise 2.0 obecně. V neposlední řadě by vám tato skupina měla umožnit potkat se s lidmi se stejným zájmem. Věříme, že toto je několik dobrých důvodů, proč se do skupiny na Facebooku registrovat.


Vlastnosti, které oceňuji při práci s informacemi

Moje práce se skládá především z psaní textů, vlastně abych byl úplně přesný, tak psaní a čtení (a psaním nemyslím kousky nějakého kódu, ale normální souvislé texty). V současné životní etapě nedělám prakticky nic jiného. Už jen z tohoto hlediska je pro mě důležité být co nejefektivnější při práci s textem.

Informace se ke mě dostávají z několika zdrojů, přijde mi e-mail, najdu něco přes vyhledávač(e) nebo se mi v RSS čtečce objeví nová informace. Protože se snažím minimalizovat kanály, kterými ke mě proudí informace, mám všechny e-maily sdružené do jednoho klienta a všechny online media do jedné RSS čtečky.

Se čtením textů, které pasivně konzumuji problém není. Vlastně tento problém není již několik let, dokonce jsem se smířil i s faktem, že stovky nepřečtených zpráv v RSS čtečce jsou normální (když vidím čtečky ostatních, tak je to prostě normální).

Nicméně stále potřebuji řešit rozumný přísun informací, ke kterým mám něco napsat nebo se nějak vyjádřit. Řada lidí mi posílá e-mailem různé soubory a já na ně s kolísající úspěšností reaguji (podle celkového objemu e-mailů). Tato komunikace je především s lidmi, kteří nepoužívají wiki a nebo se jedná o rychlou informaci s nulovou informační hodnotou v budoucnosti.

Druhý kanál informací jsou pro mě rozpracované dokumenty uložené v Abakowiki. Zde jsem až donedávna musel být ve wiki přihlášený, abych viděl změny na dokumentech, které provedli ostatní uživatelé. Je tomu však pár dní, co můžu používat svoji běžnou RSS čtečku i na změny provedené v Abakowiki.

Určitě vám blesklo hlavou, že je nebezpečné vypustit ven RSS kanál z uzavřené wiki, kam je přístup pouze pod heslem. Nicméně tento problém jsme vyřešili a do RSS čteček pouštíme pouze nadpisy, autora změny a typ změny. Vše funguje velmi chytře a já tak mohu být přihlášen pouze ve dvou aplikacích, být neustále informován a pracovat s informacemi ještě o něco efektivněji.


První uživatelé Abakowiki chválí a hodnotí lépe než Google Sites

Začali jsme ve větším měřítku rozesílat pozvánky do Abakowiki a tak je systém postupně zatěžován prvními reálnými uživateli. Spouštění systému, který byl několik měsíců užíván pouze pro naší interní potřebu, je hodně zajímavá a vzrušující věc. Člověk sleduje statistiky a kouká, zda se pozvaní uživatelé registrují, jaké jsou poměry registrovaných k pozvaným, jak moc se vytvořené wiki plní apod. Mít víc času, asi by se dalo strávit hodně hodin klikáním na tlačítko obnovit a zjišťováním aktuálního stavu.

Nicméně jedna věc jsou statistiky a druhá věc je použitelnost samotné Abakowiki. Po celou dobu vývoje, kdy jsme systém používali, jsme pracovali na použitelnosti. Snažili jsme se zabudovat všechny možné poznatky ze skutečného používání a také nápady řady z vás, které jsem během posledních několika měsíců potkal a mluvil s vámi.

Nakonec se zdá, že i přes dětské nemoci privátní bety se systém povedl. Nemůžu tvrdit, že je v současné době vše do detailu propracované, ale funkce, které nám při práci s textem postupně ulehčovaly život, patří mezi ty, které lidé velmi chválí. Rozhodně mě v této souvislosti potěšil příspěvek Milana Čermáka, který Abakowiki používá pro dokumentaci během vývoje projektu Soci.alism.us a hovoří o ní jako o kvalitnějším systému než jsou Google Sites.

Mezi funkce, které si Milan pochvaluje patří hledání stránek ve wiki, které je mimo jiné děláno pomocí tag cloudu a jeho filtrování a zpřesňování. Tato vlastnost práce s tagy rozhodně nepatří mezi standardní vlastnosti tag cloudů a já jsem velmi rád, že v Abakowiki je.

Osobně mám také velmi rád nástěnku, která mi vždy řekne, co je v naší wiki nového a vždy poznám, které věci mě budou nejvíce zajímat, protože vidím v jaké kategorii jsou uložené a kdo je přidal. Tato identifikace mi hodně spolehlivě napoví, jestli se mám o stránku více zajímat či nikoli.

Abakowiki mi tak na jednu stranu bere čas při práci na ní a zároveň ho šetří, protože mám dobře filtrované a správné informace. Současní první uživatelé jsou na tom z tohoto pohledu lépe, protože jim Abakowiki čas pouze šetří.