5 zásad, jak odhadovat čas v softwarových projektech bez iluzí
Nakonec platí, že odhad je týmová záležitost. Pokud na projektu pracuje více lidí, sečtěte jejich odhady a přidejte čas na koordinaci. Dva lidé na stejném úkolu neznamenají poloviční čas, často spíš delší, protože musí sladit postup. Ptejte se kolegů, co je na dané práci dříve zdrželo. Zkušenost druhých je nejlevnější způsob, jak se vyhnout opakování stejných chyb. Odhadovat lépe neznamená být přesný na den, ale vědět, kde jsou největší nejistoty, a plánovat s nimi.
Další zásadou je odhadovat v rozmezí, ne v jednom čísle. Místo „hotovo za šest dní" řekněte „pravděpodobně za pět až devět dní". Rozpětí nutí k zamyšlení nad riziky a zároveň chrání před falešnou přesností. Když se pak objeví neočekávaný problém s knihovnou nebo s integrací, nemusíte vysvětlovat, proč to trvalo déle. Stačí ukázat, že jste horní hranici nevyloučili.
Poslední krok je úklid. Po sloučení větev smažte, ať se v seznamu netvoří šum. Větev, která zůstane nedokončená, označte a nenechte ji ležet bez vysvětlení. Pokud se práce na funkci zastaví, rozhodněte: dokončit, zavřít, nebo rozdělit. Nedokončené větve se hromadí a za půl roku nikdo neví, co v nich je. Průběžná kontrola stavu větví je stejně důležitá jako psaní kódu.
Důležité je také nastavit, co se stane, když někdo pravidla poruší. Automatická oprava při ukládání je pohodlná, ale nesmí být jediná obrana. V CI se vyplatí spouštět kontrolu formátu bez zápisu, aby se odhalily i případy, kdy někdo formátovač vypne. Zároveň je dobré mít v repozitáři dokument, který stručně popíše, které nástroje se používají a jaké příkazy se mají spouštět. Nemusí to být dlouhý text, stačí pár řádků s jasnými instrukcemi.
Do payloadu nepatří citlivé údaje. Token je jen podepsaný, ne zašifrovaný – kdokoli ho zachytí, přečte jeho obsah. Nikdy tam neukládejte hesla, rodná čísla ani platební údaje. Stav, jako je zablokování uživatele nebo změna oprávnění, se musí kontrolovat na serveru, ne z tokenu. Token je pouze nosič identity, ne zdroj pravdy.
Základem je oddělit podepisovací klíč od ověřovacího. U symetrického HS256 stačí jeden klíč, a kdo ho získá, může vydávat libovolné tokeny. Proto se v produkci používá asymetrické podepisování RS256 nebo ES256: privátní klíč zůstává na autorizačním serveru, veřejný klíč si stahují ostatní služby. Důležité je ověřovat i vydavatele (iss), příjemce (aud) a čas platnosti (exp, nbf). Bez kontroly aud může token určený pro jinou aplikaci projít tam, kam nepatří.
Nejčastější chyba je funkce, která načte data, přepočítá je, vykreslí do stránky a ještě zapíše do logu. Taková funkce se nedá testovat ani znovu použít. Rozdělte ji na menší části, každá ať má jasný vstup a výstup. Pokud funkce přesáhne zhruba dvacet řádků, zkuste se zamyslet, jestli v ní není skrytá další odpovědnost. Vyhněte se také předávání příliš mnoha parametrů; když jich je víc než tři, bývá čitelnější předat objekt s pojmenovanými vlastnostmi. Uvnitř funkcí používejte const jako výchozí volbu a let jen tam, kde se hodnota skutečně mění. var dnes nemá v běžném kódu co dělat.
Doba platnosti přístupového tokenu má být krátká, v řádu minut. Delší platnost řešte obnovovacím tokenem, který lze odvolat. U obnovovacích tokenů používejte rotaci: při každém obnovení se vydá nový a starý se zneplatní. Pokud se starý token objeví znovu, jde o známku úniku a je třeba celou rodinu tokenů zrušit. Tento mechanismus odhalí krádež dřív, než napáchá větší škodu.
Základní pravidlo zní: jedna větev, jeden logický celek. Jakmile do větve přidáte nesouvisející změnu, přestává být izolovaná a při sloučení táhnete i to, co ještě hotové není. Častá chyba je opačný extrém – všechno v jedné větvi. Pak se v jednom sloučení míchají databázové migrace, úprava rozhraní a kosmetické změny. Když se něco pokazí, nemáte jak zjistit co. Menší větve se také lépe testují a rychleji procházejí kontrolou.
Nakonec mějte přehled o tom, co se děje. Logujte neúspěšná ověření, sledujte tokeny s neplatným podpisem a nastavte limity na počet požadavků. Bezpečnost JWT není o jednom nastavení, ale o důsledné kontrole na každém místě, kde token prochází. Právě tam, kde se na ověření zapomene, vzniká osvětlení v obývákuětšina incidentů.
Odhad času v softwarovém projektu není věštění. Je to dovednost, která se dá trénovat. Většina týmů ale opakuje stejné chyby: odhadují podle pocitu, zapomínají na vedlejší činnosti a pak se diví, If you loved this write-up and you would like to get much more facts relating to Crabcodex.com kindly take a look at our web-page. že se termín posunul o týdny. Přitom stačí změnit několik návyků.
Rezerva není slabost, ale součást odhadu Do každého odhadu je potřeba započítat režii. Schůzky, code review, čekání na odpověď, opravy chyb z minula, neplánované požadavky. Zkušené týmy počítají s tím, že skutečná práce zabere jen kolem šedesáti procent pracovní doby. Pokud tedy čistý vývoj odhadujete na pět dní, v kalendáři vám to zabere osm až devět dní. Není to lenost, je to realita. Kdo tuto rezervu vynechá, dostane se do skluzu ještě před prvním commitem.