Zarządzanie projektami oprogramowania

Schemat pracy w firmie IT zajmującej się tworzeniem oprogramowania można podzielić na dwie części:

  • Tworzenie oprogramowania
  • Zarządzanie projektami oprogramowania

Projekt to dobrze zdefiniowane zadanie, które jest zbiorem kilku operacji wykonywanych w celu osiągnięcia celu (na przykład tworzenie i dostarczanie oprogramowania). Projekt można scharakteryzować jako:

  • Każdy projekt może mieć unikalny i odrębny cel.
  • Projekt nie jest rutynową czynnością ani codziennymi operacjami.
  • Projekt zawiera godzinę rozpoczęcia i zakończenia.
  • Projekt kończy się, gdy cel zostanie osiągnięty, stąd jest to tymczasowa faza w życiu organizacji.
  • Projekt wymaga odpowiednich zasobów w zakresie czasu, siły roboczej, finansów, materiałów i banku wiedzy.

Projekt oprogramowania

Projekt oprogramowania to pełna procedura tworzenia oprogramowania od zebrania wymagań do testowania i utrzymania, wykonywana zgodnie z metodologiami wykonawczymi, w określonym czasie w celu osiągnięcia zamierzonego produktu programowego.

Potrzeba zarządzania projektami oprogramowania

Oprogramowanie jest produktem niematerialnym. Tworzenie oprogramowania to rodzaj zupełnie nowego nurtu w światowym biznesie i doświadczenie w tworzeniu oprogramowania jest bardzo małe. Większość oprogramowania jest dostosowana do wymagań klienta. Najważniejsze jest to, że podstawowa technologia zmienia się i rozwija tak często i szybko, że doświadczenie jednego produktu może nie być zastosowane w przypadku drugiego. Wszystkie takie ograniczenia biznesowe i środowiskowe niosą ze sobą ryzyko w tworzeniu oprogramowania, dlatego efektywne zarządzanie projektami oprogramowania jest niezbędne.

Powyższy obrazek przedstawia potrójne ograniczenia dla projektów oprogramowania. Istotną częścią organizacji oprogramowania jest dostarczanie produktów wysokiej jakości, utrzymywanie kosztów w granicach budżetu klienta i dostarczanie projektu zgodnie z harmonogramem. Istnieje kilka czynników, zarówno wewnętrznych, jak i zewnętrznych, które mogą wpływać na ten potrójny trójkąt ograniczający. Każdy z trzech czynników może poważnie wpłynąć na pozostałe dwa.

Dlatego zarządzanie projektami oprogramowania jest niezbędne, aby uwzględnić wymagania użytkowników, a także ograniczenia budżetowe i czasowe.

Kierownik projektu oprogramowania

Kierownik projektu oprogramowania to osoba, która przyjmuje na siebie odpowiedzialność za wykonanie projektu oprogramowania. Kierownik projektu oprogramowania doskonale zdaje sobie sprawę ze wszystkich faz SDLC, przez które przejdzie oprogramowanie. Kierownik projektu nie może nigdy bezpośrednio angażować się w wytwarzanie produktu końcowego, ale kontroluje i zarządza działaniami związanymi z produkcją.

Kierownik projektu ściśle monitoruje proces rozwoju, przygotowuje i realizuje różne plany, organizuje niezbędne i adekwatne zasoby, utrzymuje komunikację między wszystkimi członkami zespołu w celu rozwiązania kwestii kosztów, budżetu, zasobów, czasu, jakości i satysfakcji klienta.

Przyjrzyjmy się kilku obowiązkom kierownika projektu -

Zarządzanie ludźmi

  • Działaj jako lider projektu
  • Współpraca z interesariuszami
  • Zarządzanie zasobami ludzkimi
  • Konfigurowanie hierarchii raportowania itp.

Zarządzanie projektem

  • Definiowanie i konfigurowanie zakresu projektu
  • Zarządzanie działaniami związanymi z zarządzaniem projektami
  • Monitorowanie postępów i wydajności
  • Analiza ryzyka na każdym etapie
  • Podejmij niezbędne kroki, aby uniknąć problemów lub wyjść z nich
  • Pełnić rolę rzecznika projektu

Działania związane z zarządzaniem oprogramowaniem

