Wymagania jakości w Agile Programming

Slides:



Advertisements
Podobne prezentacje
Agile w praktyce, czyli jak to robimy naprawdę
Advertisements

Programowanie Ekstemalne
Modelowanie przypadków użycia
Projektowanie w cyklu życia oprogramowania
Złożoność procesu konstrukcji oprogramowania wymusza podział na etapy.
Opis metodyki i procesu produkcji oprogramowania
Role w zespole projektowym
Metodyki prowadzenia projektów - SCRUM
Analiza ryzyka projektu
1 / 47 WARSZAWA 2005 Przemysław Siekierko Stanisław Andraszek Rational Unified Process.
Nowoczesne metody zespołowego tworzenia aplikacji
FIT Środowisko Testów Integracyjnych
Projektowanie Aplikacji Komputerowych
Projektowanie Aplikacji Komputerowych
EXtreme Programming » Magdalena Tchorzewska.
SYSTEM ZARZĄDZANIA JAKOŚCIĄ
Metodologia XP Husaria.
Na Etapie Inżynierii Wymagań
Inżynieria Oprogramowania Copyright, 2002 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
J. Nawrocki, Inżynieria oprog. Plan wykładu Praktyki XP Wcześniejsze badania Personal Software Process eXtremme Programming Opis eksperymentu WynikiPodsumowanie.
Tomasz Pieciukiewicz Rafał Hryniów
Cykle życia oprogramowania
Agile Programming a jakość
Metodyki Lekkie Agile Methodologies
Quartz. Wstęp Framework stworzony do budowy aplikacji biznesowych Metodologia która łączy prototypowanie, modelowanie wizualne oraz automatyzację budowy.
Rational Unified Process
Praca Inżynierska „Analiza i projekt aplikacji informatycznej do wspomagania wybranych zadań ośrodków sportowych” Dyplomant: Marcin Iwanicki Promotor:
Projekt zaliczeniowy z przedmiotu "Inżynieria oprogramowania"
Dalsze elementy metodologii projektowania. Naszym celem jest...
Wykład 2 Cykl życia systemu informacyjnego
Psychologiczne aspekty pracy testera oprogramowania
C.d. wstępu do tematyki RUP
Projekt systemu ekspertowego Nazwa Grupa: Zespół:…… …… ……. ……..
Continuous Integration
EasyMOD kontrola modyfikacji i rozszerzeń systemu SAP
Zarządzanie projektami
Microsoft Solution Framework
Zarządzanie jakością projektu
Magdalena kurzyńska Sławomir Kwasiborski
Refaktoryzacja Robert Pająk.
Rational Unified Process Implementacja Aleksandra Reiman, gr. I-52.
Dr Karolina Muszyńska Na podst.:
Propozycja projektu Andrzej Ziółkowski.
Urządzenia 1 mld smartfonów do 2016 r., 350 mln z nich jest używanych w pracy Ludzie 82 % populacji online korzysta z sieci społecznościowych Chmura.
Moduł III Definiowanie i planowanie zadań typu P 1.
Waterfall model.
Zarządzanie zagrożeniami
SYSTEM FUNKCJI, PROCESÓW I PRZEDSIĘWZIĘĆ W ORGANIZACJI.
ŁUKASZ DZWONKOWSKI Modele zwinne i ekstremalne. Podejście tradycyjne
Proces tworzenia oprogramowania Proces tworzenia oprogramowania jest zbiorem czynności i związanych z nimi wyników, które prowadzą do powstania produktu.
Podstawy zarządzania projektami Karta projektu
Agile Manifesto Manifest Zwinnego Wytwarzania Oprogramowania
Copyright © Jerzy R. Nawrocki Team Software Process Inżynieria oprogramowania II Wykład.
Artur Milewski SCRUM.
Eksploatacja zasobów informatycznych przedsiębiorstwa.
1 1 / 15 Techniki lokalizacji oprogramowania – wykład 7 Wykład 7: Testowanie projektów lokalizacyjnych dr inż. Agenor Hofmann-Delbor.
Efektywne tworzenie oprogramowania 2008/2009 cvs.ii.uni.wroc.pl/eto2008.
7/1/ Projektowanie Aplikacji Komputerowych Piotr Górczyński Cykl życia systemu.
Karolina Muszyńska. Spis zagadnień Wprowadzenie Znaczenie zarządzania komunikacją dla powodzenia projektu Praktyki zarządzania komunikacją w zespołach.
Logical Framework Approach Metoda Macierzy Logicznej
Temat: Porównanie technologii php,c# oraz javascript na przykładzie webaplikacji typu społecznościowy agregator treści Autor: Wojciech Ślawski.
Projekt innowacyjny: Poszukiwanie nowych skutecznych metod aktywizacji zawodowej i społecznej grup zawodowych wymagających szczególnego wsparcia PROJEKT.
Cykle życia oprogramowania oraz role w zespole projektowym Autor: Sebastian Szałachowski s4104.
ŚRODOWISKO PRACY ZESPOŁU PROGRAMISTYCZNEGO BAZUJĄCE NA ROZWIĄZANIACH OPEN SOURCE Janusz Marchewa Łódź, r.
Agile Programming a jakość
Gildia Testowa Sposób na koordynację testów w „dużym scrumie”
[Nazwa projektu] Analiza zamknięcia
Jerzy Nawrocki Adam Wojciechowski
Zapis prezentacji:

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

