Software-Lebenszyklus-Methoden für Ein-Mann-Teams [geschlossen]

15

Ich baue ein Softwaresystem für mein Master-Projekt auf und suche nach Empfehlungen für bestimmte Methoden, die für ein "Ein-Mann-Team" geeignet sind ...

user23871
quelle
1
Ich bin froh, dass Sie diese Frage gestellt haben. Ich bin in diesem Moment in einer solchen Situation. Ich habe ein Zwei-Mann-Team ohne Prozess übernommen und unter anderem die Quellcodeverwaltung, die kontinuierliche Integration und die testgetriebene Entwicklung eingeführt. Ich selbst frage mich, was ich tun kann, um die Effizienz zu verbessern und wie ich am besten vorbereitet bin, wenn ich irgendwann Leute unter mir einstellen darf.
maple_shaft

Antworten:

11

Ich verdiene meinen Lebensunterhalt mit einer Ein-Mann-Software, die meistens von zu Hause aus arbeitet. Deshalb bin ich gespannt, was andere dazu zu sagen haben.

Hier sind ein paar Dinge, die mir wichtig waren:

  • Laut Denis ist die Quellcodeverwaltung von entscheidender Bedeutung - SVN ist jedoch nicht die einzige Option. Ich benutze meistens Perforce und Git ist eine gute Alternative. Ich mag ein "Mainline" -Entwicklungsmodell. Auf diese Weise kann ich in Code-Zweigen experimentieren, sie bei der Arbeit in der Hauptzeile zusammenführen und Junk-Mails verschicken, wenn dies nicht der Fall ist.
  • Ich benutze ein Notizbuch für Notizen und ein Programm zum Verfolgen von Aufgaben. Derzeit benutze ich Redmine für Letzteres; Vorher habe ich Fogbugz benutzt. Ich mag Redmine auch, weil es ein wirklich gutes eingebautes Wiki hat, das ich für dauerhafte Notizen und Links zu wichtigen Seiten verwenden kann.
  • Es ist auch wichtig, zu verfolgen, was ich erledige, und mir angemessene Grenzen zu setzen, damit ich genug erledige, ohne auszubrennen - siehe unten.

Meine anderen Techniken haben sich im Laufe der Jahre weiterentwickelt und ich optimiere sie je nach Projekt und Kunde. Die Leute bezahlen mich für das Arbeiten mit Code, ohne mit Prozessen herumzublödeln, also versuche ich, den Prozess so gering wie möglich zu halten und aus den Gesichtern meiner Kunden herauszukommen. Aber ich finde, dass einige Agile-Techniken für mich wirklich gut funktionieren:

  • Einer meiner derzeitigen Kunden neigt dazu, große Features für die Implementierung zu verwenden, und nervt mich erst, wenn sie fertig sind. Ich finde es großartig, an denen in Scrum-Sprints zu arbeiten. Ich vermute, dass das für ein Master-Projekt funktionieren kann, wenn Ihr Forschungsberater kein Kontrollfreak ist.
  • Mein anderer aktueller Kunde neigt dazu, mehr Notfälle zu haben, bei denen er "aufhört, daran zu arbeiten und das zu beheben". Ich habe das mit Scrum versucht und nach einem Sprint aufgegeben. Also mache ich das mit Kanban und es funktioniert viel besser.

Das andere Problem ist, dass Sie niemanden haben, der Ihnen sagt, was Sie wann tun sollen, ob Sie genug erledigt haben oder wann Sie die Arbeit beenden müssen, weil Sie genug getan haben - also müssen Sie es tun das für dich. Ich persönlich bevorzuge Scrum, weil ich meine Sprintziele verfolgen kann. Bei Kanban-Projekten kann ich nur nachverfolgen, wie viel Zeit ich aufbringe, aber das gefällt mir nicht so gut wie etwas, das eher auf Zielen basiert.

