Czas poświęcony wymaganiom i jego wpływ na sukces projektu i czas rozwoju


15

Czy istnieją dowody sugerujące, że czas poświęcony na pisanie lub myślenie o wymaganiach będzie miało jakikolwiek wpływ na czas opracowywania? Badanie przeprowadzone przez Standish (1995) sugeruje, że niekompletne wymagania częściowo (13,1%) przyczyniły się do niepowodzenia projektów. Czy przeprowadzono jakieś badania, które pokazują, że czas poświęcony na analizę wymagań będzie miał jakikolwiek wpływ na czas opracowywania projektu lub na sukces projektu.


3
Jak pasują tutaj zwinne modele? Można argumentować, że spędzają czas na wymaganiach (włączanie i wyłączanie), ale nie ma „fazy” wymagań jako takiej.
— Raphael

1
Zgadzam się z @Raphael. Czy zamierzamy zadawać pytania na temat inżynierii oprogramowania? A może oficjalna polityka witryny, że nie warto w tym momencie rozróżniać między „informatyką” i „inżynierią oprogramowania”?
— Patrick87,

1
@ Patrick87 Przenieśmy to do meta .
— Raphael

Wydaje mi się, że to pytanie lepiej pasowałoby do istniejących stron inżynierii oprogramowania i zarządzania projektami .
— Adam Lear

Odpowiedzi:


10

Patrz Kod ukończony, Steve McConnell, Tabela 3-1. Porównuje średni koszt naprawy defektów w oparciu o czas ich wprowadzenia i wykrycia. Wykrywanie w czasie budowy kosztuje 5-10 razy więcej niż wykrywanie w czasie wymagań i 10-100 razy więcej po wydaniu.

Tabela oparta jest na następujących źródłach:

  1. „Kontrola projektu i kodu w celu zmniejszenia liczby błędów w programowaniu” (Fagan 1976)

  2. Usuwanie defektów oprogramowania (Dunn 1984)

  3. „Software Process Improvement at Hughes Aircraft” (Humphrey, Snyder i WIllis 1991)

i kilka innych


Samo to nie wystarczy. Drogie błędy muszą zdarzać się dość często i muszą być wystarczająco często łapane przez wymyślanie odpowiednich wymagań. W przeciwnym razie dodatkowe koszty związane z opracowaniem wymagań mogą nadal przewyższać koszty pomyłek.
— Raphael

To prawda. Musimy założyć, że do pewnego momentu brak pośpiechu w stosunku do wymagań oznacza mniej błędów w wymaganiach, ale nie wydaje się to zbyt dużym obciążeniem.
— Joe

10

Tak, istnieje wiele badań na ten temat. Oczywiście pytanie jest zbyt ogólne, aby odpowiedzieć na wszelkiego rodzaju projekty rozwoju oprogramowania, ale istnieją dowody z kilku kontekstów, które potwierdzają pogląd, że prawidłowe przeprowadzenie analizy wymagań będzie miało pozytywny wpływ na etap wdrożenia. Dowody te zostały częściowo zebrane w „prawa”, a oto trzy przykłady:

Prawo szkła: braki wymagań są głównym źródłem niepowodzeń projektu.

To prawo jest poparte dowodami ze studiów przypadków z dużych projektów rozwoju oprogramowania. Glass stwierdził, że w nieudanych przypadkach było zbyt wiele wymagań, były one niestabilne z powodu późnych zmian oraz były niejednoznaczne i niekompletne.

Sugeruje to, że istnieje związek między jakością wymagań a rezultatem projektu.

Pierwsze prawo Boehm'a : Błędy występują najczęściej podczas wymagań i działań projektowych, a im droższe, tym później zostaną usunięte.

Jest to również poparte dowodami ze studium przypadku i przyczynia się do odpowiedzi na pytanie w następujący sposób: prawidłowe wykonanie wymagań zmniejszy liczbę błędów w systemie, a poprawienie błędów przed rozpoczęciem wdrażania będzie tańsze niż ich polowanie w dół, gdy implementacja już się rozpoczęła (lub gorzej, gdy system już został wysłany).

Drugie prawo Boehm'a: Prototypowanie (znacznie) zmniejsza wymagania i błędy projektowe, szczególnie w przypadku interfejsów użytkownika.

Jest to poparte kontrolowanymi eksperymentami w kontekście studenckim. Jedną z możliwych interpretacji jest to, że wymagania i fazy projektowania nie muszą być całkowicie oparte na dokumentacji i teoretyczne. Zamiast tego wykonywanie prototypów w ramach fazy wymagań i projektowania - co sprowadza się do spędzenia czasu i zastanowienia się nad wymaganiami - wpłynie na sukces projektu i czas wdrożenia.

Istnieje również wiele innych dowodów wskazujących na ten sam kierunek: poświęcenie czasu na przygotowanie do wdrożenia się opłaca w postaci mniejszego ryzyka i mniejszej szansy na przekroczenie harmonogramu z powodu niespodzianek. Chociaż pytanie nie dotyczyło testowania, prawidłowe przygotowanie również pozytywnie wpływa na testowanie.

Odniesienia do tych przepisów są następujące:

Prawo Glassa: Glass, RL: Software Runaways. Wnioski wyciągnięte z ogromnych awarii projektu oprogramowania. Upper Saddle River, NJ: Prentice Hall 1998

Pierwsze prawo Boehm: Boehm, BW, McClean, RK, Urfrig, DB: Pewne doświadczenie z automatycznymi pomocami w projektowaniu niezawodnego oprogramowania na dużą skalę. IEEE Trans on Software Engineering 1, 1 (1975), 125–133

Drugie prawo Boehm'a: Boehm, BW, Gray, TE, Seewaldt, T .: Prototypowanie a określenie: eksperyment z wieloma projektami. IEEE Trans on Software Engineering 10, 3 (1984), 290–302

Interesujące mogą być również następujące odniesienia: Endres, A. i Rombach, D. Podręcznik oprogramowania i inżynierii systemów. Obserwacje empiryczne, prawa i teorie. Seria Fraunhofer IESE na temat inżynierii oprogramowania. Addison Wesley, 2003.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.