Koszty konserwacji oprogramowania

Lubię pisać małe programy, które wiem, że nie będą rozwijane w ogromne systemy. Niestety takie programy pisze się bardzo rzadko. Co więcej – coraz więcej czasu poświęca się na konserwację istniejących programów zamiast pisania nowych od zera (co jest według niektórych najciekawsze w pracy programisty).

Potrzeba konserwacji oprogramowania wynika z paru przyczyn. Nie jest to tylko potrzeba dodania nowych funkcji albo możliwości do istniejącego programu. Jak pisze Robert Glass jest to istotny czynnik (60%) ale poprawianie istniejącego oprogramowania stanowi też istotną część tej pracy (17%).

Bertrant Meyer pisze (za Lientz, 1980), że prawie 42% kosztów konserwacji jest spowodowanych zmianami w wymaganiach użytkowników, prawie 18% zmianami w formatach danych a 12,4% to awaryjne poprawki. Warto zauważyć, że techniki obiektowe, wdrożenie pełnego cyklu produkcyjnego (analiza wymagań, dokumentacja, implementacja itd.), stosowanie uznanych standardów przechowywania danych i procedury testów użytkownika i jednostkowych mogą zmniejszyć te koszty.

Autor Software Conflict 2.0 pokazuje ponadto, że każdy programista wydaje się mieć predyspozycje w określonym fragmencie cyklu programistycznego. I tak niektórzy programiści są nawet 28 razy lepsi od innych w szukaniu przyczyn błędów w oprogramowaniu (ang. debugging), niektórzy są 7 razy lepsi w znajdowaniu błędów, niektórzy są 5 razy bardziej produktywni, a inni 11 razy bardziej efektywni.

Różnice te obalają mit jednego programisty dobrego we wszystkim.

Cechy indywidualne i kombinacja znanych technologii programistycznych determinuje w jakiej dziedzinie programista będzie najlepiej realizował swój umiejętności.

Warto też zwrócić uwagę na cytowaną wypowiedź w książce: utrzymywanie oprogramowania jest ciężkie, ponieważ konserwator nie zawsze dostaje odpowiednią dokumentację, jego praca jest intelektualnie skomplikowana, skomplikowana technicznie (czytanie obcego kodu), wypalająca (obcowanie tylko z błędami ludzi), brudna i męcząca. Ideą konserwacji według niego jest zatem:

Jeżeli coś działa, nie naprawiaj tego.

Jak donosi Jussi Koskinen, koszty konserwacji wzrosły z 60% w 1990 roku do 90% w 2000 roku. Oznacza to, że pisanie nowych rzeczy jest relatywnie tanie. Z kolei pokazuje też z jak wielkim problemem boryka się świat. Utrzymywanie istniejącego kodu to 90% kosztów oprogramowania. W 2000 roku szacowano, że na całym świecie utrzymuje się 250 miliardów linii kodu. Stan tego oprogramowania odpowiada kosztom jego utrzymania.

Czytaj podobne  Jak upiększyć minibloga na Pingerze cz. 2

Kegan Erdil i inni w pracy z 2003 roku wskazują na takie aspekty dobrego tworzenia oprogramowania jak: ponowne wykorzystanie kodu, zarządzanie i organizacja projektu, zadania, iteracyjne rozwijanie oprogramowania (Scrum),  rozwijanie oprogramowania skupione na komponentach (CBSD – Component-Based Software Development). Ciekawe jest też spojrzenie na podejście Open Source w kwestii utrzymywania oprogramowania.

A poniżej przykładowa wizualizacja code_swarm rozwoju środowiska programistycznego Eclipse:

[vimeo]1130828[/vimeo]

Przeczytaj też

Najlepsza książka do Pythona Nie wiesz, z jakiej książki/ebooka uczyć się programowania w języku Python? Postanowiłem zrobić zestawienie 10 książek z Heliona na ten temat, abyś mó...
Komplet 28 ebooków i kursów, aby zostać programist... Od jakiegoś czasu dostaję zapytania na temat tego jakie książki, kursy i ebooki polecam. W związku z tym postanowiłem przygotować dzisiaj zestaw, któr...
120 tapet programistycznych za darmo do pobrania Trochę mi się nudziło, więc przygotowałem zestaw 120 tapet dla programistów. Możesz go pobrać. Tapety są w rozdzielczości 1366x768. Podzielone ...
10 fiszek do nauki programowania w Pythonie Uczysz się programowania w Pythonie? Pobierz te 10 fiszek, które ułatwią Ci zapamiętanie funkcji wbudowanych* w Pythona! Programowanie potrafi ...
Napisano w Kolumna Tagi: , , , , , , , , , , , ,
One comment on “Koszty konserwacji oprogramowania
  1. RobertG pisze:

    Odnośniki do innych publikacji są interesujące ale jaka jest Twoja opinia, jaka jest pointa tej notki? Pozdrawiam (mój pierwszy komentarz tutaj;-))

Menu