Wszystkie teksty umieszczane na Linkedin lub naszych stronach internetowych są naszą opinią. Prosimy nie traktować ich jako porady prawnej w konkretnej sprawie, ponieważ konkretna sprawa zawsze wymaga indywidualnej analizy.
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.
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].
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.
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”.
[1] Michael Bloch, Sven Blumberg, & Jürgen Laartz, , Delivering Large-Scale IT Projects On Time, On Budget, and On Value, McKinsey & Company,2012 r., (dostęp 12.06.22).
[2] “IFPUG method to size non-functional requirements (SNAP) is now an IEEE worldwide standard: IEEE 2430-2019”, 29 października 2019 r., (dostęp: 07.07.22)
[3] C.R. Symons, “A Cmparison of the Key Differences between the IFPUG and COSMIC Functional Size Measurement Methods”, 18 sierpnia 2011 r., (dostęp 12.06.22).
[4] Problem ten jest obecnie niwelowany przez IFPUG za pomocą opracowanej metodyki oceny złożoności (file type complexity).
[5] C.R. Symons, “A Comparison of the Key Differences between the IFPUG and COSMIC Functional Size Measurement Methods”, 18 sierpnia 2011 r., (dostęp 12.06.22).