SlideShare a Scribd company logo
1 of 23
Download to read offline
Slicing a Cake
   © 2010 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania.
   Materiał udostępniany na licencji Creative Commons (by-nc-nd).
© 2010 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania.
Materiał udostępniany na licencji Creative Commons (by-nc-nd).
As a <type of user>, I want <some goal> so
                       that <some reason>.

Jako użytkownik systemu aukcyjnego muszę
      mieć możliwość wystawiania aukcji aby
                     sprzedawać i zarabiać.


       © 2010 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania.
       Materiał udostępniany na licencji Creative Commons (by-nc-nd).
zbyt złożone
                                                        zbyt nieokreślone
                                                          zbyt ryzykowne
                                                                zbyt duże



© 2010 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania.
Materiał udostępniany na licencji Creative Commons (by-nc-nd).
•  etapy procesu

                                       •  warstwy architektury

                                       •  komponenty systemu

                                       •  workflow (ciąg/
                                          sekwencja czynności
                                          wykonywanych przez
                                          użytkownika)
© 2010 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania.
Materiał udostępniany na licencji Creative Commons (by-nc-nd).
Sposób 1. Raftingowy

           Jako projektant muszę zaprojektować UI
           Jako programista muszę zaimplementować
                                  system aukcyjny
           Jako tester muszę przetestować system
                                          aukcyjny
    Symptomy: pojawiają się nazwy stanowisk i czynności naśladujące kolejne
    etapy procesu wytwórczego, brak roli i czynności wykonywaje przez użytkownika
    Efekt: brak wartości dla klienta (WYSIWTF), zanika komunikacja z klientem
    (user-loser), wydłużenie cyklu (kaskada), brak pracy zespołowej, death
    march
                    © 2010 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania.
                    Materiał udostępniany na licencji Creative Commons (by-nc-nd).
Sposób 2. Archeologiczny

       Jako formatka UI muszę zawierać 16 pól wg.
                następującej specyfikacji/projektu
        Jako warstwa prezentacji muszę wyświetlać
                                         formatki
       Jako warstwa przechowywania danych muszę
                   przechowywać dane o aukcjach
    Symptomy: pojawiają się nazwy warstw systemu, brak roli i czynności wykonywanej
    przez użytkownika
    Efekt: brak wartości dla klienta (WYSIWTF), zanika komunikacja z klientem (user-
    loser), wydłużenie cyklu (kaskada)
                     © 2010 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania.
                     Materiał udostępniany na licencji Creative Commons (by-nc-nd).
Sposób 3. Architektoniczny

     Jako moduł aukcyjny muszę przyjmować nową
                           ofertę w danej aukcji
          Jako komponent bezpieczeństwa muszę
                     autoryzować użytkowników

    Symptomy: pojawiają się nazwy modułów/komponentów/podsystemów, brak
    roli i czynności wykonywanej przez użytkownika
    Efekt: brak wartości dla klienta (WYSIWTF), zanika komunikacja z klientem
    (user-loser), wydłużenie cyklu (kaskada), w przypadku projektów
    wielozespołowych zanika odpowiedzialność za dostarczenie kompletnej
    funkcjonalności
                   © 2010 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania.
                   Materiał udostępniany na licencji Creative Commons (by-nc-nd).
Sposób 4. Gimnazjalno-maturalny

        Jako użytkownik mogę zalogować się do systemu
          Jako użytkownik mam możliwość wprowadzania
                                     oferty sprzedaży
           Jako użytkownik mam możliwość podglądania
                        wprowadzonej oferty sprzedaży

    Symptomy: workflow rozłożono na wstęp, rozwinięcie, zakończenie i/lub
    wykorzystano model CRUD (CRAP? Create, Read, Alter, Purge), brak lub nikła wartość
    biznesowa pojedynczej historii
    Efekt: wartość dla klienta rośnie z każdą kolejną iteracją, dopiero seria zakończonych
    historii daje poczucie całości, wydłużenie cyklu, zawężenie pola (zmiany architektury
    mogą być bolesne)
                      © 2010 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania.
                      Materiał udostępniany na licencji Creative Commons (by-nc-nd).
*Courtesy     of Jeff Patton (http://www.agileproductdesign.com)




© 2010 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania.
Materiał udostępniany na licencji Creative Commons (by-nc-nd).
© 2010 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania.
Materiał udostępniany na licencji Creative Commons (by-nc-nd).
Sposób 5. Darwinowski

        Jako użytkownik systemu aukcyjnego muszę mieć
           możliwość wystawiania aukcji aby sprzedawać i
                         zarabiać (rev. 1, 2, 3, 4, 5, …)


   Symptomy: każda historyjka reprezentuje kompletny ciąg czynności wykonywanych
   przez użytkownika w systemie (workflow), jednak z mniejszą niż docelowa liczbą
   szczegółów (low-fidelity…hi-fidelity); na poziomie backlogu pożądany stopień precyzji
   odzwierciedlony jest poprzez wykorzystanie serii/ciągu doprecyzowujących historyjek
   (story-o-types), cechą charakterystyczną na poziomie implementacji jest szerokie
   wykorzystanie stubów, mocków, symulatorów
   Efekt: wartość dla klienta dostarczana jest w każdej iteracji, możliwe wnioskowanie
   (planowanie) na tej podstawie; otwarte pole możliwości

                     © 2010 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania.
                     Materiał udostępniany na licencji Creative Commons (by-nc-nd).
American Footballers © 1999 Nick Veasey (http://www.nickveasey.com)




© 2010 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania.
Materiał Tomasz Włodarek. Pragmatyczne metody wytwarzania
© 2010 udostępniany na licencji Creative Commons (by-nc-nd). oprogramowania.
Materiał udostępniany na licencji Creative Commons (by-nc-nd).
Role użytkowników. Nie wszyscy mogą robić
wszystko. Zidentyfikuj role (rodzaje)
użytkowników, stwórz dla każdej z nich odrębne
zestawy user stories. Ustal z klientem co kto
może, zdecyduj kto jest ważniejszy i ułóż w tej
kolejności w backlogu.




                © 2010 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania.
                Materiał udostępniany na licencji Creative Commons (by-nc-nd).
Częstość użycia. Jakie operacje użytkownicy
wykonują często a jakie sporadycznie? Ułóż user
stories w backlogu od najczęściej do najrzadziej
wykorzystywanych.




                © 2010 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania.
                Materiał udostępniany na licencji Creative Commons (by-nc-nd).
Typ, ilość lub sposób przetwarzania
danych. Ustal jakie dane są gromadzone,
przetwarzane, przesyłane. Czy można
ograniczyć ich ilość/typ/zakres/rozmiar? Czy
zamiast skomplikowanych formatów danych
możemy użyć pliku tekstowego? Ustal z
klientem oczekiwane fidelity.




                © 2010 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania.
                Materiał udostępniany na licencji Creative Commons (by-nc-nd).
Interface. Ustal sposób komunikacji z
systemem. Czy zamiast rozbudowanego GUI
możemy użyć konsoli, emaila? W jaki sposób
komunikujemy się ze sprzętem
(wprowadzanie i wyprowadzanie danych)? W
jaki sposób komponenty komunikują się ze
sobą? Co można uprościć, pominąć? Ustal z
klientem oczekiwane fidelity.




               © 2010 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania.
               Materiał udostępniany na licencji Creative Commons (by-nc-nd).
Logika biznesowa. Jakie operacje musimy
przeprowadzić a jakie kroki możemy opuścić?
Jakie dane, w jakich okolicznościach muszą
bezwzględnie podlegać walidacji? Przesuń resztę
w dół backlogu.




                © 2010 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania.
                Materiał udostępniany na licencji Creative Commons (by-nc-nd).
Wygląd. Najpierw niech w ogóle zacznie
działać nim stanie się ładne.
Wydajność. Najpierw niech w ogóle zacznie
działać nim będzie w stanie działać szybko.
Bezpieczeństwo. Najpierw niech w ogóle
zacznie działać nim będzie bezpieczne.




               © 2010 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania.
               Materiał udostępniany na licencji Creative Commons (by-nc-nd).
Nie dąż do perfekcji w pierwszym pokoleniu. Szukaj
najprostszego wariantu spełniającego założenia (KISS). Nie bój się
mnożyć user stories zwiększając stopniowo poziom precyzji.




Nie bój się modyfikować wielokrotnie tego samego
kodu. Najlepsza funkcjonalność i architektura powstają
ewolucyjnie. Przygotuj się na to (refaktoryzacja, wzorce, testy, CI).
              © 2010 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania.
              Materiał udostępniany na licencji Creative Commons (by-nc-nd).
Znaj umiar. Dekomponuj tylko te elementy, które mają szanse być
realizowane w ciągu najbliższych 3–6 iteracji. Dziel tak długo aż do
pojedynczej iteracji zespół będzie w stanie wziąć 4–8 user stories.




Wodospady zostaw na wakacje :) Agile to nie tylko podejście iteracyjne i
przyrostowe, ale również (przede wszystkim?) ewolucyjne. Na co dzień
przeplataj sposoby 4 i 5 (w naprawdę dużych systemach 3, 4, 5).
               © 2010 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania.
               Materiał udostępniany na licencji Creative Commons (by-nc-nd).
dziękuję!
tomek@poddrzewem.pl
http://www.poddrzewem.pl
http://www.linkedin.com/in/wlodarek




                      © 2010 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania.
                      Materiał udostępniany na licencji Creative Commons (by-nc-nd).
http://www.poddrzewem.pl/klinika

More Related Content

What's hot

Pasja, cierpliwość i zaufanie. Agile@GetResponse – historia zmiany
Pasja, cierpliwość i zaufanie. Agile@GetResponse – historia zmianyPasja, cierpliwość i zaufanie. Agile@GetResponse – historia zmiany
Pasja, cierpliwość i zaufanie. Agile@GetResponse – historia zmianySławek Łukjanow
 
InfoShare 2012 efektywne przeglądy kodu w zespołach agile [Polish]
InfoShare 2012 efektywne przeglądy kodu w zespołach agile [Polish]InfoShare 2012 efektywne przeglądy kodu w zespołach agile [Polish]
InfoShare 2012 efektywne przeglądy kodu w zespołach agile [Polish]Wojciech Seliga
 
Wstęp do SCRUM - jak dostarczyć właściwe oprogramowanie
Wstęp do SCRUM - jak dostarczyć właściwe oprogramowanieWstęp do SCRUM - jak dostarczyć właściwe oprogramowanie
Wstęp do SCRUM - jak dostarczyć właściwe oprogramowanieMaciej Grajcarek
 
Skalowanie Agile - rozszerzona wersja
Skalowanie Agile - rozszerzona wersjaSkalowanie Agile - rozszerzona wersja
Skalowanie Agile - rozszerzona wersjaAndy Brandt
 
Wiosenne Wieczory ze Scrum 2 Estymacja i Planowanie
Wiosenne Wieczory ze Scrum 2 Estymacja i PlanowanieWiosenne Wieczory ze Scrum 2 Estymacja i Planowanie
Wiosenne Wieczory ze Scrum 2 Estymacja i PlanowanieMichał Parkoła
 
Scrum Studio - Lukasz Filut@Scrum Experience Day 2020
Scrum Studio - Lukasz Filut@Scrum Experience Day 2020Scrum Studio - Lukasz Filut@Scrum Experience Day 2020
Scrum Studio - Lukasz Filut@Scrum Experience Day 2020Łukasz Filut
 

What's hot (6)

Pasja, cierpliwość i zaufanie. Agile@GetResponse – historia zmiany
Pasja, cierpliwość i zaufanie. Agile@GetResponse – historia zmianyPasja, cierpliwość i zaufanie. Agile@GetResponse – historia zmiany
Pasja, cierpliwość i zaufanie. Agile@GetResponse – historia zmiany
 
InfoShare 2012 efektywne przeglądy kodu w zespołach agile [Polish]
InfoShare 2012 efektywne przeglądy kodu w zespołach agile [Polish]InfoShare 2012 efektywne przeglądy kodu w zespołach agile [Polish]
InfoShare 2012 efektywne przeglądy kodu w zespołach agile [Polish]
 
Wstęp do SCRUM - jak dostarczyć właściwe oprogramowanie
Wstęp do SCRUM - jak dostarczyć właściwe oprogramowanieWstęp do SCRUM - jak dostarczyć właściwe oprogramowanie
Wstęp do SCRUM - jak dostarczyć właściwe oprogramowanie
 
Skalowanie Agile - rozszerzona wersja
Skalowanie Agile - rozszerzona wersjaSkalowanie Agile - rozszerzona wersja
Skalowanie Agile - rozszerzona wersja
 
Wiosenne Wieczory ze Scrum 2 Estymacja i Planowanie
Wiosenne Wieczory ze Scrum 2 Estymacja i PlanowanieWiosenne Wieczory ze Scrum 2 Estymacja i Planowanie
Wiosenne Wieczory ze Scrum 2 Estymacja i Planowanie
 
Scrum Studio - Lukasz Filut@Scrum Experience Day 2020
Scrum Studio - Lukasz Filut@Scrum Experience Day 2020Scrum Studio - Lukasz Filut@Scrum Experience Day 2020
Scrum Studio - Lukasz Filut@Scrum Experience Day 2020
 

Viewers also liked

User Story Mapping
User Story MappingUser Story Mapping
User Story MappingNaresh Jain
 
National FORUM of Multicultural Issues Journal, Dr. William Allan Kritsonis, ...
National FORUM of Multicultural Issues Journal, Dr. William Allan Kritsonis, ...National FORUM of Multicultural Issues Journal, Dr. William Allan Kritsonis, ...
National FORUM of Multicultural Issues Journal, Dr. William Allan Kritsonis, ...William Kritsonis
 
Townsell rhondena_human_resource_management townsell
Townsell  rhondena_human_resource_management townsellTownsell  rhondena_human_resource_management townsell
Townsell rhondena_human_resource_management townsellWilliam Kritsonis
 
Attendance - Dr. William A. Kritsonis
Attendance - Dr. William A. KritsonisAttendance - Dr. William A. Kritsonis
Attendance - Dr. William A. KritsonisWilliam Kritsonis
 
Picture My World: Friends
Picture My World: FriendsPicture My World: Friends
Picture My World: FriendsCAFOD
 
B. Thompson & W.A. Kritsonis, PhD
B. Thompson & W.A. Kritsonis, PhDB. Thompson & W.A. Kritsonis, PhD
B. Thompson & W.A. Kritsonis, PhDWilliam Kritsonis
 
Unit outline with template 2
Unit outline with template 2Unit outline with template 2
Unit outline with template 2bradythecamel
 
Beaver-Results Austria
Beaver-Results AustriaBeaver-Results Austria
Beaver-Results AustriaPeter Micheuz
 
Osseo Apps: I've Done It All… Now What?
Osseo Apps: I've Done It All… Now What?Osseo Apps: I've Done It All… Now What?
Osseo Apps: I've Done It All… Now What?Lisa Sjogren
 
Student Attendance And Instructional Program
Student Attendance And Instructional ProgramStudent Attendance And Instructional Program
Student Attendance And Instructional ProgramWilliam Kritsonis
 
Unbreakable 2: The Death of the Son
Unbreakable 2: The Death of the SonUnbreakable 2: The Death of the Son
Unbreakable 2: The Death of the SonJonathan Swales
 
Gaming Outline
Gaming OutlineGaming Outline
Gaming OutlineIMGTeched
 
Unbreakable 3: The Gift of the Spirit
Unbreakable 3: The Gift of the SpiritUnbreakable 3: The Gift of the Spirit
Unbreakable 3: The Gift of the SpiritJonathan Swales
 
Viz Transcript2min X
Viz Transcript2min XViz Transcript2min X
Viz Transcript2min Xwatchthefly
 

Viewers also liked (20)

Are we agile yet?
Are we agile yet?Are we agile yet?
Are we agile yet?
 
Scaling Scrum
Scaling ScrumScaling Scrum
Scaling Scrum
 
Evidence-Based Management for Software Organizations
Evidence-Based Management for Software OrganizationsEvidence-Based Management for Software Organizations
Evidence-Based Management for Software Organizations
 
User Story Mapping
User Story MappingUser Story Mapping
User Story Mapping
 
National FORUM of Multicultural Issues Journal, Dr. William Allan Kritsonis, ...
National FORUM of Multicultural Issues Journal, Dr. William Allan Kritsonis, ...National FORUM of Multicultural Issues Journal, Dr. William Allan Kritsonis, ...
National FORUM of Multicultural Issues Journal, Dr. William Allan Kritsonis, ...
 
Townsell rhondena_human_resource_management townsell
Townsell  rhondena_human_resource_management townsellTownsell  rhondena_human_resource_management townsell
Townsell rhondena_human_resource_management townsell
 
Fulfillment 1 dan 7
Fulfillment 1  dan 7Fulfillment 1  dan 7
Fulfillment 1 dan 7
 
Attendance - Dr. William A. Kritsonis
Attendance - Dr. William A. KritsonisAttendance - Dr. William A. Kritsonis
Attendance - Dr. William A. Kritsonis
 
Picture My World: Friends
Picture My World: FriendsPicture My World: Friends
Picture My World: Friends
 
Encountering NT
Encountering NT Encountering NT
Encountering NT
 
B. Thompson & W.A. Kritsonis, PhD
B. Thompson & W.A. Kritsonis, PhDB. Thompson & W.A. Kritsonis, PhD
B. Thompson & W.A. Kritsonis, PhD
 
Unit outline with template 2
Unit outline with template 2Unit outline with template 2
Unit outline with template 2
 
Beaver-Results Austria
Beaver-Results AustriaBeaver-Results Austria
Beaver-Results Austria
 
Osseo Apps: I've Done It All… Now What?
Osseo Apps: I've Done It All… Now What?Osseo Apps: I've Done It All… Now What?
Osseo Apps: I've Done It All… Now What?
 
Student Attendance And Instructional Program
Student Attendance And Instructional ProgramStudent Attendance And Instructional Program
Student Attendance And Instructional Program
 
Unbreakable 2: The Death of the Son
Unbreakable 2: The Death of the SonUnbreakable 2: The Death of the Son
Unbreakable 2: The Death of the Son
 
Copy Of Attendance
Copy Of AttendanceCopy Of Attendance
Copy Of Attendance
 
Gaming Outline
Gaming OutlineGaming Outline
Gaming Outline
 
Unbreakable 3: The Gift of the Spirit
Unbreakable 3: The Gift of the SpiritUnbreakable 3: The Gift of the Spirit
Unbreakable 3: The Gift of the Spirit
 
Viz Transcript2min X
Viz Transcript2min XViz Transcript2min X
Viz Transcript2min X
 

Similar to Slicing a cake

Produkcja aplikacji internetowych
Produkcja aplikacji internetowychProdukcja aplikacji internetowych
Produkcja aplikacji internetowychTomasz Borowski
 
Grill It Krakow - Usability Lab, monitoring www
Grill It Krakow - Usability Lab, monitoring wwwGrill It Krakow - Usability Lab, monitoring www
Grill It Krakow - Usability Lab, monitoring wwwDmitrij Żatuchin
 
Zasady technicznej organizacji projektów programistycznych
Zasady technicznej organizacji projektów programistycznychZasady technicznej organizacji projektów programistycznych
Zasady technicznej organizacji projektów programistycznychsztywny
 
"Zagrożenia w stosowaniu technologii open-source w projektach komercyjnych" -...
"Zagrożenia w stosowaniu technologii open-source w projektach komercyjnych" -..."Zagrożenia w stosowaniu technologii open-source w projektach komercyjnych" -...
"Zagrożenia w stosowaniu technologii open-source w projektach komercyjnych" -...krakspot
 
Usability i UCD - case study Generali i Gazeta.pl
Usability i UCD - case study Generali i Gazeta.plUsability i UCD - case study Generali i Gazeta.pl
Usability i UCD - case study Generali i Gazeta.plTomasz Karwatka
 
[spodek 2.0] Tworzenie prototypów serwisów internetowych
[spodek 2.0] Tworzenie prototypów serwisów internetowych[spodek 2.0] Tworzenie prototypów serwisów internetowych
[spodek 2.0] Tworzenie prototypów serwisów internetowychSpodek 2.0
 
Cometari Dedicated Solutions Oferta ogólna
Cometari Dedicated Solutions Oferta ogólnaCometari Dedicated Solutions Oferta ogólna
Cometari Dedicated Solutions Oferta ogólnaJakub Hajek
 
Jak stworzyć udany system informatyczny
Jak stworzyć udany system informatycznyJak stworzyć udany system informatyczny
Jak stworzyć udany system informatycznyqbeuek
 
Wysoka Dostępność Windows Server 2008 w kontekscie umów SLA
Wysoka Dostępność Windows Server 2008 w kontekscie umów SLAWysoka Dostępność Windows Server 2008 w kontekscie umów SLA
Wysoka Dostępność Windows Server 2008 w kontekscie umów SLATobias Koprowski
 
Analiza wydajności następnej generacji - przykłady.
Analiza wydajności następnej generacji - przykłady.Analiza wydajności następnej generacji - przykłady.
Analiza wydajności następnej generacji - przykłady.Future Processing
 
Łebski Development czyli kiedy i dlaczego tworzyć oprogramowanie pod klucz i ...
Łebski Development czyli kiedy i dlaczego tworzyć oprogramowanie pod klucz i ...Łebski Development czyli kiedy i dlaczego tworzyć oprogramowanie pod klucz i ...
Łebski Development czyli kiedy i dlaczego tworzyć oprogramowanie pod klucz i ...Wojciech Sznapka
 
Aplikacje mobilne tworzone w technologiach webowych
Aplikacje mobilne tworzone w technologiach webowychAplikacje mobilne tworzone w technologiach webowych
Aplikacje mobilne tworzone w technologiach webowychTomasz Borowski
 
Mts 2013 tomasz kopacz - wydajność aplikacji dla windows 8 - jak ją mierzyć...
Mts 2013   tomasz kopacz - wydajność aplikacji dla windows 8 - jak ją mierzyć...Mts 2013   tomasz kopacz - wydajność aplikacji dla windows 8 - jak ją mierzyć...
Mts 2013 tomasz kopacz - wydajność aplikacji dla windows 8 - jak ją mierzyć...Tomasz Kopacz
 
Cross-platformowe aplikacje mobilne tworzone w oparciu o framework Sencha Tou...
Cross-platformowe aplikacje mobilne tworzone w oparciu o framework Sencha Tou...Cross-platformowe aplikacje mobilne tworzone w oparciu o framework Sencha Tou...
Cross-platformowe aplikacje mobilne tworzone w oparciu o framework Sencha Tou...Marcin Zajkowski
 
Samsung Labo UX/UI Workshop Szczecin
Samsung Labo UX/UI Workshop SzczecinSamsung Labo UX/UI Workshop Szczecin
Samsung Labo UX/UI Workshop SzczecinMarcin Bauer
 

Similar to Slicing a cake (20)

university day 1
university day 1university day 1
university day 1
 
Produkcja aplikacji internetowych
Produkcja aplikacji internetowychProdukcja aplikacji internetowych
Produkcja aplikacji internetowych
 
Grill It Krakow - Usability Lab, monitoring www
Grill It Krakow - Usability Lab, monitoring wwwGrill It Krakow - Usability Lab, monitoring www
Grill It Krakow - Usability Lab, monitoring www
 
Zasady technicznej organizacji projektów programistycznych
Zasady technicznej organizacji projektów programistycznychZasady technicznej organizacji projektów programistycznych
Zasady technicznej organizacji projektów programistycznych
 
"Zagrożenia w stosowaniu technologii open-source w projektach komercyjnych" -...
"Zagrożenia w stosowaniu technologii open-source w projektach komercyjnych" -..."Zagrożenia w stosowaniu technologii open-source w projektach komercyjnych" -...
"Zagrożenia w stosowaniu technologii open-source w projektach komercyjnych" -...
 
Usability i UCD - case study Generali i Gazeta.pl
Usability i UCD - case study Generali i Gazeta.plUsability i UCD - case study Generali i Gazeta.pl
Usability i UCD - case study Generali i Gazeta.pl
 
[spodek 2.0] Tworzenie prototypów serwisów internetowych
[spodek 2.0] Tworzenie prototypów serwisów internetowych[spodek 2.0] Tworzenie prototypów serwisów internetowych
[spodek 2.0] Tworzenie prototypów serwisów internetowych
 
Cometari Dedicated Solutions Oferta ogólna
Cometari Dedicated Solutions Oferta ogólnaCometari Dedicated Solutions Oferta ogólna
Cometari Dedicated Solutions Oferta ogólna
 
Tester.pl - Numer 1
Tester.pl - Numer 1Tester.pl - Numer 1
Tester.pl - Numer 1
 
Jak stworzyć udany system informatyczny
Jak stworzyć udany system informatycznyJak stworzyć udany system informatyczny
Jak stworzyć udany system informatyczny
 
Wysoka Dostępność Windows Server 2008 w kontekscie umów SLA
Wysoka Dostępność Windows Server 2008 w kontekscie umów SLAWysoka Dostępność Windows Server 2008 w kontekscie umów SLA
Wysoka Dostępność Windows Server 2008 w kontekscie umów SLA
 
Analiza wydajności następnej generacji - przykłady.
Analiza wydajności następnej generacji - przykłady.Analiza wydajności następnej generacji - przykłady.
Analiza wydajności następnej generacji - przykłady.
 
Zwinny_Analityk_SIW_Panel
Zwinny_Analityk_SIW_PanelZwinny_Analityk_SIW_Panel
Zwinny_Analityk_SIW_Panel
 
Łebski Development czyli kiedy i dlaczego tworzyć oprogramowanie pod klucz i ...
Łebski Development czyli kiedy i dlaczego tworzyć oprogramowanie pod klucz i ...Łebski Development czyli kiedy i dlaczego tworzyć oprogramowanie pod klucz i ...
Łebski Development czyli kiedy i dlaczego tworzyć oprogramowanie pod klucz i ...
 
Aplikacje mobilne tworzone w technologiach webowych
Aplikacje mobilne tworzone w technologiach webowychAplikacje mobilne tworzone w technologiach webowych
Aplikacje mobilne tworzone w technologiach webowych
 
Mts 2013 tomasz kopacz - wydajność aplikacji dla windows 8 - jak ją mierzyć...
Mts 2013   tomasz kopacz - wydajność aplikacji dla windows 8 - jak ją mierzyć...Mts 2013   tomasz kopacz - wydajność aplikacji dla windows 8 - jak ją mierzyć...
Mts 2013 tomasz kopacz - wydajność aplikacji dla windows 8 - jak ją mierzyć...
 
Cross-platformowe aplikacje mobilne tworzone w oparciu o framework Sencha Tou...
Cross-platformowe aplikacje mobilne tworzone w oparciu o framework Sencha Tou...Cross-platformowe aplikacje mobilne tworzone w oparciu o framework Sencha Tou...
Cross-platformowe aplikacje mobilne tworzone w oparciu o framework Sencha Tou...
 
Samsung Labo UX/UI Workshop Szczecin
Samsung Labo UX/UI Workshop SzczecinSamsung Labo UX/UI Workshop Szczecin
Samsung Labo UX/UI Workshop Szczecin
 
Otwarta chmura Microsoft
Otwarta chmura MicrosoftOtwarta chmura Microsoft
Otwarta chmura Microsoft
 
Lakiernik 714[03] l2.03_u
Lakiernik 714[03] l2.03_uLakiernik 714[03] l2.03_u
Lakiernik 714[03] l2.03_u
 

Slicing a cake

  • 1. Slicing a Cake © 2010 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania. Materiał udostępniany na licencji Creative Commons (by-nc-nd).
  • 2. © 2010 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania. Materiał udostępniany na licencji Creative Commons (by-nc-nd).
  • 3. As a <type of user>, I want <some goal> so that <some reason>. Jako użytkownik systemu aukcyjnego muszę mieć możliwość wystawiania aukcji aby sprzedawać i zarabiać. © 2010 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania. Materiał udostępniany na licencji Creative Commons (by-nc-nd).
  • 4. zbyt złożone zbyt nieokreślone zbyt ryzykowne zbyt duże © 2010 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania. Materiał udostępniany na licencji Creative Commons (by-nc-nd).
  • 5. •  etapy procesu •  warstwy architektury •  komponenty systemu •  workflow (ciąg/ sekwencja czynności wykonywanych przez użytkownika) © 2010 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania. Materiał udostępniany na licencji Creative Commons (by-nc-nd).
  • 6. Sposób 1. Raftingowy Jako projektant muszę zaprojektować UI Jako programista muszę zaimplementować system aukcyjny Jako tester muszę przetestować system aukcyjny Symptomy: pojawiają się nazwy stanowisk i czynności naśladujące kolejne etapy procesu wytwórczego, brak roli i czynności wykonywaje przez użytkownika Efekt: brak wartości dla klienta (WYSIWTF), zanika komunikacja z klientem (user-loser), wydłużenie cyklu (kaskada), brak pracy zespołowej, death march © 2010 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania. Materiał udostępniany na licencji Creative Commons (by-nc-nd).
  • 7. Sposób 2. Archeologiczny Jako formatka UI muszę zawierać 16 pól wg. następującej specyfikacji/projektu Jako warstwa prezentacji muszę wyświetlać formatki Jako warstwa przechowywania danych muszę przechowywać dane o aukcjach Symptomy: pojawiają się nazwy warstw systemu, brak roli i czynności wykonywanej przez użytkownika Efekt: brak wartości dla klienta (WYSIWTF), zanika komunikacja z klientem (user- loser), wydłużenie cyklu (kaskada) © 2010 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania. Materiał udostępniany na licencji Creative Commons (by-nc-nd).
  • 8. Sposób 3. Architektoniczny Jako moduł aukcyjny muszę przyjmować nową ofertę w danej aukcji Jako komponent bezpieczeństwa muszę autoryzować użytkowników Symptomy: pojawiają się nazwy modułów/komponentów/podsystemów, brak roli i czynności wykonywanej przez użytkownika Efekt: brak wartości dla klienta (WYSIWTF), zanika komunikacja z klientem (user-loser), wydłużenie cyklu (kaskada), w przypadku projektów wielozespołowych zanika odpowiedzialność za dostarczenie kompletnej funkcjonalności © 2010 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania. Materiał udostępniany na licencji Creative Commons (by-nc-nd).
  • 9. Sposób 4. Gimnazjalno-maturalny Jako użytkownik mogę zalogować się do systemu Jako użytkownik mam możliwość wprowadzania oferty sprzedaży Jako użytkownik mam możliwość podglądania wprowadzonej oferty sprzedaży Symptomy: workflow rozłożono na wstęp, rozwinięcie, zakończenie i/lub wykorzystano model CRUD (CRAP? Create, Read, Alter, Purge), brak lub nikła wartość biznesowa pojedynczej historii Efekt: wartość dla klienta rośnie z każdą kolejną iteracją, dopiero seria zakończonych historii daje poczucie całości, wydłużenie cyklu, zawężenie pola (zmiany architektury mogą być bolesne) © 2010 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania. Materiał udostępniany na licencji Creative Commons (by-nc-nd).
  • 10. *Courtesy of Jeff Patton (http://www.agileproductdesign.com) © 2010 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania. Materiał udostępniany na licencji Creative Commons (by-nc-nd).
  • 11. © 2010 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania. Materiał udostępniany na licencji Creative Commons (by-nc-nd).
  • 12. Sposób 5. Darwinowski Jako użytkownik systemu aukcyjnego muszę mieć możliwość wystawiania aukcji aby sprzedawać i zarabiać (rev. 1, 2, 3, 4, 5, …) Symptomy: każda historyjka reprezentuje kompletny ciąg czynności wykonywanych przez użytkownika w systemie (workflow), jednak z mniejszą niż docelowa liczbą szczegółów (low-fidelity…hi-fidelity); na poziomie backlogu pożądany stopień precyzji odzwierciedlony jest poprzez wykorzystanie serii/ciągu doprecyzowujących historyjek (story-o-types), cechą charakterystyczną na poziomie implementacji jest szerokie wykorzystanie stubów, mocków, symulatorów Efekt: wartość dla klienta dostarczana jest w każdej iteracji, możliwe wnioskowanie (planowanie) na tej podstawie; otwarte pole możliwości © 2010 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania. Materiał udostępniany na licencji Creative Commons (by-nc-nd).
  • 13. American Footballers © 1999 Nick Veasey (http://www.nickveasey.com) © 2010 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania. Materiał Tomasz Włodarek. Pragmatyczne metody wytwarzania © 2010 udostępniany na licencji Creative Commons (by-nc-nd). oprogramowania. Materiał udostępniany na licencji Creative Commons (by-nc-nd).
  • 14. Role użytkowników. Nie wszyscy mogą robić wszystko. Zidentyfikuj role (rodzaje) użytkowników, stwórz dla każdej z nich odrębne zestawy user stories. Ustal z klientem co kto może, zdecyduj kto jest ważniejszy i ułóż w tej kolejności w backlogu. © 2010 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania. Materiał udostępniany na licencji Creative Commons (by-nc-nd).
  • 15. Częstość użycia. Jakie operacje użytkownicy wykonują często a jakie sporadycznie? Ułóż user stories w backlogu od najczęściej do najrzadziej wykorzystywanych. © 2010 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania. Materiał udostępniany na licencji Creative Commons (by-nc-nd).
  • 16. Typ, ilość lub sposób przetwarzania danych. Ustal jakie dane są gromadzone, przetwarzane, przesyłane. Czy można ograniczyć ich ilość/typ/zakres/rozmiar? Czy zamiast skomplikowanych formatów danych możemy użyć pliku tekstowego? Ustal z klientem oczekiwane fidelity. © 2010 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania. Materiał udostępniany na licencji Creative Commons (by-nc-nd).
  • 17. Interface. Ustal sposób komunikacji z systemem. Czy zamiast rozbudowanego GUI możemy użyć konsoli, emaila? W jaki sposób komunikujemy się ze sprzętem (wprowadzanie i wyprowadzanie danych)? W jaki sposób komponenty komunikują się ze sobą? Co można uprościć, pominąć? Ustal z klientem oczekiwane fidelity. © 2010 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania. Materiał udostępniany na licencji Creative Commons (by-nc-nd).
  • 18. Logika biznesowa. Jakie operacje musimy przeprowadzić a jakie kroki możemy opuścić? Jakie dane, w jakich okolicznościach muszą bezwzględnie podlegać walidacji? Przesuń resztę w dół backlogu. © 2010 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania. Materiał udostępniany na licencji Creative Commons (by-nc-nd).
  • 19. Wygląd. Najpierw niech w ogóle zacznie działać nim stanie się ładne. Wydajność. Najpierw niech w ogóle zacznie działać nim będzie w stanie działać szybko. Bezpieczeństwo. Najpierw niech w ogóle zacznie działać nim będzie bezpieczne. © 2010 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania. Materiał udostępniany na licencji Creative Commons (by-nc-nd).
  • 20. Nie dąż do perfekcji w pierwszym pokoleniu. Szukaj najprostszego wariantu spełniającego założenia (KISS). Nie bój się mnożyć user stories zwiększając stopniowo poziom precyzji. Nie bój się modyfikować wielokrotnie tego samego kodu. Najlepsza funkcjonalność i architektura powstają ewolucyjnie. Przygotuj się na to (refaktoryzacja, wzorce, testy, CI). © 2010 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania. Materiał udostępniany na licencji Creative Commons (by-nc-nd).
  • 21. Znaj umiar. Dekomponuj tylko te elementy, które mają szanse być realizowane w ciągu najbliższych 3–6 iteracji. Dziel tak długo aż do pojedynczej iteracji zespół będzie w stanie wziąć 4–8 user stories. Wodospady zostaw na wakacje :) Agile to nie tylko podejście iteracyjne i przyrostowe, ale również (przede wszystkim?) ewolucyjne. Na co dzień przeplataj sposoby 4 i 5 (w naprawdę dużych systemach 3, 4, 5). © 2010 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania. Materiał udostępniany na licencji Creative Commons (by-nc-nd).
  • 22. dziękuję! tomek@poddrzewem.pl http://www.poddrzewem.pl http://www.linkedin.com/in/wlodarek © 2010 Tomasz Włodarek. Pragmatyczne metody wytwarzania oprogramowania. Materiał udostępniany na licencji Creative Commons (by-nc-nd).