Jak tworzysz proces oprogramowania dla projektu?

13

Jak pisałem w innych pytaniach tutaj, projekt, nad którym teraz pracuję, nie ma procesu programowego. Oznacza to, że nie ma dokumentacji (w tym wymagań lub specyfikacji drukowanej) , nie ma kontroli źródła , bazy danych błędów, błędy są „naprawiane” (miejmy nadzieję) i nowy kod jest dodawany w tym samym czasie, a także żadnych formalnych testerów - nie zdalibyśmy testu Joela tak źle, że to nawet nie jest śmieszne.

Wczoraj mój kierownik poprosił mnie o napisanie dokumentu o tym, jak zacząć usuwać te niedociągnięcia. Pamiętaj, że jestem tylko stażystą, tutaj przez 6 miesięcy. W listopadzie wyjeżdżam w Święto Dziękczynienia, aby wrócić do szkoły. Myślę jednak, że być może uda mi się doprowadzić ten projekt we właściwym kierunku, ale nie jestem pewien, od czego zacząć. Obecnie używam CiteSeer i Wikipedii, aby znaleźć artykuły, które opisują procesy oprogramowania i je wdrażają, ale wszelkie porady, osobiste doświadczenia lub linki do blogów, artykułów, artykułów wiki lub cokolwiek innego byłyby bardzo mile widziane.

Thomas Owens
źródło
Dobry-szybki-tani-proces - gdy projekt się opóźnia, spędź ten proces.
ChuckCottrill
2
Jak to się potoczyło?
Robert Harvey

Odpowiedzi:

10

Proponuję zajrzeć do programowania Agile.

Istnieje wiele wariantów, ale zwykle mają one kilka wspólnych cech:

  • Regularny przegląd i zmiana priorytetów funkcji.
  • Ciągła integracja i zautomatyzowane testy jednostkowe.
  • Skoncentruj się na komunikacji nad dokumentacją (w praktyce oznacza to dokumentację w stylu wiki, gdy przeglądasz ogromne, nieelastyczne specyfikacje napisane wcześniej).
  • Elastyczne szacunki skutkujące wykresami wypalenia i pomiarami prędkości.
  • Regularne prototypy, które są sprawdzane na ponad 200 specyfikacjach stron z podpisami.
  • Jakość u źródła lub jak najbliżej.
  • Regularna kontrola interesariuszy - rozszerzenie zrozumienia Twoich klientów.
  • Wprowadzaj oprogramowanie na rynek (i zarabiaj) jak najszybciej.
  • Bezpośrednia komunikacja w jak największym stopniu.

Dobrym miejscem na początek byłoby MSF Agile lub Scrum .

Keith
źródło
7

Biorąc pod uwagę sytuację, nie ma cię w ciągu 6 miesięcy, a zespół nie rozpoczynając żadnego procesu, ograniczyłbym zakres tego, co wprowadzasz, do jednej lub dwóch rzeczy, które można rozsądnie wdrożyć i utrzymać w czasie, gdy tam jesteś. Gdybym to był ja, rzuciłbym okiem na narzędzie kontroli źródła i narzędzie do śledzenia błędów.

Powodem, dla którego chciałbym zacząć, jest to, że wprowadzenie tych narzędzi pomoże ci ustalić punkt odniesienia dla bieżącej wydajności zespołów i ewentualnie zidentyfikować powtarzające się problemy. Zmiany w procesie są przyjemne, ale są to podstawowe elementy fundamentalne, które powinny być na pierwszym miejscu.


źródło
Tak, planuję ograniczyć zakres tego, co robię, ale chcę też zostawić im mapę drogową, aby nie zastanawiały się, co dalej, zwłaszcza jeśli wszystko pójdzie lepiej.
Thomas Owens
@Thomas Owens Myślę, że to godne pochwały, że chcesz zostawić zespołowi mapę drogową po twojej nieobecności. Jednak jest mało prawdopodobne, aby ktokolwiek odniósł się do mapy drogowej zbudowanej przez stażystę. To nie jest refleksja na temat twoich umiejętności i umiejętności. W związku z tym włożyłbym tyle wysiłku, ile tylko mogłem, w postawienie pierwszych kroków. Nie lekceważ wysiłku, jaki trzeba podjąć, aby zmienić nawyki i procesy istniejącego zespołu. W rzeczywistości próba uzyskania zarówno kontroli źródła, jak i narzędzia do śledzenia błędów w ciągu sześciu miesięcy może być więcej niż można to zrobić rozsądnie.
Myślę, że da się to zrobić. To zespół 5 osób, z wyłączeniem mnie. Dwóch jest programistami pełnoetatowymi, jeden pracuje w niepełnym wymiarze godzin w tym projekcie, a drugi w innych projektach, jeden jest menedżerem, a drugi ma charakter marketingowy. Obaj programiści pracujący w pełnym wymiarze czasu pracują nad procesem, a menedżer chce zobaczyć poprawę wydajności zespołu. To nie tak, że jest zmuszane wbrew ich woli.
Thomas Owens
1

Używamy Prince2 do procesów zarządzania projektami i działa bardzo dobrze. Sugerowałbym jednak, że byłoby to kłopotliwe dla firmy bez zarządzania projektami!

ColinYounger
źródło
1

Aby powtórzyć sentyment niektórych z powyższych kwestii, te zespoły, które nie mają żadnej struktury, lepiej pasują do zwinnej struktury. Uzyskaj kontrolę źródła już dziś, po prostu zacznij wprowadzać zmiany w SVN i pokaż niektórym programistom różnicę podczas polowania na błędy. Rozpocznij dodawanie dzienników wersji. Jeśli nie widzą korzyści i łatwości korzystania z SVN, są skazani na zagładę.

Johnno Nolan
źródło
0

Zapoznaj się z tymi artykułami na temat ciągłej integracji programowania .NET przy użyciu MSBuild, CruiseControl.NET, FxCop, NUnit, NCover i Subversion ...

Z rowów programistycznych

Zack Peterson
źródło
1
@Zack: Nie korzystamy z programowania .NET. Szukam ogólnych porad, które można wykorzystać w każdym projekcie z wykorzystaniem dowolnego stosu technologii. Rzeczy takie jak wybór modelu, wdrożenie tego modelu i tak dalej.
Thomas Owens