Zarządzanie projektem oprogramowania składa się z szeregu czynności, które obejmują planowanie projektu, decydowanie o zakresie oprogramowania, szacowanie kosztów w różnych kategoriach, planowanie zadań i wydarzeń oraz zarządzanie zasobami. Działania związane z zarządzaniem projektem mogą obejmować:

  • Project Planning
  • Scope Management
  • Project Estimation

Planowanie

Planowanie projektu oprogramowania to zadanie, które jest wykonywane przed faktycznym rozpoczęciem produkcji oprogramowania. Ma na celu produkcję oprogramowania, ale nie obejmuje żadnej konkretnej działalności, która ma jakikolwiek związek z produkcją oprogramowania; jest to raczej zbiór wielu procesów ułatwiających produkcję oprogramowania. Planowanie projektu może obejmować:

Zarządzanie zakresem

Określa zakres projektu; obejmuje to wszystkie czynności, które należy wykonać w celu stworzenia dostarczalnego oprogramowania. Zarządzanie zakresem jest niezbędne, ponieważ tworzy granice projektu poprzez jasne określenie, co zostanie zrobione w projekcie, a czego nie. To sprawia, że ​​projekt zawiera ograniczone i wymierne zadania, które można łatwo udokumentować, co z kolei pozwala uniknąć przekroczenia kosztów i czasu.

Podczas zarządzania zakresem projektu konieczne jest:

  • Określ zakres
  • Zdecyduj o jego weryfikacji i kontroli
  • Podziel projekt na różne mniejsze części, aby ułatwić zarządzanie.
  • Sprawdź zakres
  • Kontroluj zakres, wprowadzając zmiany w zakresie

Wycena projektu

Dla skutecznego zarządzania konieczne jest dokładne oszacowanie różnych miar. Dzięki prawidłowej wycenie menedżerowie mogą skuteczniej i skuteczniej zarządzać projektem i kontrolować go.

Szacunek projektu może obejmować:

  • Software size estimation

    Rozmiar oprogramowania można oszacować za pomocą KLOC (Kilo Line of Code) lub obliczając liczbę punktów funkcyjnych w oprogramowaniu. Linie kodu zależą od praktyk kodowania, a punkty funkcyjne różnią się w zależności od użytkownika lub wymagań oprogramowania.

  • Effort estimation

    Menedżerowie szacują wysiłki w kategoriach zapotrzebowania na personel i roboczogodzin potrzebnych do wyprodukowania oprogramowania. Do oszacowania nakładu pracy należy znać rozmiar oprogramowania. Można to wyprowadzić z doświadczenia menedżerów, danych historycznych organizacji lub rozmiaru oprogramowania można przekształcić w wysiłki przy użyciu niektórych standardowych formuł.

  • Time estimation

    Po oszacowaniu rozmiaru i nakładu pracy można oszacować czas potrzebny do wyprodukowania oprogramowania. Wymagane wysiłki są podzielone na podkategorie zgodnie ze specyfikacjami wymagań i współzależnością różnych składników oprogramowania. Zadania oprogramowania są podzielone na mniejsze zadania, czynności lub zdarzenia według struktury przełomowej pracy (WBS). Zadania są planowane z dnia na dzień lub w miesiącach kalendarzowych.

    Suma czasu potrzebnego do wykonania wszystkich zadań w godzinach lub dniach to całkowity czas zainwestowany w wykonanie projektu.

  • Cost estimation

    Można to uznać za najtrudniejsze ze wszystkich, ponieważ zależy od większej liczby elementów niż którykolwiek z poprzednich. Aby oszacować koszt projektu, należy wziąć pod uwagę -

    • Rozmiar oprogramowania
    • Jakość oprogramowania
    • Hardware
    • Dodatkowe oprogramowanie lub narzędzia, licencje itp.
    • Wykwalifikowany personel z umiejętnościami specyficznymi dla zadania
    • Wymagana podróż
    • Communication
    • Szkolenie i wsparcie

Techniki szacowania projektu

Omówiliśmy różne parametry związane z szacowaniem projektu, takie jak rozmiar, wysiłek, czas i koszt.

Kierownik projektu może oszacować wymienione czynniki za pomocą dwóch szeroko uznanych technik -

Technika rozkładu

Ta technika zakłada, że ​​oprogramowanie jest produktem różnych kompozycji.

