Główne założenia XP. Prostota (Simplicity) Komunikacja (Communication) Sprzężenie zwrotne (Feedback) Odwaga (Agressiveness)

Podobne dokumenty
Jarosław Kuchta Dokumentacja i Jakość Oprogramowania. Wymagania jakości w Agile Programming

Metodyki zwinne wytwarzania oprogramowania

Programowanie zwinne

Programowanie Zespołowe

Metody wytwarzania oprogramowania. Metody wytwarzania oprogramowania 1/31

Programowanie zespołowe

szkolenia pod drzewem Wybrane Techniki XP bnd 2008 Tomasz Włodarek. Materiał udostępniany na podstawie licencji Creative Commons (by-nc-nd) 1.00.

Programowanie zwinne - wprowadzenie. Programowanie ekstremalne. Wstęp Reguły i praktyki SCRUM. Wprowadzenie Role Zdarzenia Artefakty

Techniki komputerowe w robotyce

Wskazówki projektowe. Programowanie Obiektowe Mateusz Cicheński

Szybkość w biznesie. Zwinne testowanie oprogramowania (Agile) Mateusz Morawski (mateusz.morawski@hp.com) 14 kwietnia 2015

Feature Driven Development

Zagadnienia. Inżynieria Oprogramowania

Metodyki programowania. Tomasz Kaszuba 2015

Podejście tradycyjne. plan wykonanie sekwencyjna natura wykonywanych zadań

Wykład VII. Programowanie III - semestr III Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

SYSTEMY INFORMATYCZNE ćwiczenia praktyczne

Agile vs PRINCE /2015 I rok st. magisterskie Informatyka

Programowanie Zespołowe

Zagadnienia. Inżynieria Oprogramowania

Testowanie Akceptacyjne

Lekkie metodyki. tworzenia oprogramowania

Wykład 2. MIS n Inżynieria oprogramowania Marzec Kazimierz Michalik Akademia Górniczo-Hutnicza im. S. Staszica w Krakowie

Tworzenie gier na urządzenia mobilne

Agile Project Management

Zwinna współpraca programistów i testerów z wykorzystaniem BDD i. by Example (JBehave/Spock/SpecFlow)

Testujemy dedykowanymi zasobami (ang. agile testers)

Projektowanie oprogramowania. Termin zajęć: poniedziałek, a podstawie materiału ze strony.

Planowanie i realizacja zadań w zespole Scrum

Zarządzanie testowaniem wspierane narzędziem HP Quality Center

Zarządzanie projektami. Porównanie podstawowych metodyk

4. Wprowadzanie Scruma w ImmobilienScout Opis sytuacji

Zwinne wytwarzanie oprogramowania. Ian Sommerville: Software Engineering 9th edition, chapter 3. 1

Opis realizacji dla czterech zespołów (4 przypadki użycia)

SCRUM. Metodyka prowadzenia projektów. Na podstawie prezentacji B. Kuka i W. Sidora

SCRUM niełatwe wdrażanie metodyki w praktyce. Adam Krosny

Wprowadzenie do Behaviordriven

Organizacja procesu projektowania, rozwoju i serwisowania systemu wspomagającego zarzadzanie uczelnią

Projektowanie systemów informatycznych. Roman Simiński programowanie.siminskionline.pl. Cykl życia systemu informatycznego

Techniki komputerowe w robotyce

Jak być agile w projekcie utrzymaniowym? JOANNA SIEMIŃSKA

INŻYNIERIA OPROGRAMOWANIA LAB 1

Piotr Ślęzak. Gdzie się podziała jakość

Leszno Jakie są i będą oczekiwania biznesu wobec IT?

Testowanie oprogramowania

Zarządzanie projektami. Porównanie podstawowych metodyk

Całościowe podejście do testowania automatycznego dla programistów. (TDD, BDD, Spec. by Example, wzorce, narzędzia)

Maciej Oleksy Zenon Matuszyk

Tematy seminariów wg Roger S. Pressman, Praktyczne podejście do oprogramowania, WNT, Zofia Kruczkiewicz

