Jakość w procesie
tworzenia oprogramowania ma niebagatelny wpływ na koszty wytworzenia i
utrzymania aplikacji. Wysoko-jakościowe systemy mają niższe koszty wytworzenia,
lepsze i mniej kosztowne testy oraz niższe koszty eksploatacji (poprawki,
modyfikacji).
Zagadnienie | Baza typowa | Baza wysoko-jakościowa | Sugerowane techniki i standardy |
wydajność | Niska, częste awarie wydajnościowe, trudna do zoptymalizowania. Często optymalizacja w jednym miejscu powoduje spadek wydajności w innym. Naprawa wymaga zmian sprzętowych, dodawania indexow/hintów lub przebudowy kodu. | wysoka, brak awarii | standardy projektowe struktur standardy programistyczne programowanie pod wydajność |
błędy | Duża ilość błędów, najczęściej znajdowane już na produkcji, trudne do zdiagnozowania, trudne do naprawy. Często naprawa jednego błędu powoduje powstanie kolejnych błędów. | Niewielka ilość błędów, największa ilość błędów znajdywana i naprawiana jeszcze na etap developmentu. Produkcja praktycznie wolna od błędów, ewentualnie pojedyncze i rzadko, łatwe do naprawy. | standardy nazewnicze standardy programistyczne testy automatyczne (unit testy) inspekcje kodu standardy projektowe |
wdrożenia | Kosztowne i długotrwale. Zaangażowanych jest wiele osób. Podczas wdrożenia występują błędy, częste wycofania wdrożeń, kilka podejść. | Szybkie i praktyczne bezbłędne. Niewiele zaangażowanych osób we wdrożenie. | Wersjonowanie skrypty instalacyjne testy skryptów instalacyjnych |
eksploatacja | Dużo czasu poświęcane na debugowanie i naprawdę błędów modyfikacje kosztowne, długotrwale modyfikacje często powodują błędy w innych rejonach aplikacji |
Mało błędów albo wcale, modyfikacje łatwe i proste do wykonania. | standardy programistyczne standardy nazewnicze wersjonowanie |
testy | Bardzo trudne i kosztowne testy więc często szczątkowe lub mało, głównie funkcjonalne. Brak testów jednostkowych, instalacyjnych, regresyjnych. | System łatwy do przetestowania-> duża ilość testów na każdym etapie. Testy jednostkowe, integracyjne, wydajnościowe, regresyjne, automatyczne. | standardy projektowe standardy programistyczne inspekcje kodu |
rozwój | trudny, większość sił poświęcona na naprawę błędów, awarii, wydajności. wiedza ekspercka trzymana z reguły w jednych rekach co prowadzi do braku czasu, przy braku eksperta z reguły wszystkie prace ustają lub mocno zwalniają | łatwa, brak błędów i awarii daje dużo czasu na rozwój, wiedza rozproszona, każdy zna w miarę dobrze system i jest w stanie rozwijać przy niewielkiej pomocy eksperta | standardy projektowe standardy programistyczne standardy nazewnicze |
wejście w system nowej osoby | Wysoki koszt wejścia w system, cała wiedza skupiona w rękach jednego lub kilku ekspertów. | Niski koszt wejścia w system. Prosty system jest łatwy do analizy, przyswojenia. | standardy projektowe standardy programistyczne standardy nazewnicze |
czytelność kodu | Niska, analiza kodu wymaga wiele czasu i wsparcia eksperta. | Wysoka, możliwa samodzielna analiza | standardy projektowe standardy programistyczne standardy nazewnicze |
Komentarze
Prześlij komentarz