====== Metodiky vývoje (Agile, Scrum, BEM) ====== Úspěch softwarového projektu nezávisí pouze na kvalitě napsaného kódu, ale především na způsobu, jakým je projekt řízen a jak je kód strukturován. Moderní vývoj stojí na dvou pilířích: **agilním řízení projektů** a **standardizaci zápisu kódu**. ===== 1. Agilní metodiky (Agile) ===== **Agile** není konkrétní návod, ale soubor principů definovaných v "Agilním manifestu". Hlavním cílem je schopnost rychle reagovat na změny požadavků zákazníka, které v průběhu vývoje nevyhnutelně přicházejí. ==== Hlavní hodnoty Agile: ==== * **Lidé a interakce** mají přednost před procesy a nástroji. * **Fungující software** je důležitější než vyčerpávající dokumentace. * **Spolupráce se zákazníkem** je klíčová (zákazník je součástí procesu). * **Reagování na změny** je přednější než striktní dodržování plánu. --- ===== 2. Rámec Scrum ===== **Scrum** je nejpopulárnější implementací agilních principů. Rozděluje vývoj do krátkých časových úseků zvaných **Sprinty** (obvykle 1 až 4 týdny). ==== Role ve Scrumu: ==== * **Product Owner:** Vlastník produktu, který definuje priority (co má největší hodnotu pro byznys). * **Scrum Master:** Kouč týmu, který odstraňuje překážky a dohlíží na dodržování procesů. * **Vývojový tým:** Cross-funkční skupina lidí, která práci reálně vykonává. ==== Artefakty a rituály: ==== * **Backlog:** Seznam všech úkolů a funkcí, které je třeba vytvořit. * **Daily Stand-up:** Krátká denní schůzka (15 min), kde se řeší, co se udělalo a co tým brzdí. * **Sprint Review & Retrospective:** Na konci sprintu se ukáže hotová práce a tým hodnotí, jak zlepšit svou spolupráci. ---- ===== 3. Metodika BEM (Block, Element, Modifier) ===== Zatímco Agile a Scrum řeší *kdy* a *kdo* bude pracovat, **BEM** řeší, *jak* bude vypadat kód, aby se v něm nikdo neztratil. BEM je metodika pojmenovávání tříd v CSS, kterou vyvinul Yandex. ==== Struktura BEM: ==== BEM pomáhá vytvářet znovupoužitelné komponenty a zabraňuje konfliktům v kódování frontendu. * **Block (Blok):** Samostatná, smysluplná entita (např. ''menu'', ''button'', ''search-form''). * **Element (Prvek):** Část bloku, která nemá samostatný význam (např. ''item'' v menu). Zapisuje se dvěma podtržítky: ''block__element''. * **Modifier (Modifikátor):** Příznak, který mění vzhled nebo stav (např. ''red'', ''disabled''). Zapisuje se dvěma pomlčkami: ''block--modifier'' nebo ''block__element--modifier''. ==== Příklad v kódu: ====

Název produktu

---- ===== 4. Proč tyto metodiky kombinovat? ===== Propojení agilního řízení a striktní struktury kódu přináší: * **Škálovatelnost:** Díky BEM může na CSS pracovat 10 vývojářů najednou, aniž by si přepisovali styly. Díky Scrumu může tým růst a stále doručovat výsledky. * **Předvídatelnost:** Zákazník vidí výsledky každých 14 dní (konec sprintu). * **Udržovatelnost:** Starý kód je díky BEM čitelný i po letech, protože z názvu třídy je jasné, kam patří. ---- //Související články:// * [[it:dev:web_tech|Webové technologie (HTML, CSS, JS)]] * [[it:dev:testing|Testování softwaru a QA]] * [[it:dev:git|Verzování kódu (Git)]] //Tagy: {{tag>dev agile scrum bem css project_management architecture}}//