Co wpływa na koszt punktu funkcyjnego?
Niedoszacowanie złożoności oprogramowania często prowadzi do porażek lub niskiej rentowności projektów IT. Większość sposobów szacowania nie pozwala precyzyjnie określić rozmiaru systemu, co utrudnia kontrolę kosztów i ryzyka. Istnieje jednak sprawdzona metoda - punkty funkcyjne. Umożliwiają one obiektywną ocenę rozmiaru oprogramowania, a tym samym trafną wycenę, lepsze planowanie i zwiększanie rentowności. Czym są punkty funkcyjne i jak określić ich wartość?
Co to są punkty funkcyjne?
Punkty funkcyjne to obecnie najbardziej precyzyjna i obiektywna metoda określania rozmiaru oprogramowania. Choć powstała w latach 70. i zdobyła wielu zwolenników na świecie, w Polsce wciąż nie jest powszechnie stosowana. Polega ona na opisaniu zakresu projektu IT poprzez zidentyfikowanie funkcjonalności, które mają zostać dostarczone użytkownikowi. Każdej funkcjonalności przypisuje się określoną wagę (liczbę punktów funkcyjnych), która odzwierciedla jej złożoność. W rezultacie cały zakres projektu można przedstawić jako jedną liczbę, która ułatwia dalsze oszacowanie czasu i kosztów realizacji.
Co ważne, punkty funkcyjne skupiają się na mierzeniu efektu końcowego, czyli dostarczanych funkcjonalności. Są niezależne od użytych technologii, języków programowania, metodyk czy architektury tworzonego systemu. Punkty funkcyjne można też wykorzystywać na wszystkich etapach projektu - zarówno podczas podejmowania decyzji, realizacji, jak i podsumowania prac.
Wartość punktów funkcyjnych w projekcie można określić korzystając z różnych standardów. Do najpopularniejszych należą metodyki IFPUG i COSMIC, które definiują własne zasady pomiaru punktów funkcyjnych.
Określenie wartości punktów funkcyjnych pozwala m.in. na:
- oszacowanie wielkości projektu IT oraz zasobów potrzebnych do jego realizacji,
- określenie wydajności produkcji oprogramowania poprzez mierzenie liczby punktów funkcyjnych wytwarzanych w określonym czasie lub z użyciem konkretnej technologii,
- szacowanie kosztów i czasu potrzebnych na wprowadzenie zmian wynikających z modyfikacji zakresu projektu w trakcie realizacji,
- obiektywne porównywanie wytwarzanego oprogramowania z oprogramowaniem wytworzonym w przeszłości pod kątem złożoności, technologii, czasu realizacji oraz innych czynników,
- lepszą wycenę projektu oraz trafniejsze podejmowanie strategicznych decyzji dotyczących przyjmowania projektów, wyboru technologii czy metodyk pracy.
W praktyce IFPUG jest częściej stosowany w dużych projektach korporacyjnych, gdzie liczy się stabilność i porównywalność z innymi projektami, podczas gdy COSMIC lepiej sprawdza się w systemach czasu rzeczywistego i aplikacjach o dużej liczbie integracji.
Ocena liczby punktów funkcyjnych - od czego zacząć?
Ogólna zasada mierzenia punktów funkcyjnych opiera się na podzieleniu oprogramowania na części składowe. Niektóre z nich mają wpływ na kryteria funkcjonalne (determinujące liczbę punktów funkcyjnych w projekcie), a niektóre na kryteria jakościowe (mające jedynie wpływ na koszt pojedynczego punktu funkcyjnego, bez zmian dla funkcjonalności).
Liczba punktów funkcyjnych a koszt punktu funkcyjnego – kluczowe różnice

