Benötigen Sie einen geeigneten Softwareentwicklungsprozess und Paradigmen für sehr kurzfristige Projekte

Ich muss eine Art Fallstudie zur Anwendung einer Softwareentwicklungsmethodik durchführen. Der Fokus liegt eher auf dem Bericht, der meine Erfahrungen mit dem Prozess dokumentiert.

Ich habe nur noch 16 Tage Zeit, um das Projekt durchzuführen, und ich habe ein 6-köpfiges Team. Wir arbeiten an der Verbesserung einer bestehenden Android-App, die in Java geschrieben ist. Nur 4 Mitglieder beherrschen Java (2 in Android UI, 1 im Forschungs-Backend und 1 in beiden) mit unterschiedlichem Fachwissen. Sie können etwa 20 Stunden pro Woche aufwenden. Es gibt ein paar Datenerfassungsaufgaben und statistische Aufgaben, die die anderen beiden besetzen. Mit dem Forschungs-Backend ist eine gewisse Unsicherheit verbunden, da es sich um eine ML-Aufgabe handelt.

Die App muss nicht produktionsbereit sein, sollte aber demonstrierbar sein. Bitte schlagen Sie einige Paradigmen vor, die unter diesen Bedingungen verwendet werden können, damit ich herausfinden kann, was für uns funktionieren würde.

Ähm ... ein paar ausgefallene Begriffe für meinen Bericht wären nützlich :)

Hallo Bug Killer, ich denke, für deine Frage zu Entwicklungsprozessen solltest du besser auf Software Engineering schauen .
Hallo Bug, willkommen bei PMSE! Ich glaube, Ihre Frage könnte bearbeitet werden, um sie allgemeiner zu gestalten (und möglicherweise mehr Menschen in einer ähnlichen Situation zu helfen), anstatt sich auf die Struktur Ihres Teams zu konzentrieren. So wie es derzeit aussieht, klingt es ein wenig zu spezifisch. Vielen Dank!

Antworten (1)

Schlagwort-Bingo

Scrum, Kanban, XP, nachhaltiges Tempo, Pair Programming, Spike

(Diese Liste ist bei weitem nicht vollständig, aber da Sie nur noch 16 Tage Zeit haben, möchte ich mich auf einige wenige konzentrieren, die einfach zu recherchieren und umzusetzen sind.)

Einzelheiten

Scrum/Kanban

Beides sind Teammanagementprinzipien , die sich auf das Management von Prozessen konzentrieren, die nicht im Voraus geplant werden können (wie Software- oder Prototypenentwicklung).

Vorteile: Flexibilität in einem Umfeld mit sich ändernden /unklaren Anforderungen oder Prioritäten.

XP (eXtreme-Programmierung)

XP ist eine Reihe von Tools, die zur Verbesserung des Arbeitsablaufs von Softwareentwicklungsteams verwendet werden, obwohl die meisten auch auf andere Kreativteams angewendet werden können .

Vorteile: Verbesserungen des gesamten Prozesses der Zusammenarbeit für ein kreatives Team.

Ein einhaltbares Schritttempo

Ein in XP verwendeter Begriff ist nachhaltiges Tempo, was im Grunde bedeutet, dass Sie nicht mehr Stunden investieren, als Sie lange durchhalten können. dh brennen Sie das Team nicht mit Überstunden bis zum Maximum aus.

Vorteile: Aufrechterhaltung der Moral ; empfundenen Druck beseitigen; Erhöhung der wahrgenommenen(!) Berechenbarkeit .

Paar-Programmierung

Ein weiteres Tool von XP, Pair Programming, ist das Prinzip , Wissen in einem Team zu verteilen, indem Mitglieder paarweise an einem neuen Problem/mit einem neuen Tool arbeiten, wobei ein Mitglied des Paares bereits Erfahrung mit dem Thema hat und das andere dazulernen soll aus dieser Erfahrung . Auch dies beschränkt sich nicht auf das Programmieren und wird daher oft nur als „Pairing“ bezeichnet.

Vorteile: Einfache (ich möchte sagen, mühelose) Verteilung von Wissen und Fähigkeiten im gesamten Team; bessere Galvanisierung des Teams .

Spitze

Dies ist ein Scrum-Begriff für kleine Forschungsprojekte . Ein Schlüsselmerkmal von Spikes ist eine Zeitbox . Das Team reserviert eine Anzahl von Stunden/Tagen für die Recherche und verwendet dann diese Zeit darauf, aber nicht mehr (oder weniger, es sei denn, es ist sicher, dass die Frage zufriedenstellend beantwortet wird).

Vorteile: Forschungsaufgaben werden nicht außer Kontrolle geraten und die Gesamtzeit des Projekts aufblähen oder andere Teile blockieren.

Sei vorsichtig

Es gibt auch Nachteile, wie bei jedem Prozess- oder Managementparadigmenwechsel. Widerstand zur Aenderung; empfundene zusätzliche Arbeit, nur um den Prozess am Laufen zu halten; persönliche Vorlieben/Abneigungen; eine lange, aber bekannte Liste.