Michał Olejnik. 22 grudnia 2009

MODELE CYKLU ŻYCIA OPROGRAMOWANIA (1) Model kaskadowy (często stosowany w praktyce do projektów o niewielkiej złożonoś

Optymalizacja Automatycznych Testów Regresywnych

Tematy seminariów wg Roger S. Pressman, Praktyczne podejście do oprogramowania, WNT, Zofia Kruczkiewicz

PROJEKTOWANIE ZORIENTOWANE NA UŻYTKOWNIKA W METODYCE SCRUM. Hubert Wawrzyniak Grupa Allegro

Testowanie w procesie Scrum

Cykle życia systemu informatycznego

Programowanie Zespołowe

Oceny z prezentacji INKU011S. Zofia Kruczkiewicz

LEKKIE METODOLOGIE WYTWARZANIA OPROGRAMOWANIA

Opis metodyki i procesu produkcji oprogramowania

Scaling Scrum with SAFe. Małgorzata Czerwińska

Akademia ADB Wykład I Praca w grupie i jakość kodu

DLACZEGO TO DZIAŁA? 21. marca 2012r.

Acceptance Test Driven Development wspierane przez narzędzie ROBOT Framework. Edyta Tomalik Grzegorz Ziemiecki

Modele cyklu życia oprogramowania

Programowanie zespołowe Dr inż. Robert Banasiak

Budowa aplikacji webowej w oparciu o Maven2 oraz przykłady testów jednostkowych. Wykonał Marcin Gadamer

Inżynieria oprogramowania (Software Engineering)

EMPIRYZMSCRUM DOŚWIADCZENIE + PODEJMOWANIE DECYZJI = WIEDZA

Programowanie extremalne. Adrian Gadzina

Scrum w praktyce. Michał Piórek

Całościowe podejście do testowania automatycznego dla programistów. /C#/PHP (TDD, BDD, Spec. by Example, wzorce, narzędzia)

Testowanie oprogramowania. Piotr Ciskowski

Programowanie Ekstemalne

Wprowadzenie do metodyki SCRUM. mgr inż. Remigiusz Samborski Instytut Informatyki Politechnika Wrocławska

Program szkolenia: Wprowadzenie do Domain Driven Design dla biznesu (część 0)

Jarosław Kuchta. Projektowanie Aplikacji Internetowych. Wprowadzenie

Projektowanie zorientowane na uŝytkownika

Błędy procesu tworzenia oprogramowania (Badania firmy Rational Software Corporation)

Metodyki zwinne AGILE

Usługa: Testowanie wydajności oprogramowania

Oferta szkoleń firmy Code Sprinters

MAJ 2015 CASE STUDY

SCRUM Product Owner - wstęp do zarządzania produktami

Program szkolenia: Test Driven Development (TDD) using Spock or JUnit 5

Etapy życia oprogramowania

REFERAT PRACY DYPLOMOWEJ

Zwinne wytwarzanie oprogramowania

Projektowanie systemów informatycznych. wykład 6

Programowanie ekstremalne

HP Service Anywhere Uproszczenie zarządzania usługami IT

Zwinne metodyki - Scrum

Testowanie oprogramowania. Testowanie oprogramowania 1/34

Etapy życia oprogramowania. Modele cyklu życia projektu. Etapy życia oprogramowania. Etapy życia oprogramowania

Program szkolenia: Continuous Integration i Git

Podejście zwinne do zarządzania projektami

AGILE SOFTWARE HOUSE SCRUM PRAKTYCZNIE SCRUM BOOK

Zarządzanie projektami IT metodyką SCRUM. Cezary Kamiński

Wytwarzanie oprogramowania

Transkrypt:

Extreme programming

Główne założenia XP Prostota (Simplicity) Komunikacja (Communication) Sprzężenie zwrotne (Feedback) Odwaga (Agressiveness)

Praktyki Planowanie: Planowanie releasu Planowanie iteracji Małe releasy Testowanie Metafora Prosty projekt Refaktoryzacja (poprawienie projektu).

Praktyki Programowanie w parach Ciągła integracja Zrównoważony krok Klient on-line Standardy kodowania Wspólna własność kodu

Procesy Planowanie Projektowanie Kodowanie Testowanie

Planowanie Klient uczestniczy w planowaniu Planowanie releasu: klient prezentuje programistom co chce mieć. Zespół ustala stopień trudności oraz ryzyka. Plany nie są precyzyjne. Planowanie iteracji: dokładniejsze planowanie, na dwa tygodnie. Iteracja kończy się działającą wersją.

Projektowanie Pisanie testów jednostkowych Projektowanie testów akceptacyjnych Nie ma projektowania na wyrost Nie ma nadmiarowości

Kodowanie W parach Najpierw testy jednostkowe Zachowanie standardów kodowania Klient zawsze dostępny podczas kodowania Ciągła integracja kodu Optymalizacja kodu podczas jego tworzenia Kodowanie funkcjonalności według określonych priorytetów Funkcjonalność jest tworzona osobno i jest pod koniec dnia integrowana Programiści nie pracują więcej niż 40h na tydzień

Testowanie Testy jednostkowe Dla każdej funkcjonalności Przed wypuszczeniem releasa powinny wszystkie testy jednostkowe przechodzić. Testy funkcjonalne Sprowadzenie czy jest cała zakładana funkcjonalność Nabranie pewności, że rozwój produktu idzie w dobrą stronę Nabranie przekonanie że nie tracimy czasu i pieniędzy

Kluczowe cechy testowania Nadzorowane przez klienta - klient powinien rozumieć testy; Powtarzalność - programiści powinni tworzyć testy po dodaniu nowej funkcjonalności; Automatyczność powinny być automatycznie uruchamiane; Publiczne powinny być publicznie dostępne, klient powinien widzieć postęp w tworzonym oprogramowaniu.

Kwestie kontrowersyjne Brak dokładnej specyfikacji. Konieczna stała dostępność przedstawiciela klienta. Wspólna "własność" kodu - każdy może zmieniać dowolny fragment systemu.

XP vs Scrum- różnice Scrum nie zezwala na zmiany wewnątrz sprintu. W XP jeśli nie rozpoczęła się praca nad daną funkcjonalnością, może być ona wymieniona na coś innego. W XP klient ustala priorytet zadań. W scrumie właściciel produktu ustala product backlog a zespół ustala kolejność realizacji. Scrum nie ustala żadnych praktyk inżynierskich, XP natomiast: test-driven development, programowanie w parach, testy automatyczne, refaktoryzacja, itd. Scrum daje odpowiedzialność Scrum masterowi, w XP jest powszechna własność kodu, która umożliwia każdemu modyfikację kodu.

XP vs Scrum- różnice XP: ciągłą walidacja produktu, Scrum: testowanie na koniec sprintu; XP: 40 godzinny tydzień pracy, Scrum: nie ma takiego ograniczenia; XP: programowanie w parach, Scrum: nie ma takiego pojęcia

XP vs Scrum- podobieństwa Uwzględniają nieprzewidywalność specyfikacji; Kładą nacisk na wyprodukowanie produktu w krótkim czasie; Kładą nacisk na komunikację pomiędzy członkami zespołu.

Manifest Agile Osiągnięcie satysfakcji klienta poprzez szybkość wytwarzania oprogramowania, Działające oprogramowanie jest dostarczane okresowo (raczej tygodniowo niż miesięcznie), Podstawową miarą postępu jest działające oprogramowanie, Późne zmiany w specyfikacji nie mają destrukcyjnego wpływu na proces wytwarzania oprogramowania, Bliska, codzienna współpraca pomiędzy biznesem a deweloperem, Bezpośredni kontakt jako najlepsza forma komunikacji w zespole i poza nim, Ciągła uwaga nastawiona na aspekty techniczne oraz dobry projekt (design), Prostota, Samozarządzalność zespołów, Regularna adaptacja do zmieniających się wymagań.