Rozróżnienie liczby i kosztu PF to dopiero pierwszy krok. Aby poprawnie wycenić projekt, trzeba jeszcze zrozumieć, jakie elementy systemu składają się na liczbę punktów funkcyjnych.
Główne komponenty oprogramowania to:
-
Zewnętrzne typy wejścia (EI)
Są to sposoby wprowadzania danych do aplikacji. Mogą być nimi np. szablony, podpowiedzi, czy wybór opcji z rozwijanej listy. O ile sama funkcjonalność jest wyrażana w punktach funkcyjnych, tak jej typ stanowi jedynie kryterium jakościowe, czyli jest punktem wyjścia do obliczenia kosztu punktu funkcyjnego.
-
Zewnętrzne typy wyjścia (EO)
Są to metody prezentacji danych, np. możliwość wygenerowania raportu, tabeli czy wykresu. Fakt generowania prezentacji stanowi kryterium funkcjonalne, ale już forma (sposób) prezentacji jest kryterium jakościowym.
-
Logiczne wewnętrzne typy plików (ILF)
W metodyce COSMIC typy plików i zbiory danych używane jedynie wewnętrznie przez system nie są brane pod uwagę i nie mają wpływu na koszt punktu funkcyjnego.
-
Zewnętrzne typy interfejsów plików (EIF)
Są to metody wymiany danych między systemami Również są pomijane w metodyce wymiarowania COSMIC i nie wpływają na koszt punktu funkcyjnego, a jedynie na liczbę punktów w projekcie.
-
Zewnętrzne typy zapytań (EQ)
Są to sposoby odczytu danych z systemu bez ich modyfikacji. Mogą być to zapytania wewnętrzne różnego typu, a każdą z takich metod da się zwymiarować funkcjonalnie. Nie mają jednak wpływu na koszt punktu (nie stanowią kryterium jakościowego).
W pierwszym kroku, na drodze analizy oprogramowania pod kątem tych kryteriów, określa się więc liczbę punktów funkcyjnych w projekcie. Na kolejnym etapie należy przyjrzeć się bliżej kryteriom funkcjonalnym, aby możliwie trafnie określić koszt pojedynczego punktu.
Co wpływa na koszt punktu funkcyjnego?
Po określeniu liczby punktów funkcyjnych czas dokładniej przyjrzeć się kryteriom jakościowym. Jest to niezbędne do tego, by skutecznie wykorzystać punkty funkcyjne do szacowania kosztów projektów IT. Ponieważ sama metoda jest niezależna od technologii, języków programowania czy doświadczenia zespołu, kryteria, jakie przyjmuje się do wyceny punktu, to m.in.:
- stawki zespołu projektowego - koszty pracy programistów, analityków, testerów i innych specjalistów zaangażowanych w projekt,
- stosowane technologie i narzędzia - choć metoda punktów funkcyjnych jest niezależna od technologii, różne technologie mogą generować różne koszty implementacji tych samych funkcjonalności,
- złożoność domeny biznesowej - projekty w bardziej wymagających branżach (np. fintech, medtech) mogą wymagać większego nakładu pracy na analizę, testy i walidację,
- wymagany poziom jakości i niezawodności - im wyższe wymagania jakościowe (np. SLA, bezpieczeństwo, dostępność), tym wyższy koszt realizacji funkcjonalności,
- doświadczenie i efektywność zespołu - zespoły bardziej doświadczone mogą dostarczać więcej punktów funkcyjnych w jednostce czasu, co wpływa na jednostkowy koszt punktu,
- model realizacji projektu - sposób pracy (np. outsourcing, nearshoring, praca wewnętrzna) może znacząco wpłynąć na koszty osobowe i operacyjne,
- skala i złożoność integracji - funkcje wymagające wielu interfejsów lub pracy z rozproszonymi systemami mogą być droższe w implementacji mimo takiej samej liczby punktów.
Wpływ cech systemu na koszt punktu funkcyjnego - metodyka IFPUG
Przyglądając się bliżej czynnikom wpływającym na koszt punktu funkcyjnego stosując metodykę IFPUG widzimy, że w tym podejściu również zależy on przede wszystkim od cech ogólnych systemu i wymagań niefunkcjonalnych.
Cechy ogólne systemu (General System Characteristic) zdefiniowane w metodyce IFPUG to czynniki, które nie zwiększają samej liczby punktów funkcyjnych, ale wpływają na złożoność techniczną realizacji - a tym samym na koszt ich dostarczenia. Takimi cechami są m.in.:
- przetwarzanie rozproszone (Distributed Data Processing)
- wymagania dotyczące komunikacji danych (Data Communications)
- wydajność systemu (Performance)
- intensywność transakcyjna (Transaction Rate)
- złożoność logiki przetwarzania (Complex Processing)
- łatwość instalacji i obsługi (Installation Ease, Operational Ease)
- liczba lokalizacji (Multiple Sites)
- możliwość aktualizacji i zmiany (Facilitate Change).
- tryb pracy systemu (np. On-Line Data Entry czy On-Line Update)
- możliwość ponownego użycia komponentów (Reusability)
- czynniki wpływające na doświadczenie użytkownika (End-User Efficiency).
W praktyce oznacza to, że niezależnie od stosowanego standardu wymiarowania, dwa projekty o identycznej liczbie punktów funkcyjnych mogą znacząco różnić się kosztowo, jeśli różni je poziom technicznej złożoności lub oczekiwań niefunkcjonalnych.
Jak precyzyjnie oszacować koszt punktu funkcyjnego?
Jak więc krok po kroku i precyzyjnie określić koszt punktu funkcyjnego?
- Określ zakres projektu, czyli samą liczbę punktów funkcyjnych na podstawie zidentyfikowanych funkcjonalności.
- Określ wymagania niefunkcjonalne, czyli kryteria jakościowe wpływające na poziom trudności realizacji funkcjonalności.
- Przeanalizuj czynniki projektowe z uwzględnieniem cech systemu takich jak skomplikowanie logiki biznesowej, liczba użytkowników, poziom automatyzacji, łatwość instalacji i utrzymania itd.
- Przeanalizuj środowisko wykonawcze, a w szczególności to, jak użyte technologie, narzędzia oraz architektura wpływają na koszt dostarczenia danej funkcjonalności. Przykładowo, wymagany nakład pracy przy wykorzystaniu dwóch różnych technologii może być zupełnie inny.
- Ustal bazową stawkę kosztu punktu funkcyjnego na podstawie danych historycznych pochodzących z realizacji poprzednich projektów czy benchmarków rynkowych.
- Dostosuj stawkę do specyfiki danego projektu z uwzględnieniem kryteriów jakościowych i wymagań niefunkcjonalnych.
- Oblicz całkowity koszt projektu, czyli przemnóż liczbę otrzymanych punktów funkcyjnych przez skorygowaną stawkę kosztu jednego punktu.
Koszt punktu funkcyjnego: podsumowanie
Aby precyzyjnie oszacować projekt IT, należy wziąć pod uwagę nie tylko samą liczbę punktów funkcyjnych, ale też niefunkcjonalne wymagania systemu, które określają jakość dostarczanego rozwiązania. Kryteria takie jak bezpieczeństwo, wydajność, skalowalność, dostępność czy ergonomia interfejsu użytkownika wpływają na nakład pracy potrzebny do realizacji poszczególnych funkcji, a tym samym na cenę jednostkową punktu funkcyjnego i całego projektu. W praktyce oznacza to, że ta sama funkcjonalność - np. formularz do składania zamówień - może mieć różny koszt w zależności od tego, jak wysokie są oczekiwania jakościowe wobec jej działania. Przykładowo, formularz zamówień w e-commerce z podstawową walidacją pól może kosztować 10 PF, ale jeśli musi obsługiwać integracje z płatnościami, dynamiczne rabaty i SLA dostępności na poziomie 99,9%, ten sam formularz podnosi koszt punktu nawet dwukrotnie. To pokazuje, jak ważne jest oddzielenie liczby PF od kosztu PF w analizie projektu.
Chcesz uprościć proces liczenia punktów funkcyjnych w praktyce? Sprawdź 21 prim - to rozwiązanie pozwala uniknąć ręcznego liczenia w Excelu, ułatwia sprawne opisanie dokumentacji projektu punktami funkcyjnymi i wygenerowanie kompletnej wyceny na bazie kosztu jednostkowego. Dzięki temu oszczędzisz czas, unikniesz błędów, a decyzje finansowe podejmiesz w oparciu o twarde dane, a nie szacunki.
FAQ
-
Jakie elementy wpływają na liczbę punktów funkcyjnych?
Na liczbę punktów wpływają funkcjonalne komponenty systemu, takie jak: zewnętrzne typy wejścia (EI), zewnętrzne typy wyjścia (EO), zewnętrzne typy zapytań (EQ), logiczne wewnętrzne typy plików (ILF), zewnętrzne typy interfejsów plików (EIF).
-
Co wpływa na koszt pojedynczego punktu funkcyjnego?
Koszt punktu funkcyjnego zależy od czynników jakościowych, takich jak: wymagania niefunkcjonalne, stawki zespołu, użyte technologie, złożoność domeny, efektywność i model realizacji.
-
Co to są wymagania niefunkcjonalne i jakie mają znaczenie?
Wymagania niefunkcjonalne (np. wydajność, bezpieczeństwo) nie zwiększają liczby punktów funkcyjnych, ale wpływają na ich koszt ze względu na to, że podnoszą techniczną złożoność projektu. Np. wymaganie, aby system obsługiwał 1000 transakcji na sekundę, nie zmienia liczby PF, ale podnosi koszt ich implementacji o dodatkowe testy i mocniejsze serwery.
-
Czy dwa projekty o tej samej liczbie punktów funkcyjnych mogą różnić się kosztowo?
Tak, gdyż nawet przy identycznej liczbie punktów funkcyjnych projekty mogą znacząco różnić się kosztami ze względu na różny poziom złożoności technicznej, wymagania niefunkcjonalne, użyte technologie czy sposób realizacji.
-
Jak oszacować koszt projektu na podstawie punktów funkcyjnych?
Najpierw należy określić liczbę punktów funkcyjnych, następnie przeanalizować wymagania niefunkcjonalne, ustalić bazową stawkę punktu, a na końcu przeliczyć całościowy koszt projektu.