Istnieją dwa główne modele -

  • Line of Code Szacowanie odbywa się w imieniu liczby linii kodów w oprogramowaniu.
  • Function Points Szacowanie jest dokonywane w imieniu liczby punktów funkcyjnych w oprogramowaniu.

Empiryczna technika estymacji

Ta technika wykorzystuje empirycznie wyprowadzone wzory do oszacowania, które są oparte na LOC lub FP.

  • Putnam Model

    Model ten jest tworzony przez Lawrence H. Putnama, który bazuje na rozkładzie częstotliwości Nordena (krzywa Rayleigha). Model Putnam odwzorowuje czas i wysiłek wymagany przez rozmiar oprogramowania.

  • COCOMO

    COCOMO oznacza COnstructive COst MOdel, opracowany przez Barry'ego W. Boehma. Dzieli oprogramowanie na trzy kategorie oprogramowania: organiczne, częściowo odłączone i osadzone.

Planowanie projektu

Harmonogram projektu w projekcie odnosi się do mapy drogowej wszystkich działań do wykonania w określonej kolejności i w przedziale czasowym przydzielonym do każdego działania. Menedżerowie projektów mają tendencję do definiowania różnych zadań i kamieni milowych projektu oraz aranżacji ich, mając na uwadze różne czynniki. Poszukują w harmonogramie zadań na ścieżce krytycznej, które są niezbędne do wykonania w określony sposób (ze względu na współzależność zadań) i ściśle w wyznaczonym czasie. Aranżacja zadań poza ścieżką krytyczną ma mniejszy wpływ na cały harmonogram projektu.

Aby zaplanować projekt, konieczne jest:

  • Podziel zadania projektowe na mniejsze, łatwe w zarządzaniu formy
  • Znajdź różne zadania i skoreluj je
  • Oszacuj ramy czasowe wymagane dla każdego zadania
  • Podziel czas na jednostki pracy
  • Przydziel odpowiednią liczbę jednostek roboczych do każdego zadania
  • Oblicz całkowity czas potrzebny na realizację projektu od początku do końca

Zarządzanie zasobami

Wszystkie elementy używane do tworzenia oprogramowania mogą być traktowane jako zasoby dla tego projektu. Może to obejmować zasoby ludzkie, produktywne narzędzia i biblioteki oprogramowania.

Zasoby są dostępne w ograniczonej ilości i pozostają w organizacji jako pula aktywów. Niedobór zasobów utrudnia rozwój projektu i może spóźniać się z harmonogramem. Przydzielanie dodatkowych zasobów zwiększa ostatecznie koszt rozwoju. Konieczne jest zatem oszacowanie i przeznaczenie odpowiednich zasobów na projekt.

Zarządzanie zasobami obejmuje -

  • Zdefiniowanie odpowiedniego projektu organizacyjnego poprzez stworzenie zespołu projektowego i przydzielenie obowiązków każdemu członkowi zespołu
  • Określenie zasobów wymaganych na danym etapie i ich dostępności
  • Zarządzaj zasobami, generując żądania zasobów, gdy są potrzebne, i usuwając je, gdy nie są już potrzebne.

Zarządzanie ryzykiem projektu

Zarządzanie ryzykiem obejmuje wszystkie działania związane z identyfikacją, analizą i zabezpieczeniem przewidywalnych i nieprzewidywalnych ryzyk w projekcie. Ryzyko może obejmować:

  • Doświadczony personel opuszcza projekt i przychodzi nowy personel.
  • Zmiana w zarządzaniu organizacją.
  • Zmiana wymagania lub błędna interpretacja wymagania.
  • Niedoszacowanie wymaganego czasu i zasobów.
  • Zmiany technologiczne, zmiany środowiskowe, konkurencja biznesowa.

Proces zarządzania ryzykiem

W proces zarządzania ryzykiem zaangażowane są następujące czynności:

  • Identification - Zwróć uwagę na wszystkie możliwe ryzyka, które mogą wystąpić w projekcie.
  • Categorize - Kategoryzuj znane zagrożenia według wysokiego, średniego i niskiego poziomu intensywności, zgodnie z ich możliwym wpływem na projekt.
  • Manage - Analizuj prawdopodobieństwo wystąpienia zagrożeń na różnych etapach. Przygotuj plan unikania ryzyka lub stawienia czoła ryzyku Spróbuj zminimalizować ich skutki uboczne.
  • Monitor - Dokładnie monitoruj potencjalne zagrożenia i ich wczesne objawy. Monitoruj również skutki działań podjętych w celu ich złagodzenia lub uniknięcia.