Wady klasycznych metod zapewnienia jakości Duży narzut na dokumentowanie Późne uzyskiwanie konkretnych rezultatów Trudność w odpowiednio wczesnym definiowaniu wymagań Utrata łączności z klientem (użytkownikiem) w fazie implementacji Brak pewności co do uzyskanej jakości Dokumentacja i Jakość Oprogramowania Agile Programming

Założenia Agile Programming (1/2) Najwyższym priorytetem jest zadowolenie klienta, które można zapewnić przez szybkie i ciągłe dostarczanie działającego oprogramowania. Dopuszczalne są zmiany wymagań nawet w późnym stadium projektu. Projekt musi być dopasowywany do zmieniających się wymagań i warunków na korzyść klienta. Działające oprogramowanie jest dostarczane często, co kilka tygodni lub co kilka miesięcy. Im częściej tym lepiej. Potrzebna jest bliska, codzienna współpraca między przedstawicielami klienta i zespołem projektowym. Projekty są oparte o odpowiednio zmotywowanych deweloperów, którym trzeba zapewnić środowisko pracy i zaufać, że wykonają swoją pracę. Najbardziej odpowiednią i efektywną metodą zbierania informacji przez zespół projektowy jest bezpośrednia rozmowa. Dokumentacja i Jakość Oprogramowania Agile Programming

Założenia Agile Programming (2/2) Działające oprogramowanie jest podstawową miarą postępu prac. Proces opracowywania oprogramowania powinien być stale podtrzymywany przez sponsorów, deweloperów i użytkowników. Potrzebne jest stałe zwracanie uwagi na techniczną doskonałość i dobre projektowanie Upraszczanie ma znaczenie zasadnicze Najlepsze wymagania, projekty i struktury pochodzą od samoorganizujących się zespołów. W regularnych odstępach zespół projektowy zastanawia się nad tym, jak zwiększyć swoją efektywność, następnie odpowiednio zmienia i dopasowuje swoje sposoby postępowania. Dokumentacja i Jakość Oprogramowania Agile Programming

Model cyklu pracy Opowieści użytkownika Planowanie wydań Iteracje scenariusze testowe Opowieści użytkownika nowa opowieść użytkownika błędy wymagania szybkość projektu metafora systemu Planowanie wydań plan wydania Iteracje ostatnia wersja Testy akceptacyjne akceptacja klienta Małe wydania Prototyp oszacowanie niepewne oszacowanie potwierdzone następna iteracja Prototyp Dokumentacja i Jakość Oprogramowania Agile Programming

Częste tworzenie małych wydań Częste tworzenie wydań umożliwia lepsze dostosowanie się do wymagań użytkowników (uzyskanie oceny) Dokumentacja i Jakość Oprogramowania Agile Programming

Podział projektu na iteracje Harmonogram opracowania jest dzielony na 1-3 tygodniowe iteracje. Utrzymuje się stałą długość iteracji. Nie planuje się zadań na przyszłość. Jeśli długość iteracji jest zagrożona, to trzeba usunąć z niej część zadań. Dokumentacja i Jakość Oprogramowania Agile Programming

Planowanie iteracji Każda iteracja trwa od 1 do 3 tygodni. Na początku każdej iteracji wybiera się opowieści do implementacji. Dla każdej opowieści określa się zadania programistyczne. Wybiera się też testy akceptacyjne, które się nie powiodły w poprzedniej iteracji. Dokumentacja i Jakość Oprogramowania Agile Programming

