Czy możliwe jest tworzenie iteracyjnej dokumentacji i czy zapewnia ona skuteczną dokumentację?

11

Mam projekt na uniwersytet, o którym nie zacznę od razu, ale zastanawiam się nad nim dość długo. Rozumiem, że rozwój projektu uniwersyteckiego nie jest jak przemysł (obecnie sam jestem stażystą), więc sytuacja, którą w tej chwili wskażę, będzie prawdopodobnie wydawać się absurdalna dla prawdziwych programistów. ^^ ”

Sam projekt wymaga od nas udokumentowania dużej części naszej pracy. Oprócz dostarczenia kodu, który wlicza się do niektórych znaków, musimy dostarczyć dokumenty, w tym:

  • Dokument analizy wymagań
  • Plan projektu
  • Planowana lista przypadków użycia, modeli obiektowych i dynamicznych oraz testów akceptacyjnych
  • Dokumentacja procesu testowania i jego powodzenia
  • Niektóre inne dyskusje i analizy wykorzystania czasu itp.

Produkty te należy dostarczyć w następujący sposób:

  • Najpierw RAD
  • Następnie plan projektu, wykorzystanie przypadków, modeli i testów (około 3 tygodnie później)
  • Na koniec dokumentacja aktualnego programu, procesu testowania itp. + Sam program (około 5 tygodni później)

Z tego, co rozumiem, jest to naprawdę ukierunkowane na podejście do projektu w stylu Wodospadu. Jedynym problemem (moim zdaniem) jest to, że jest to projekt uniwersytecki, a studenci już mają wystarczającą presję, ponieważ próbują opracowywać projekty pod koniec semestru w ciągu tygodnia projektu. Naprawdę nie chcę kodować / opracowywać / testować wszystkiego pod koniec semestru, kiedy będę panikować z wieloma innymi ocenami, z którymi mam do czynienia.

Chciałbym przynajmniej spróbować wykonać jakiś iteracyjny cykl programowania, co oznacza, że ​​możemy zacząć wcześnie kodować / prototypować, mieć ciągły cykl rozwoju, który nie koncentruje się na robieniu wszystkiego w ostatniej chwili i nie ma tak dużej presji na koniec semestru, aby zakończyć ten projekt. A teraz pojawia się moje aktualne pytanie:

  • Czy mogę jakoś pogodzić konieczność dostarczenia całej dokumentacji z szybkim, iteracyjnym / prototypowym cyklem programowania?
  • Czy istnieją strategie generowania dokumentacji w sposób iteracyjny?
  • Czy jestem całkowicie nierozsądny, pytając o to i oczekując, że będzie to możliwe na uniwersytecie?

Rozumiem również, że to pytanie jest niezwykle zlokalizowane, dlatego chciałbym zadać te same pytania, które zadałem powyżej w odniesieniu do branży, i czy wiele z tych problemów, które napotykają zwinne procesy, są różne dla każdego zespołu lub firma.

W każdym razie przepraszam za to, jak długo to trwa, a jeśli skończyłeś czytać do końca, dziękuję! Gdybyś mógł poświęcić czas na odpowiedź, byłbym bardzo wdzięczny! Dziękuję Ci!

blahman
źródło
2
To nie odpowiada, więc nie podam tego jako odpowiedzi. Ale nie rób tego . Częścią tego, czego chce twój instruktor, jest uporządkowanie myślenia i zbudowanie umiejętności planowania i omawiania systemu, którego jeszcze nie napisałeś. Są to bardzo dobre umiejętności i bardzo dobrze sprzedają się po kilku latach pracy w branży programistycznej.
Ross Patterson
W porządku Jeśli jednak mogę zapytać, wydaje się, że niektóre metody planowania w celu uzyskania wymagań i konceptualizacji rozwiązań klienckich obejmują prototypowanie możliwego produktu - czy to dobry sposób na ewolucję lub wsparcie na etapie planowania i dokumentacji? Czy to tylko nieuzasadnione pragnienie?
blahman,
2
Jasne, prototypowanie jest ważne. W rzeczywistości, w dużej firmie, może się zdarzyć, że budujesz prototyp, aby uzasadnić kapitalizowane badania i rozwój (jest to kwestia księgowa, a nie techniczna), nawet jeśli nie masz zamiaru używać prototypu jako podstawy dla ostatecznego systemu. W rzeczywistości najlepsze prototypy to takie, które dostarczają wskazówek, a następnie są odrzucane. Gdybym miał nikiel dla każdego „wyprodukowanego” prototypu, który kilka lat później wymagałby całkowitej przeróbki, miałbym dużo niklu.
Ross Patterson

Odpowiedzi:

5

Główny problem (mam podobny problem z moją pracą) polega na tym, że jeśli „Proces” wymaga dostarczenia określonych artefaktów w określonym czasie i nikt nie może zakwestionować wszechmogącego „Procesu”, to jeśli spróbujesz, straci! Nie jest to tylko prosta kwestia, że ​​jest to lepszy sposób (którym jest iteracyjny rozwój dokumentacji).

Musisz więc pracować w ramach tego procesu, ale znajdź sposób pracy tak, jak chcesz. Na przykład, czy Twój proces umożliwia modyfikację dokumentu po jego przesłaniu? Jeśli nie, to nie jest możliwy rozwój iteracyjny. Jeśli tak, musisz pomyśleć o koszcie dostawy (pod względem czasu, wiarygodności itp.) I zarządzać tym kosztem. Jeśli na przykład jest to kopia pliku i nic więcej, wybierz ją. Jeśli (tak jak ja) jest to przegląd, wydanie poprawkowe, wpływa na dziesiątki ludzi i kosztuje tysiące dolarów, to zastanów się dobrze i upewnij się, że nowy dokument naprawdę wnosi wartość dodaną.

Powszechnym sposobem pracy jest absolutnie niezbędny, minimalny dokument, który na początku spełnia potrzeby „Procesu”, a następnie końcowa aktualizacja „w wersji wbudowanej”, która nie tylko odzwierciedla rzeczywistość, ale zawiera szczegółowe informacje w razie potrzeby i jest krótkie, gdzie kod mówi sam za siebie.

mattnz
źródło
Dzięki za wkład! Zastanawiałem się trochę nad tym, co powiedziałeś i jak mogę zastosować to do moich własnych projektów. Z dużą ilością naszej dokumentacji powinniśmy mieć klienta do konsultacji, mimo że musimy przesłać termin i nie wprowadzać żadnych znaczących zmian. Nadal jednak możliwe jest iteracyjne opracowywanie przez klienta? Mam na myśli, że to jest sens rozwijania się cyklicznie, prawda?
blahman,