Einige meiner Freunde schwören auf Pomodoro, um sich auf ihre Aufgaben zu konzentrieren und die persönliche Leistungsfähigkeit zu verfolgen, und ich denke darüber nach, es auszuprobieren.

Ich habe auch ein formelles Verfahren, um meinen Kunden Code freizugeben, um sicherzustellen, dass sie den richtigen Code erhalten, aber das liegt wahrscheinlich außerhalb des Rahmens, nach dem Sie fragen.

Bob Murphy
quelle
3

Benutze vor allem SVN, versioniere alles. Für die Nachverfolgung eignet sich Notebook für einfachere Projekte. Bei Bedarf stehen Ihnen viele kostenlose Anwendungen zur Nachverfolgung von Aufgaben und Fehlern zur Verfügung (Redmine ist cool). Agile / XP / Continuous Integration / andere wären meiner Meinung nach ein wenig übertrieben.

Denis Biondic
quelle
3

Abgesehen vom Personal Software Process habe ich nicht viel über formale Prozessmodelle herausgefunden, die für die Verwendung durch einen einzelnen Entwickler entwickelt wurden. Die PSP ist ziemlich umfangreich in Dokumentation und Papierkram (jedenfalls in ihrer Rohform), ohne viel zu sagen für bestimmte Techniken bei der Durchführung von Arbeiten (stattdessen konzentriert sich die PSP auf die Datenerfassung, um Bereiche für Verbesserungen zu finden), aber es ist ein Anfang Punkt für die Entwicklung eines persönlichen Prozesses, den Sie für kleine bis mittlere Projekte verwenden können.

Ich denke, die beste Vorgehensweise wäre, einfach einige entsprechend Ihren Anforderungen und dem Projekt ausgewählte, allgemein akzeptierte Best Practices aus einer Reihe von Prozessmodellen zu befolgen. Informieren Sie sich über Methoden zum Nachverfolgen der geleisteten Arbeit / verbleibenden Arbeit, zum Verwalten von Anforderungen, zur Versionskontrolle, zum Testen (insbesondere von Einheiten und Abnahmen), zur kontinuierlichen Integration, zu Codierungsstandards usw. Wenn nicht, empfehle ich, Code Complete und The Pragmatic Programmer zu lesen und ihre Tipps zu üben.

Das Wichtigste an der individuellen Arbeit ist, dass Sie, abgesehen von den Einschränkungen, die Ihnen von außen auferlegt werden, alles selbst bestimmen. Sie müssen niemanden unterbringen, der an Ihrer Seite arbeitet, so dass es einfacher ist, Techniken auszuwählen, mit denen Sie so effizient wie möglich arbeiten können. Im Laufe der Jahre haben Sie wahrscheinlich herausgefunden, wie Sie am besten arbeiten, und das wäre ein guter Ausgangspunkt. Wenden Sie dann zusätzlich bekannte "Best Practices" an, um Ihre Fähigkeiten und Techniken zu verbessern.

Thomas Owens
quelle
1

Der Typ fragt nach bestimmten Methoden und die Leute antworten auf "Use X / Y Software". Ist NICHT eine Frage der Tools, es gibt tatsächlich viele Methoden und es scheint noch keinen Validierungsbericht für sie zu geben: Agil, Iterativ, Spiral, Wasserfall, XP, V-Modell, TDD.

user27614
quelle
Das Wichtigste ist, dass der Großteil der Forschung auf die Zusammenarbeit mit Teams gerichtet ist. Nach meinem besten Wissen wurde nur die PSP für die Verwendung durch einen einzelnen Techniker entwickelt. Und selbst innerhalb dieses Bereichs konzentriert sich das PSP darauf, festzulegen, wie Daten nachverfolgt werden sollen, um Verbesserungsbereiche zu identifizieren, und bietet nur einige allgemeine Aufgaben, die zur Verbesserung der Softwarequalität beitragen können, ohne Angaben dazu, wie diese Aufgaben auszuführen sind.
Thomas Owens