Prostota Prosty projekt zajmuje o wiele mniej czasu Jeśli coś jest skomplikowane, to trzeba to zastąpić czymś prostszym Unikaj dodawania funkcjonalności przed uwzględnieniem tego w harmonogramie. Dokumentacja i Jakość Oprogramowania Agile Programming

Unikanie wczesnego dodawania funkcjonalności Należy unikać dodawania funkcjonalności, które „mogą być użyte później”. Jedynie 10% z nich jest rzeczywiście później wykorzystanych. Dokumentacja i Jakość Oprogramowania Agile Programming

Stosowanie refaktoringu Programiści stosują dawno już napisany kod, który niekoniecznie pasuje do rozwiązania, ale działa. To rozwiązanie jest nieefektywne. Należy usuwać nadmiarowości, niewykorzystane funkcjonalności, przestarzałe projekty. Dokumentacja i Jakość Oprogramowania Agile Programming

Klient jest zawsze dostępny Klient ma nie tylko pomagać zespołowi projektowemu, ale ma być jego częścią. Klient pisze opowieści użytkownika. W czasie planowania wydania klient negocjuje wybór opowieści, które mają być włączone do wydania. Klient określa szczegółowe wymagania dla programistów. Klient uczestniczy w testach funkcjonalnych. Dokumentacja i Jakość Oprogramowania Agile Programming

Stosowanie standardów Kod musi być pisany zgodnie ze standardami. Łatwość czytania dla całego zespołu. Łatwość refaktoringu. Dokumentacja i Jakość Oprogramowania Agile Programming

Moduły testowe Moduły testowe są kodowane w pierwszej kolejności. Umożliwia to skupienie się na zrobieniu tego, co jest rzeczywiście wymagane. Dokumentacja i Jakość Oprogramowania Agile Programming

Optymalizacja Optymalizację zostawia się na koniec. Nie próbuje się zgadnąć, co będzie „wąskim gardłem”. To trzeba zmierzyć. Dokumentacja i Jakość Oprogramowania Agile Programming

Testowanie przed rozpowszechnieniem Kod nie może być rozpowszechniony, jeśli nie przejdzie testów. To umożliwia stosowanie kolektywnej własności kodu. Dokumentacja i Jakość Oprogramowania Agile Programming

Testy akceptacyjne Testy akceptacyjne są tworzone na podstawie opowieści użytkownika. Klient formułuje scenariusze testowe. Jedna opowieść może mieć wiele testów akceptacyjnych. Implementacja opowieści nie jest zakończona dopóki nie przejdzie wszystkich testów akceptacyjnych. Dokumentacja i Jakość Oprogramowania Agile Programming

Wnioski Agile Programming zapewnia większą wydajność tworzenia aplikacji w stosunku do tradycyjnych, „ciężkich” metod (np. RUP). Agile Programming może zapewnić odpowiednią jakość produktu pod warunkiem spełnienia kluczowych założeń. Dokumentacja i Jakość Oprogramowania Agile Programming

Warunki zapewnienia jakości Dobra współpraca (komunikacja) z klientami (użytkownikami końcowymi) w całym procesie wytwarzania. Formułowanie celów wydań na podstawie rzeczywistych wymagań klientów. Utrzymanie harmonogramu częstych wydań - ciągła praca nad produktem (!). Pisanie testów przed pisaniem kodu i przeprowadzanie testów przed opublikowaniem każdego wydania. Poddawanie wydań testom akceptacyjnym użytkowników. Dokumentacja i Jakość Oprogramowania Agile Programming

Wady - zagrożenia Uzależnienie procesu od ludzi – zmienność składu zespołu. Brak możliwości powrotu do projektu po dłuższej przerwie – brak dokumentacji. Możliwość przeoczenia poważnych błędów projektowych – sytuacje wyjątkowe i awaryjne. Wysokie koszty wsparcia (pielęgnacji) Dokumentacja i Jakość Oprogramowania Agile Programming

Zastosowanie Proste aplikacje Projekty o niskim poziomie ryzyka Możliwość nieustannej pielęgnacji produktu Dokumentacja i Jakość Oprogramowania Agile Programming

Źródła Kent Beck: Extreme Programming Explained: Embrace Change, Addison-Wesley, 1999 http://www.xprogramming.com http://www.extremeprogramming.org http://www.agile.com http://www.pairprogramming.com http://www.martinfowler.com http://www.xp123.com http://www.thoughtworks.com http://www.rolemodelsoftware.com http://www.industriallogic.com/xp http://www.agilealliance.org Dokumentacja i Jakość Oprogramowania Agile Programming