Dlaczego powstaje kiepskie oprogramowanie? - Blog Marka - Project Complete



Dlaczego powstaje kiepskie oprogramowanie?

Jakość 28/03/2006 · Link

Jakość oprogramowania jest postrzegana przez użytkownika zupełnie z innej strony niż przez programistę. Niezrozumienie tej różnicy jest jednym z istotnych powodów tworzenia kiepskiego oprogramowania.

Dla programisty (zwłaszcza po studiach) najważniejszym wyznacznikiem jakości jest dobry kod. Taki, który nie tylko nie zawiera błędów, ale również jest elegancki, modularny, zgrabny, łatwy do modyfikacji, składający się z kawałków gotowych do ponownego użycia itd.

Dla użytkownika te cechy nie mają (bezpośrednio) znaczenia - przynajmniej dopóki produkt jest względnie stabilny. Z jego punktu widzenia program ma robić to, czego użytkownik oczekuje.

Spróbujmy przyjąć uproszczony model jakości postrzeganej przez użytkownika jako iloczyn:
(dopasowanie do potrzeb) x (wygoda używania) x (jakość kodu)

Załóżmy, że umiejętności w tych obszarach oceniamy od 1 do 10. Z moich obserwacji osób po studiach średnie liczby mogłyby być następujące:

Co daje 42 punktów na 1000 możliwych! Warto zauważyć, że dalsze usprawnienie w programowaniu o np 3 punkty zwiększa ten wynik do 60. Gdyby zamiast tego usprawnić umiejętność projektowania UI o te dwa punkty a umiejętność analizy wymagań o jeden, to dałoby to prawie dwukrotnie lepszy efekt (112)!

Jeżeli naszym celem jest tworzenie dobrego oprogramowania, to warto zastanowić się nad zainwestowaniem wysiłku tam, gdzie może on przynieść najlepszy efekt. Czyli niekoniecznie w ten obszar, w którym i tak jest już się całkiem sprawnym :-).


Zobacz inne wpisy


Myślę, Marku, że to trochę nietrafione porównanie. Podajesz 3 sfery: potrzeby, interfejs, kod. Tylko że pierwsza i druga są ściśle powiązane -- to tak naprawdę dwie strony tego samego medalu (tak samo jak interfejs i kod są też dwiema stronami systemu). Wymagania przekładają się na interfejs. Interfejs jest "oprogramowany" kodem. Mając złe wymagania nie zrobisz dobrego interfejsu, natomiast dla złego interfejsu można zrobić dobry kod. To istotna różnica.

Jasne, jest wiele aspektów tworzenia oprogramowania, z których każdy ma dużą wagę (i słabość jednego elementu powoduje wielką stratę), ale moim zdaniem bardzo to uprościłeś ;)
05/11/2006,   Kuba


Witam nowego czytelnika!

Oczywiście masz rację, że powyższy model jest uproszczony! Chyba nie jest możliwe stworzenie formuły opisującej jak stworzyć dobre oprogramowanie; w każdym razie ja się tego nie podejmuję :).

Głównym moim celem było zwrócenie uwagi, że pewne elementy muszą być spełnione _łącznie_ by ostatecznie powstał produkt wysokiej jakości.

Masz również rację pisząc, że na bazie wymagań opracowuje się projekt UI, a on z kolei stanowi część danych wejściowych dla tworzenia kodu. Ale to nie oznacza, że nie jest możliwe niezależne spartolenie z osobna każdej z nich. Pozwolę sobie przytoczyć przykład spoza informatyki na to, że można stworzyć produkt wygodny, dopracowany, ale niepotrzebny (w sensie rynkowym) - kto dziś pamięta Segway'a? Podobno miał być przełomowy właśnie jeśli chodzi o 'UI', mimo to nie przyjął się, bo nie rozwiązywał żadnego rzeczywistego problemu użytkowników.

Pozdrawiam,
Marek
05/11/2006,   Marek Rafałowicz


Pan Marek Rafałowicz napisał :
"Dla programisty (zwłaszcza po studiach) najważniejszym wyznacznikiem jakości jest dobry kod. Taki, który nie tylko nie zawiera błędów, ale również jest elegancki, modularny, zgrabny, łatwy do modyfikacji, składający się z kawałków gotowych do ponownego użycia itd."

Zgadzam się w 100%.
Programiści z którymi miałem przyjemność pracować musieli trzymać się tej zasady ponieważ gdy zaszła konieczność dokończenia projektu przez 2 programiste-nie miał problemu "ze zrozumieniem" kodu.

Pozdrawiam autora.
06/08/2007,   sklep rowerowy