Wie erstellen Sie einen Softwareprozess für ein Projekt?

13

Wie ich bereits in anderen Fragen erwähnt habe, hat das Projekt, an dem ich gerade arbeite, keinen Softwareprozess. Das bedeutet, dass keine Dokumentation (einschließlich Hardcopy-Anforderungen oder Spezifikationen) , keine Quellcodeverwaltung , keine Fehlerdatenbank , Fehler "behoben" (hoffentlich) und gleichzeitig neuer Code hinzugefügt werden und keine formellen Tester vorhanden sind - wir würden den Joel-Test nicht bestehen so schlimm, es ist nicht einmal lustig.

Gestern bat mich mein Vorgesetzter, ein Dokument darüber zu verfassen, wie diese Mängel behoben werden können. Beachten Sie, dass ich nur ein Praktikant bin, hier für 6 Monate. Ich werde Thanksgiving im November verlassen, um zur Schule zurückzukehren. Ich denke jedoch, dass ich dieses Projekt vielleicht in die richtige Richtung lenken kann, aber ich bin mir nicht sicher, wo ich überhaupt anfangen soll. Ich verwende derzeit CiteSeer und Wikipedia , um einige Artikel zu finden, die Softwareprozesse beschreiben und implementieren. Ratschläge, persönliche Erfahrungen oder Links zu Blogs, Artikeln, Wiki-Artikeln oder Ähnlichem sind jedoch sehr willkommen.

Thomas Owens
quelle
Good-Fast-Cheap-Process - Wenn ein Projekt ins Hintertreffen gerät, reduzieren Sie den Prozess.
ChuckCottrill
2
Wie ist das ausgegangen?
Robert Harvey

Antworten:

10

Ich würde vorschlagen, dass Sie sich mit Agiler Programmierung beschäftigen.

Es gibt viele Varianten, aber sie haben ein paar Gemeinsamkeiten:

  • Regelmäßige Überprüfung und Neupriorisierung der Funktionen.
  • Kontinuierliche Integration und automatisierte Komponententests.
  • Konzentrieren Sie sich auf die Kommunikation über die Dokumentation (in der Praxis bedeutet dies eine Dokumentation im Wiki-Stil, wenn Sie über riesige, unflexible Spezifikationen gehen, die im Voraus geschrieben wurden).
  • Flexible Schätzungen führen zu Abbranddiagrammen und Geschwindigkeitsmetriken.
  • Normale Prototypen, die über 200 Seitenspezifikationen mit Abmeldungen überprüft werden.
  • Qualität an der Quelle oder so nah wie möglich.
  • Regelmäßige Überprüfung der Stakeholder - eine Erweiterung des Kundenverständnisses.
  • Bringen Sie Software so schnell wie möglich auf den Markt (und verdienen Sie Geld).
  • Direkte Kommunikation so weit wie möglich.

Ein guter Anfang wäre MSF Agile oder Scrum .

Keith
quelle
7

Angesichts der Situation, dass Sie in 6 Monaten gegangen sind und das Team von keinem Prozess abgesehen hat, würde ich den Umfang Ihrer Einführung auf ein oder zwei Dinge beschränken, die in der Zeit, in der Sie dort sind, vernünftigerweise implementiert werden und Bestand haben können. Wenn ich es wäre, würde ich mir ein Versionsverwaltungs-Tool und einen Bug-Tracker ansehen.

Der Grund, warum ich dort anfangen würde, ist, dass es Ihnen helfen wird, eine Grundlinie für die aktuelle Leistung des Teams zu erstellen und möglicherweise wiederkehrende Probleme zu identifizieren. Prozessänderungen sind nett, aber dies sind grundlegende Grundelemente, die zuerst vorhanden sein sollten.


quelle
Ja, ich habe vor, den Umfang meiner Aktivitäten einzuschränken, aber ich möchte ihnen auch eine Roadmap überlassen, damit sie sich nicht fragen, was sie als nächstes tun sollen, insbesondere, wenn sich die Situation bessert.
Thomas Owens
@Thomas Owens Ich finde es lobenswert, dass Sie dem Team eine Roadmap hinterlassen möchten, nachdem Sie gegangen sind. Es ist jedoch unwahrscheinlich, dass jemand auf eine von einem Praktikanten erstellte Roadmap zurückgreift. Dies ist keine Reflexion über Ihre Fähigkeiten und Fertigkeiten. In diesem Fall würde ich so viel Mühe wie möglich darauf verwenden, die ersten Schritte einzuleiten. Unterschätzen Sie nicht die Anstrengungen, die erforderlich sind, um die Gewohnheiten und Prozesse eines vorhandenen Teams zu ändern. Tatsächlich kann der Versuch, in sechs Monaten sowohl die Quellcodeverwaltung als auch einen Bug-Tracker zu implementieren, mehr als zumutbar sein.
Ich denke, dass es getan werden kann. Dies ist ein Team von 5 Personen, ohne mich. Zwei sind Vollzeitentwickler, einer ist Teilzeitentwickler in diesem Projekt und einer in anderen Projekten, einer ist Manager und einer ist ein Marketingtyp. Beide hauptberuflichen Entwickler sind an Bord eines Prozesses und der Manager möchte Verbesserungen für die Leistung des Teams sehen. Es ist nicht so, als würde man sie gegen ihren Willen zwingen.
Thomas Owens
1

Wir verwenden Prince2 für die Prozesse des Projektmanagements und es funktioniert sehr gut. Ich würde jedoch vorschlagen, dass es für ein Unternehmen ohne Projektmanagement schwierig erscheint!

ColinYounger
quelle
1

Nur um die Ansichten einiger der oben genannten Teams widerzuspiegeln, werden Teams, die keine Struktur haben, besser zu einer agilen Struktur passen. Holen Sie sich noch heute die Quellcodeverwaltung. Fügen Sie Ihre Änderungen einfach in SVN ein und zeigen Sie einigen Entwicklern einen Unterschied, wenn Sie Fehler suchen. Beginnen Sie mit dem Hinzufügen von Revisionsprotokollen. Wenn sie die Vorteile und die Benutzerfreundlichkeit von SVN nicht erkennen können, sind sie zum Scheitern verurteilt.

Johnno Nolan
quelle
0

Lesen Sie diese Artikel über Continuous Integration für die .NET-Programmierung mit MSBuild, CruiseControl.NET, FxCop, NUnit, NCover und Subversion ...

Aus den Gräben der Softwareentwicklung

Zack Peterson
quelle
1
@Zack: Wir verwenden keine .NET-Programmierung. Ich bin auf der Suche nach allgemeinen Ratschlägen, die für jedes Projekt mit jedem Technologie-Stack verwendet werden können. Dinge wie die Auswahl eines Modells, die Implementierung dieses Modells und so weiter.
Thomas Owens