Wykonanie i monitorowanie projektu

Na tym etapie zadania opisane w planach projektów są realizowane zgodnie z ich harmonogramami.

Wykonanie wymaga monitorowania, aby sprawdzić, czy wszystko idzie zgodnie z planem. Monitorowanie polega na obserwacji w celu sprawdzenia prawdopodobieństwa wystąpienia ryzyka i podjęcia działań w celu przeciwdziałania ryzyku lub raportowania stanu różnych zadań.

Środki te obejmują -

  • Activity Monitoring - Wszystkie czynności zaplanowane w ramach jakiegoś zadania mogą być monitorowane z dnia na dzień. Gdy wszystkie czynności w zadaniu są zakończone, uznaje się je za zakończone.
  • Status Reports - Raporty zawierają status czynności i zadań wykonanych w zadanym przedziale czasowym, najczęściej tygodniowym. Status można oznaczyć jako zakończony, oczekujący lub w toku itp.
  • Milestones Checklist - Każdy projekt jest podzielony na wiele faz, w których wykonywane są główne zadania (kamienie milowe) w oparciu o fazy SDLC. Ta lista kontrolna kamieni milowych jest przygotowywana raz na kilka tygodni i informuje o stanie kamieni milowych.

Zarządzanie komunikacją w projekcie

Skuteczna komunikacja odgrywa kluczową rolę w powodzeniu projektu. Wypełnia luki między klientem a organizacją, między członkami zespołu, a także innymi udziałowcami projektu, takimi jak dostawcy sprzętu.

Komunikacja może być ustna lub pisemna. Proces zarządzania komunikacją może obejmować następujące kroki:

  • Planning - Ten krok obejmuje identyfikację wszystkich interesariuszy projektu i sposób komunikacji między nimi. Rozważa również, czy wymagane są jakiekolwiek dodatkowe urządzenia komunikacyjne.
  • Sharing - Po określeniu różnych aspektów planowania, kierownik koncentruje się na dzieleniu się poprawnymi informacjami z właściwą osobą w odpowiednim czasie. Dzięki temu każdy zaangażowany w projekt jest na bieżąco z postępem projektu i jego statusem.
  • Feedback - Kierownicy projektów używają różnych środków i mechanizmów informacji zwrotnej oraz tworzą raporty dotyczące statusu i wydajności. Mechanizm ten zapewnia, że ​​wkład różnych interesariuszy dociera do kierownika projektu jako ich informacja zwrotna.
  • Closure - Pod koniec każdego ważnego wydarzenia, zakończenia fazy SDLC lub samego projektu, formalnie ogłasza się zamknięcie administracyjne w celu zaktualizowania informacji dla każdego interesariusza poprzez wysłanie wiadomości e-mail, dystrybucję wydruku dokumentu lub w inny sposób skutecznej komunikacji.

Po zamknięciu zespół przechodzi do następnej fazy lub projektu.

Zarządzanie konfiguracją

Zarządzanie konfiguracją to proces śledzenia i kontrolowania zmian w oprogramowaniu pod względem wymagań, projektu, funkcji i rozwoju produktu.

IEEE definiuje to jako „proces identyfikowania i definiowania pozycji w systemie, kontrolowanie zmian tych pozycji w całym cyklu ich życia, rejestrowanie i raportowanie statusu pozycji i żądań zmian oraz weryfikacja kompletności i poprawności pozycji”.

Generalnie po sfinalizowaniu SRS istnieje mniejsza szansa na wprowadzenie zmian przez użytkownika. Jeśli wystąpią, zmiany są uwzględniane tylko za uprzednią zgodą wyższego kierownictwa, ponieważ istnieje możliwość przekroczenia kosztów i czasu.

Linia bazowa

Zakłada się, że faza SDLC została zakończona, jeśli została określona jako podstawa, tj. Linia bazowa jest pomiarem definiującym kompletność fazy. Faza jest określana jako podstawowa, gdy wszystkie związane z nią działania są zakończone i dobrze udokumentowane. Gdyby nie była to ostatnia faza, jej produkcja zostałaby wykorzystana w następnej bezpośredniej fazie.

Zarządzanie konfiguracją jest dyscypliną administrowania organizacją, która dba o wystąpienie wszelkich zmian (procesowych, wymagań, technologicznych, strategicznych itp.) Po ustaleniu fazy. CM na bieżąco sprawdza wszelkie zmiany wprowadzone w oprogramowaniu.

Kontrola zmian

Kontrola zmian jest funkcją zarządzania konfiguracją, która zapewnia, że ​​wszystkie zmiany wprowadzone w systemie oprogramowania są spójne i dokonywane zgodnie z zasadami i przepisami organizacyjnymi.

Zmiana konfiguracji produktu przechodzi przez następujące kroki -

  • Identification- Żądanie zmiany pochodzi ze źródła wewnętrznego lub zewnętrznego. Kiedy wniosek o zmianę zostanie formalnie zidentyfikowany, jest on odpowiednio udokumentowany.

  • Validation - Sprawdzana jest ważność wniosku o zmianę i potwierdzana jest procedura jego obsługi.

  • Analysis- Wpływ wniosku o zmianę jest analizowany pod kątem harmonogramu, kosztów i wymaganych działań. Przeanalizowano ogólny wpływ przyszłej zmiany na system.

  • Control- Jeśli potencjalna zmiana wpłynie na zbyt wiele podmiotów w systemie lub jest nieunikniona, konieczne jest uzyskanie zgody wysokich władz przed wprowadzeniem zmiany do systemu. Decyduje się, czy zmiana jest warta włączenia, czy nie. Jeśli tak nie jest, wniosek o zmianę jest formalnie odrzucany.

  • Execution - Jeśli poprzednia faza zdecyduje się na wykonanie żądania zmiany, ta faza podejmuje odpowiednie działania w celu wykonania zmiany, w razie potrzeby przeprowadza gruntowną weryfikację.

  • Close request- Zmiana jest weryfikowana pod kątem poprawnego wdrożenia i połączenia z resztą systemu. Ta nowo wprowadzona zmiana w oprogramowaniu jest odpowiednio udokumentowana, a wniosek formalnie zamknięty.

Narzędzia do zarządzania projektami

Ryzyko i niepewność wzrastają wielokrotnie w stosunku do wielkości projektu, nawet jeśli projekt jest rozwijany zgodnie z ustalonymi metodologiami.

Dostępne są narzędzia, które pomagają w efektywnym zarządzaniu projektami. Kilka zostało opisanych -

Wykres Gantta

Wykresy Gantta zostały opracowane przez Henry'ego Gantta (1917). Przedstawia harmonogram projektu w odniesieniu do okresów czasu. Jest to poziomy wykres słupkowy z paskami przedstawiającymi czynności i czas zaplanowany na działania projektu.

Wykres PERT

Wykres PERT (Program Evaluation & Review Technique) to narzędzie przedstawiające projekt jako diagram sieciowy. Jest w stanie graficznie przedstawić główne wydarzenia projektu zarówno równolegle, jak i po kolei. Zdarzenia, które następują po sobie, pokazują zależność późniejszego zdarzenia od poprzedniego.

Zdarzenia są wyświetlane jako ponumerowane węzły. Połączone są za pomocą oznaczonych strzałek przedstawiających kolejność zadań w projekcie.

Histogram zasobów

Jest to narzędzie graficzne, które zawiera słupek lub wykres przedstawiający liczbę zasobów (zwykle wykwalifikowanych pracowników) wymaganych w czasie dla zdarzenia (lub fazy) projektu. Histogram zasobów jest skutecznym narzędziem planowania i koordynacji personelu.

Analiza ścieżki krytycznej

To narzędzie jest przydatne w rozpoznawaniu współzależnych zadań w projekcie. Pomaga również znaleźć najkrótszą lub krytyczną ścieżkę do pomyślnego zakończenia projektu. Podobnie jak diagram PERT, każdemu zdarzeniu przypisany jest określony czas. To narzędzie pokazuje zależność zdarzenia przy założeniu, że zdarzenie może przejść do następnego tylko wtedy, gdy poprzednie zostanie zakończone.

Wydarzenia są ułożone według ich najwcześniejszego możliwego czasu rozpoczęcia. Ścieżka między węzłem początkowym i końcowym jest ścieżką krytyczną, której nie można dalej ograniczać, a wszystkie zdarzenia wymagają wykonania w tej samej kolejności.