ZARZĄDZANIE PRZEDSIĘWZIĘCIEM PROGRAMISTYCZNYM wykład siódmy, ostatni
METODYKA Metodyka!= metodologia Metodyka ustandaryzowane podejście do rozwiązania problemu (metoda) Metodologia nauka o metodach (np. badanie skuteczności metod) najsłynniejsza metodyka (metoda): Kartezjusz, Rozprawa o metodzie podstawa kartezjańskiej epistemologii
PODZIAŁ METODYK IT Metodyki zarządcze Metodyki wytwócze Metodyki adaptacyjne Metodyki organizacyjne Prince2 RUP XP CMM Six Sigma ITIL PMBoK MSF Scrum COBIT
Pracownicy biura projektowego Programiści i analitycy Administratorzy i użytkownicy Testerzy Metodyki zarządcze Metodyki wytwócze Metodyki adaptacyjne Metodyki organizacyjne Prince2 PMBoK RUP MSF Kierownik projektu XP Scrum CMM Six Sigma ITIL COBIT Decydenci i audytorzy
METODYKI ZARZĄDCZE KIEDY STOSOWAĆ? gdy istotna jest precyzyjna regulacja i kontrola współpracy zleceniodawca-zleceniobiorca, a szczególnie wtedy, gdy klientem jest firma zewnętrzna gdy ważny jest nadzór nad przebiegiem projektu od strony formalnej, a szczególnie materiał dowodowy dotyczący podejmowanych decyzji projektowych gdy mamy do czynienia ze średnim lub dużym przedsięwzięciem i wspólny słownik pojęć projektowych jest niezbędny do właściwej komunikacji
METODYKI ZARZĄDCZE PRINCE2 Project IN Controlled Environment stworzenie kontrolowanego środowiska to udokumentowanie powodów uruchomienia projektu, jego przebiegu oraz zamknięcia Prince2 koncentruje się na sposobach podejmowania decyzji w projekcie i kwestiach zarządczych związanych z jego realizacją Metodyka nie wnika w szczegóły technicznej realizacji projektu i dlatego metodyka nie ogranicza się do świata IT Zarządzanie oparte na koncepcji zarządzania odchyleniami cykl: planowanie, realizacja, monitoring odchyleń, reakcja
METODYKI ZARZĄDCZE - PRINCE2 C.D. 8 procesów Prince 2 3 techniki 8 komponentów
Procesy Komponenty Techniki Uruchomienie projektu Strategiczne zarządzanie projektem Uzasadnienie biznesowe Organizacja Planowanie oparte na produktach Inicjowanie projektu Plany Sterowanie etapem Zarządzanie wytwarzaniem produktów Zarządzanie zakresem etapu Elementy sterowania Zarządzanie ryzykiem Jakość w środowisku projektu Sterowanie zmianami Zamykanie projektu Planowanie Zarządzanie konfiguracją Sterowanie zmianami Przeglądy jakości
METODYKI ZARZĄDCZE PRINCE2 C.D. zalety metodyki: wykorzystanie dobrych praktyk zarządzania dobrze opisany zestaw dokumentów wraz z opisem metryczek duża swoboda działania Kierownika Projektu darmowa wady metodyki: częste przypadki PINO (Prince in Name Only) nacisk na dokumentowanie nie definiuje analizy wymagań ciężka
METODYKI ZARZĄDCZE - PMBOK PMBoK = Project Management Body of Knowledge koncentruje się na zebraniu i przedstawieniu dobrych praktyk związanych z zarządzaniem projektami w ramach zdefiniowanych obszarów wiedzy daje nieco więcej swobody niż Prince2 ANSI zaakceptował PMBoK jako narodowy standard zarządzania projektami IEEE zaadoptowało to podejście jako standard 1490
METODYKI ZARZĄDCZE PMBOK C.D. PMBoK to 42 procesy każdy przynależy do jednej z 5 grup procesów i jednego z 9 obszarów wiedzy Grupy procesów Procesy rozpoczęcia Procesy planowania Procesy realizacji Procesy kontroli Procesy zakończenia Obszary wiedzy Integracja Zakres Czas Koszt Jakość Zasoby ludzkie Komunikacja Ryzyko Dostawa
METODYKI ZARZĄDCZE PMBOK C.D. Każdy z procesów zawiera grupę sugerowanych technik. Przykłady: diagram następstw (KP, PK, KK, PP) technika analizy zależności (wyjaśnia charakter zależności pomiędzy czynnościami; zależności wymagane, rozważane, zewnętrzne) technika przyspieszeń i opóźnień (wiąże 2 czynności na zasadzie rozpocząć zadanie B na x jednostek czasu, zanim skończy się zadanie A) szablony harmonogramu sieciowego wykres Gantta metoda ścieżki krytycznej równoważenie zasobów analiza pola siły, diagram relacji, diagram macierzowy, diagram przepływu, matryce priorytetyzacyjne, metoda delficka itp. itd..
METODYKI WYTWÓRCZE Metodyki zarządcze koncentrują się na procesie decyzyjnym, a szczególnie na kwestiach związanych z uruchomieniem projektu, zdefiniowaniem zakresu etapów oraz zamknięciem Metodyki wytwórcze skupiają się na procesie produkcyjnym i definiują techniczne sposoby wytwarzania produktów, takie jak fazy analizy czy stabilizacji Metodyki zarządcze i wytwórcze nie wykluczają się, a nawet mogą się uzupełniać
METODYKI WYTWÓRCZE czerpią z modeli takich jak kaskadowy, spiralny, iteracyjny; to zestaw cech, które metodyka może posiadać niektóre metodyki łączą kilka cech kaskadowy (żadna metodyka nie przyznaje się już do stosowania tego modelu) spiralny (na nim oparty jest RUP) iteracyjny (na nim oparty jest MSF) adaptacyjny (Agile MSF, Agile Unified Process, XPrince)
METODYKI WYTWÓRCZE - RUP Rational Unified Process RUP to szablon przyrostowego wytwarzania oprogramowania, wywodzi się wprost z modelu spiralnego Zakłada, że jest już ustalona pewna wizja projektu i wstępne zezwolenie na uruchomienie jego analizy biznesowej RUP cechuje się dużą elastycznością (możliwość dostosowania praktycznie do każdego typu projektu) RUP jest gotowym do użycia rozwiązaniem, które pomaga w ustaleniu kluczowych kamieni milowych projektu oraz zasobów niezbędnych do jego realizacji Powszechny standard, stosowany przez tysiące firm
METODYKI WYTWÓRCZE - RUP
METODYKI WYTWÓRCZE - RUP
METODYKI WYTWÓRCZE RUP - ABECADŁO Adapt the process (dopasuj proces wytwórczy do projektu i nie stosuj zasad na ślepo) Balance stakeholder priorities (balansuj pomiędzy priorytetami decydentów szukaj kompromisu między wymaganiami decydentów a techniczną opłacalnością wykonania) Collaborate across teams (dbaj o komunikację) Demonstrate value iteratively (jak najszybciej zmierzaj do ukazania finalnym użytkownikom choć części funkcjonalności, nawet jeśli nie jest w pełni przetestowana) Elevate the level of abstraction (elastycznie zwiększaj poziom abstrakcji) Focus continously on quality (skupiaj się na jakości)
METODYKI WYTWÓRCZE - MSF MSF = Microsoft Solution Framework metodyka łącząca cechy modeli iteracyjnego i spiralnego w praktyce różnice między MSF a RUP nie są duże oprogramowanie wspomagające tworzenie projektów z wykorzystaniem tej metodyki: Microsoft Visual Studio Team System
METODYKI WYTWÓRCZE - MSF MSF składa się z 5 głównych faz, z których każda kończy się realizacją kluczowego kamienia milowego Faza Wizji (okres organizacji zespołu i ustalania wspólnej wizji projektu; określenie biznesowego zakresu projektu) Faza Planowania (opracowanie dowodów wykonalności i specyfikacji technicznej, określenie architektury, planu i środowiska pracy) Faza Konstrukcji (okres przyrostowego tworzenia rozwiązania) Faza Stabilizacji (skoncentrowanie się na uzyskaniu właściwej jakości finalnego rozwiązania; w tym czasie funkcjonalność nie powinna być już rozbudowywana) Faza Dostarczenia (wdrożenie w docelowym środowisku)
METODYKI WYTWÓRCZE MSF CHARAKTERYSTYKA METODY kamienie milowe i skojarzenie z nimi odpowiednich dokumentów ściśle określony, jasny i zrozumiały dla wszystkich zakres odpowiedzialności planowanie w oparciu o analizę ryzyka
METODYKI WYTWÓRCZE MSF MODEL ZESPOŁU MSF opisuje 6 kluczowych ról w projekcie, odpowiadającym 6 kluczowym specjalizacjom 1. zarządzanie programem (Program Management) - kierownik programu 2. konstruowanie (Development) specyfikacja i prace wytwórcze 3. testowanie (Testing) nadzorowanie i akceptacja jakości produktów 4. projektowanie UI (w tym GUI) w wersji 4 nazywa się Edukatorem Użytkownika 5. wdrażanie (Release Management) instalacjaw środowisku testowym i produkcyjnym, konfiguracja, nadzór nad kolejnymi wydaniami 6. zarządzanie produktem (Product Management) dba o wartość biznesową finalnego produktu, określa docelową grupę klientów i ich wymagania
METODYKI ADAPTACYJNE ostatnio bardzo popularne, głównie dlatego, że przywróciły IT ludzką twarz nie zajmują się kwestiami związanymi ze sposobem podejmowania decyzji strategicznych (np.: czy uruchomić projekt czy nie?) dlatego dobrze dopełniają formalne rozwiązania, takie jak Prince2 czy PMBoK metodyki adaptacyjne koncentrują się na zmotywowaniu uczestników projektu
METODYKI ADAPTACYJNE KLUCZOWE CECHY przedkładanie miękkich technik zarządczych nad twarde procesy i narzędzia (koordynacyjny tryb zarządzania zamiast centralnego) większy nacisk na działające oprogramowanie niż wyczerpującą dokumentację pierwszeństwo we współpracy z klientem, przed negocjacją kontraktu metodyki adaptacyjne są unikalne w kwestii nieformalnej komunikacji z klientem końcowym pierwszeństwo odpowiedzi na zmianę, przed podążaniem za planem bazowym
METODYKI ADAPTACYJNE - XP XP = extreme Programming historycznie pierwszy ze zbiorów dobrych praktyk, związanych z adaptacyjnym sposobem wytwarzania oprogramowania znaki rozpoznawcze XP: programowanie parami programowanie sterowane testami (TDD) stałe przebudowywanie kodu (refactoring)
METODYKI ADAPTACYJNE XP C.D. XP wymienia tylko 2 role: klienci odpowiedzialni za zdefiniowanie życzeń i weryfikację poprawności otrzymanych produktów programiści odpowiedzialni za właściwe zaprojektowanie, wykonanie i przetestowanie rozwiązań spełniających życzenia klientów Proces: XP składa się z 4 kluczowych obszarów: planowanie (PL) projektowanie (PR) kodowanie (KO) testowanie (TE)
METODYKI ADAPTACYJNE XP C.D. 12 KLUCZOWYCH PRAKTYK 1. (PL) Planowanie gry user stories, każda na osobnej karcie (forma dowolna) programiści szacują zgrubnie koszt, liczbę elementów i które z nich mogą być wykonane w danej iteracji 2. (PL, PR, KO, TE) Małe wydania (releases) jak najszybciej i jak najczęściej tworzyć wydania dla klientów celem weryfikacji zwykle jeden cykl trwa od 1 tyg. do 3 m-cy 3. (PL, PR, KO, TE) Metafora systemu łatwa do przekazania opowieść o tym, jak działa system powinna angażować wzorce projektowe i klasy, ale musi być zrozumiała zarówno dla programistów jak i klientów
METODYKI ADAPTACYJNE XP C.D. 12 KLUCZOWYCH PRAKTYK C.D. 4. (PR) Prosty projekt system ma wykonywać w najprostszy sposób powierzone zadanie wymagania jutro się zmienią, więc należy wykonać tylko to, co zostało wyspecyfikowane dzisiaj architektura tworzona przyrostowo 5. (TE) Stałe testowanie testy jednostkowe w Junit/nUnit, sugerowane TDD 6. (KO) Przebudowywanie stała weryfikacja kodu, usuwać/unikać powtarzających się fragmentów 7. (KO) Programowanie parami kod pisany przez 2 osoby, więc jest przeglądany w trakcie pisania cały zespół (lub przynajmniej programiści) znajdują się fizycznie w jednym miejscu; każda kluczowa decyzja musi być podjęta przez obu programistów
METODYKI ADAPTACYJNE XP C.D. 12 KLUCZOWYCH PRAKTYK C.D. 8. (KO) Kolektywne posiadanie kodu nikt nie posiada fragmentu kodu na wyłączność od strony technoogicznej; każdy może pracować nad dowolną częścią systemu 9. (KO, TE) Stała integracja wszystkie zmiany integrowane w ramach codziennych kompilacji (daily build) 10. (KO) 40-godzinny tydzień pracy nie ma nadgodzin 11. (PL, PR, KO, TE) Stały dostęp do klienta warto kluczowe ustalenia zapisać w jakiejkolwiek formie pisemnej, choćby emaila lub notatki ze spotkania 12. (KO) Standardy kodowania wszyscy kodują na bazie tego samego standardu. W idealnej sytuacji nie da się odróżnić, kto pisał dany kod
METODYKI ADAPTACYJNE - SCRUM
METODYKI ADAPTACYJNE - SCRUM ostatnio bardzo popularna metodyka SCRUM daje konkretny i spójny przepis na prowadzenie projektów informatycznych a z drugiej strony, pozostawia dużą swobodę dotyczącą sposobu implementacji dobra implementacja SCRUM znacznie zwiększa wydajność zespołów wykonawczych metodyka ta dotyczy wyłącznie fazy wytwarzania i nie opisuje prac związanych z przygotowaniem wizji projektu, podejmowaniem decyzji strategicznych czy zarządzaniem kontraktem
METODYKI ADAPTACYJNE SCRUM C.D. SCRUM definiuje następujące role w projekcie: właściciel produktu klient lub sponsor projektu, odpowiedzialny za kwestie biznesowe ScrumMaster odpowiednik sędziego na boisku osoba odpowiedzialna za kontrolę przebiegu procesu członek zespołu wchodzi w skład małego, interdyscyplinarnego zespołu wykonawczego (5-9 osób) interesanci osoby odpowiedzialne za podejmowanie decyzji strategicznych; mogą obserwować codzienne spotkania, ale nie powinni brać w nich aktywnego udziału
METODYKI ADAPTACYJNE SCRUM C.D. - PROCES Proces bazuje na szybkich i intensywnych cyklach nazywanych sprintami, które mogą trwać od 2 do 4 tygodni Kluczowym mechanizmem do rejestracji i rozliczania zadań jest dziennik zadań, a dokładniej 2 dzienniki: dziennik zadań produktu (Produck backlog definiuje wysokopoziomowe, biznsowe funkcje aplikacji) podstawowa platforma dyskusji pomiędzy zespołem wykonawczym, a właścicielem produktu dziennik zadań sprinta (Sprint backlog opisuje szczegółowe zadania techniczne w ramach danego sprinta) optymalna długość sprinta to od 4 do 12 godzin, dla dwutygodniowego sprinta
METODYKI ADAPTACYJNE SCRUM C.D. Mechanika SCRUM składa się z 3 głównych etapów: 1. ustanowienie gry (pregame) zajmuje jeden, pełny dzień planowanie (4h) zdefiniowanie, które z funkcjonalności z dziennika zadań produktu zostaną zrealizowane w kolejnym sprincie (czyli ustalenie biznesowego zakresu dziennika zadań sprinta) architektura (4h) poświęcona na kwestie techniczne i dyskusję na temat technicznego wykonania każdej ze zdefiniowanych funkcjonalności (spotkanie bez udziału właściciela produktu); weryfikacja czasów poszczególnych zadań pierwszy dzień kończy się automatycznym uruchomieniem sprinta
METODYKI ADAPTACYJNE SCRUM C.D. 2. gra (game) okres wykonania projektu; należy zaplanować codzienne 10-30-minutowe spotkania na stojaka prowadzone przez ScrumMastera każdy członek zespołu ma odpowiedzieć wyłącznie na 3 pytania: co zostało wykonane od ostatniego spotkania? co będzie wykonane do następnego spotkania? czy istnieje cokolwiek, co może zagrażać wykonaniu planów? spotkania służą również weryfikacji stopnia realizacji projektu. Scrum posiada tu oryginalną technikę wykresu spalania (burndown chart)
METODYKI ADAPTACYJNE SCRUM C.D.
METODYKI ADAPTACYJNE SCRUM C.D. 3. zamykanie gry (postgame) zajmuje jeden pełny dzień spotkanie przeglądowe (4h) poświęcone na prezentację wykonanych prac właścicielowi oraz interesantom; po zakończeniu sprinta wykonany produkt winien być prezentowalny bez dodatkowych czynności spotkanie retrospekcyjne (postmortem meeting), 4h dyskusja na temat tego jak przebiegał sprint, co się udało, co się nie udało, czego się nauczyliśmy, co nas martwi; spotkanie ma na celu doskonalenie sposobu wykorzystania metodyki Scrum oraz uświadomienie członkom zespołu, że to oni sami są właścicielem całego procesu
METODYKI ADAPTACYJNE SCRUM C.D. Kwestie praktyczne Scrum ma na stałe ustaloną długość i bez względu na przebieg wypadków wersja rozwiązania musi powstać do ustalonej daty, nawet, jeśli powoduje to redukcję wstępnie planowanej funkcjonalności. Data realizacji sprinta jest pojmowana śmiertelnie poważnie Nie jest to powiedziane wprost, ale Scrum zakłada zarzucenie klasycznych narzędzi planistycznych (wykres Gantta, MS Project) warto wprowadzić mechanizmy doskonalenia szacunków wykonania zadań w kontekście całego zespołu i poszczególnych pracowników. Scrum proponuje technikę szybkości zespołu.
METODYKI ADAPTACYJNE SCRUM C.D. wykonując szacunki należy pamiętać, że efektywny czas pracy to ok. 5 godzin; reszta to kawa, e-maile i inne zadania administracyjne zespołowi korzystającemu ze Scrum po raz pierwszy warto przedstawić najpierw, na czym cała metodyka polega; średnio potrzeba 3-4 sprintów, aby Scrum został w pełni wdrożony, a zespół realizował zadania w sposób przewidywalny Scrum nie zajmuje się zarządzaniem ryzykiem, ale można to robić
METODYKI ADAPTACYJNE SCRUM C.D. planowane zadania związane są nie tylko wprost z realizacją funkcjonalności, ale ze wszystkim co dotyczy realizacji celu sprinta (testowanie, dokumentacja, wykonanie instalatorów) adaptacyjność metody nie zwalnia z konieczności samodyscypliny
METODYKI ADAPTACYJNE SCRUM C.D. Jakość Dokumentacja Na co zwracać uwagę? Kompletność Zarządzanie ryzykiem
METODYKI ADAPTACYJNE PORÓWNANIE I PODSUMOWANIE XP to ciekawy zbiór dobrych praktyk Scrum jest w pełni dojrzałym modelem wytwarzania produktów, bazującym na dobrze opisanym procesie Najpopularniejsze podejście: wdrożenie Scrum z wykorzystaniem wybranych praktyk XP
METODYKI ORGANIZACYJNE ITIL (Information Technology Infrastructure Library) zbiór dobrych praktyk i procesów opisujących sposób funkcjonowania działów IT CMMI (Capability Maturity Model Integration) metoda badania poziomu dojrzałości organizacyjnej COBIT (Control Objectives for Information and related Technology) metodyka wspierająca zarządzanie, kontrolę i audyt systemów informatycznych; dostarcza zbiory miar, wskaźników, procesów i technik Six Sigma celem jest eliminacja wszelkich błędów procesowych
This is the end The Doors