Metodyka punktów funkcyjnych jako klucz do szacowania złożoności funkcjonalnej projektów IT

Badania pokazują, że duże projekty IT statystycznie przekraczają zakładany budżet o 45% i o 7% zakładany czas realizacji, jednocześnie dostarczając o 56% mniejszą wartość niż pierwotnie zakładano [1]. Trudności z oszacowaniem (pod wieloma względami) wielkości wdrażanego projektu IT są znane od wielu lat, a na całym świecie opracowano szereg narzędzi mających na celu zmitygowanie tego problemu. Jednym z nich jest metodyka punktów funkcyjnych.

Punkty funkcyjne

Metodyka punktów funkcyjnych została opracowana pod koniec lat 70-tych i na przestrzeni lat zyskała wielu zwolenników na całym świecie. Polega ona na opisaniu zakresu projektu poprzez określenie funkcji systemu informatycznego, które mają zostać dostarczone użytkownikowi, a następnie przypisanie im wag określających złożoność danej funkcji. Efektem końcowym jest opisanie zakresu projektu za pomocą liczby bezwymiarowej, która w dalszej kolejności umożliwia oszacowanie czasu i kosztów projektu IT.

W ramach metodyki punktów funkcyjnych powstało kilka standardów, wśród których dużą popularność zyskały te oferowane przez IFPUG (International Function Point Useres Group) oraz COSMIC (COmmon Software Mesurement International Consortium). Każda z tych organizacji opracowała własny podręcznik metodyki określający zasady, reguły i proces pomiaru punktu funkcyjnego oprogramowania. Obie metodyki zostały objęte standardem ISO.

Główne różnice pomiędzy metodyką IFPUG i COSMIC

Do niedawna metodyka IFPUG miała zastosowanie wyłącznie do wymagań funkcjonalnych, podczas gdy COSMIC można było stosować do estymowania dowolnych fragmentów oprogramowania, w tym wymagań niefunkcjonalnych. W 2019 r. IFPUG ogłosił wprowadzenie metodyki SNAP (Software Non-Functional Assessment Process), która pozwala na wymiarowanie również niefunkcjonalnych aspektów wytwarzania oprogramowania, a także określa jak używać tych dwóch wymiarów celem dokładniejszego oszacowania nakładu pracy oraz dokonania oceny wyników projektu [2].

Metodyka COSMIC opiera się o zasady, które mogą być aplikowane do wszelkiego rodzaju oprogramowania, co czyni ją bardziej ponadczasową, podczas gdy IFPUG opiera się na założeniach dostosowanych do aplikacji zarządzania danymi z lat 80-tych, co oznacza, że metodyka ta wymaga ciągłego dostosowywania do aktualnych standardów wytwarzania oprogramowania [3].

Metodyka IFPUG co do zasady zakłada trzystopniową skale mierzenia zmiany w oprogramowaniu [4], podczas gdy COSMIC umożliwia stosowanie dowolnej skali (o dowolnym zakresie) [5].

Punkty funkcyjne w umowie o dzieło

Kwestię zasadności zastosowania metodyki punktów funkcyjnych można zilustrować następującym pytaniem: Czy budując dom wolelibyśmy mierzyć postęp prac ilością godzin jaką robotnicy spędzają na naszej posesji, czy też np. liczbą ułożonych cegieł? Odpowiedź jest oczywista, a metodyka punktów funkcyjnych pozwala na zastosowanie miary dostosowanej do specyfiki danego projektu oraz dokonanie oceny efektywności prac prowadzonych przez wykonawcę, w sposób który jest najbardziej miarodajny dla zamawiającego.

Metodyką punktów funkcyjnych znajduje zastosowanie zarówno do umów, w których wynagrodzenie zostało określone ryczałtowo (zgodnie z art. 632 k.c.), jak i kosztorysowo (art. 629 k.c.). Należy jednak pamiętać, że przyjęta na gruncie kodeksu cywilnego definicja umowy o dzieło (art. 627 k.c.) zakłada oznaczoność przedmiotu umowy. Powstaje zatem pytanie w jaki sposób określić w umowie jej przedmiot, aby umożliwić zastosowanie metodyki punktów funkcyjnych i jednocześnie uniknąć w przyszłości sporów w zakresie należytego wykonania przedmiotu umowy? Kluczowe z tego punktu widzenia jest określenie podręcznika IFPUG/COSMIC, na podstawie którego prowadzone będą prace nad wdrożeniem projektu IT oraz dostosowanie go do specyfiki danego projektu. Kwestia właściwego wynegocjowania podręcznika pomiędzy przyjmującym zamówienie i zamawiającym pozwala na precyzyjne określenie procesu szacowania złożoności funkcjonalnej oraz prowadzenia projektu IT, a w konsekwencji zmniejszenie ryzyka konfliktów podczas jego realizacji.

Podsumowanie

Uniwersalność metodyki punktów funkcyjnych sprawia, że znajduje ona zastosowanie do szacowania złożoności szerokiej gamy projektów IT oraz jest możliwa do zastosowania w ramach różnych rozwiązań przewidzianych w kodeksie cywilnym w odniesieniu do umowy o dzieło. Opisanie zakresu projektu za pomocą względnej miary pozwala na przedłożenie istotności funkcjonalności, które mają zostać dostarczone użytkownikowi, ponad sztywny czas i budżet, co w konsekwencji przekłada się na zwiększenie dopasowania produktu końcowego do oczekiwań zamawiającego. Jest to także dobry sposób na zminimalizowanie ryzyka konfliktów, które często wynikają ze zbyt precyzyjnego określenia przedmiotu wdrożenia z góry, który w trakcie realizacji okazuje się odbiegać od wyobrażeń stron. Pełne wykorzystanie możliwości jakie oferuje metodyka punktów funkcyjnych wymaga jednak uważnego i przemyślanego skonstruowania umowy, w sposób pozwalający na zmitygowanie ryzyk wynikających z braku określenia przedmiotu umowy w „tradycyjnym rozumieniu”.