Planowanie prac

  1. Pozyskanie informacji od klienta
  2. Analiza wymagań
    • Wymagania funkcjonalne i niefunkcjonalne
    • Identyfikacja głównych celów projektu
    • Identyfikacja środków i narzędzi niezbędnych do realizacji
    • Tworzenie struktury podziału prac
    • Diagram następstw produktów
  3. Definicja zadań
  4. Ocena zadań
    • czas potrzebny na realizację
    • wymagane zasoby (ludzi, sprzętu i oprogramowania)
  5. Szeregowanie zadan
  6. Finalny plan - harmonogram, plan pracy

Metodyki planowania pracy: PRINCE2, Project Management Institute Scrum

  • Produkt – efekt działalności projektu (np. program, moduł programu, kalendarz, część maszyny, nowa generacja silnika).
  • Produkt główny – jeden lub więcej zasadniczych produktów, będących efektem działania projektu.
  • Produkt częściowy – jeden z produktów wchodzących w skład produktu głównego.
  • Produkt zewnętrzny – istniejące i zidentyfikowane produkty, które występują w projekcie i są potrzebne dla wytworzenia jednego lub większej ilości produktów projektu.
  • Struktura Podziału Pracy (SPP) Work_breakdown_structure
    • hierarchia pokazująca zależności pomiędzy produktem głównym a jego składowymi.
    • opisuje oczekiwane cele, nie zaś zadania
    • dowolny produkt główny może składać się z wielu produktów składowych (produktów podrzędnych).
    • Dowolny produkt składowy przynależy jedynie do jednego i tylko jednego produktu nadrzędnego.

Przykład:

  1. Samochód
    1. Karoseria
    2. Koła
      1. przednie koło
        1. opona
        2. felga
    3. Szyby
    4. Wnętrze
      1. siedzenie
      2. deska rozdzielcza
    5. Silnik
      1. Tłok
      2. Wał
      3. Cylinder
      4. Zawory
      5. Wałek rozrządu
Źródło: Ś. Sobieski, ITA-111 Programowanie zespołowe

Przydatne narzędzia:

Część planu ilustrująca kolejność wytwarzania lub pozyskiwania produktów oraz współzależności pomiędzy produktami, które zidentyfikowano na diagramie struktury produktów [PRINCE2].

Diagram następstwa produktów

  • produkty z SPP w zależności czasowej
  • produkty są układane w kolejności ich pozyskiwania lub wytworzenia
  • w oparciu o ten diagram można łatwo określić harmonogram pracy
  • jedna z najbardziej znanych metody k zwinnych (Agile) : Manifesto for Agile Software Development
  • metoda przyrostowa : produkt powstaje w kolejnych iteracjach
  • sprawny (ale niekompletny) produkt już po pierwszej iteracji
  • sprawna kontrola nad przebiegiem prac (narzędzia ułatwiające MS TFS)
  • wczesne wykrywanie problemów
  • zespoły 7+-2
  • kontrola czasu - czynność musi być zakończona w określonym czasie
  • Zespół ma charakter samoorganizujący

Pojęcia:

  • Wykaz prac produktu (ang. Product Backlog)
  • Sprint - iteracja o określonym czasie (7-30 dni)
  • Wykaz prac sprintu (ang. Sprint Backlog). Po podziale na zadania o czasie trwanie 4-8 godzin)
  • Cel sprintu
  • spotkanie rozruchowe (ang. stend-up meeting): Co zrobiłeś wczoraj? Co będziesz dziś robił? Co stoi na przeszkodzie w realizacji?
  • wykres malejący (ang. burn-down chart)

|www.infoq.com_resource_articles_agile-kanban-boards_en_resources_fig4_dailyburndown.jpg| |

Podział prac i harmonogram pracy można przygotować przy pomocy Trac.
Odpowiednikami sprintu są tu etapy (milestones). W ramach każdego etapu przygotowujemy szereg zadań (product backlog). Zadanie (ticket) może być tu odpowiednikiem jedniodniowej iteracji w ramach scruma.

Etapy (milestone)

  • wyszczególnienie (niezależnych) części projektu i relacji pomiędzy nimi
  • istotna jest kolejność/zależność etapów/zadań
  • posiadają ściśle określony czas wykonania (od 7 do 30 dni)
  • jasne cele do osiągnięcia w danym etapie (np. sprawny moduł, wersja oprogramowania, dokumentacja, raport, itp.) wyszczególnione w opisie
  • zasoby potrzebne do wykonania (sprzęt, środowisko pracy systemu, biblioteki, technologie, wiedza)

Zadania (tickets)

  • wykaz czynności przewidzianych do wykonania w ramach poszczególnych etapów (przydziela kierownik)
  • czas wykonania jeden dzień roboczy (6-8 godzin) - zatwierdzenie nowej wersji w repozytorium pod koniec dnia pracy powinno zamykać zadanie (status closed)
  • zależności pomiędzy zadaniami - Plugin: MasterTickets

Przykłady:

Do poczytania: