2010-07-01 8 views
5

Dies ist keine Programmierfrage per se, aber hier geht es. Ich bin Senior CS Undergraduate und habe diesen Sommer ein Praktikum bei einer mittelständischen Softwarefirma begonnen. Ich habe schon ein paar freie Jobs gemacht, aber es ist das erste Mal, dass ich offiziell (mehr oder weniger) als Softwareentwickler angestellt bin.Vorschläge zur Projektplanung?

Ich wurde gebeten, eine interne Website von Grund auf neu zu programmieren, um von separaten Teams im Unternehmen verwendet zu werden, und mir wurde viel Flexibilität beim Entwerfen gegeben. Und darin liegt das Problem: Wir hatten mehrere Meetings und Design-Reviews und jeder scheint eine Idee für ein neues Feature zu haben und sogar widersprüchliche Ideen, wie die Dinge funktionieren sollten.

Bisher hat mein erster Prototyp all das überlebt, was ich nicht erwartet hatte - aber ich wusste, dass ich ein solides Design hatte. Obwohl ich nicht hinter dem Zeitplan zurückgeblieben bin, schreitet die Arbeit wesentlich langsamer voran als ich es vorhergesagt habe. Eine Menge davon hat mit losen Spezifikationen und konstanten Features Anfragen und Änderungen zu tun.

Ich werde ein Alpha in ein paar Wochen bereitstellen, was ich dachte, wäre kein Problem, aber die Art, wie die Dinge laufen, bin ich nicht sicher, wie das ausgehen wird.

Hat jemand irgendwelche Ideen? Vielen Dank im Voraus

Antwort

6

Sie stellen eine zeitlose Frage zum (Software-) Projektmanagement. Es gibt Karrieren gemacht, Bücher zu diesem Thema zu schreiben.

Ich stimme generell mit rockinthesixstring auf diese.

Wenn Sie keinen effektiven Projektmanager haben, der die Anfragen der Benutzer filtern und ihre Erwartungen verwalten kann und "Nein" sagen kann, dann muss das Teil Ihrer Arbeit sein.

Manchmal ist es eine Kunst, nicht "nein" zu sagen. Manchmal kann man es eher wie folgt sagen: "Wie Sie im Zeitplan sehen, wird Version 1.1 nächste Woche Alpha. Die Feature-Liste für Version 1.2 ist bereits eingestellt. Ich werde Ihr neues Feature an den Anfang der Liste für 1.3 hinzufügen. Aber Wenn Sie möchten, kann ich ein Treffen mit den anderen Teams einberufen, um zu sehen, ob wir die 1.2-Funktionen neu priorisieren können. "

In Bezug auf widersprüchliche Ideen, wenn es keinen anderen "Entscheider" gibt, wird das auch Teil Ihres Jobs.

Verstehen Sie, dass nicht jeder ihren Weg bekommen wird.

Ohne einen Ansatz, der diese Art von Problemen anspricht, werden Sie einfach durch keine Maßnahme erfolgreich sein.

4

Ich würde beginnen, indem Sie in die Funktionen, die vereinbart wurden, sperren und legen Sie alle Feature-Anfragen in eine Art von Projektplanung Software (OnTime Vielleicht). Führen Sie dann die Alpha-Version mit den vereinbarten Spezifikationen aus, bevor Sie sich mit dem "Wir möchten" und den "Schnickschnack" beschäftigen.

2

Sie müssen Feature-Anforderungen priorisieren und auswählen, möglicherweise sogar einige, die Sie bereits akzeptiert haben.

2

Es hört sich an, als ob Produkteigentum nicht klar ist (wie bei internen Projekten mit mehreren Teams zu erwarten ist). Sie sollten wahrscheinlich irgendein Planspiel spielen. Wenn Sie mehrere Stakeholder haben, können Sie ihnen jeweils 50 Punkte geben, um über alle Features in einer Iteration abzustimmen. Sie als Entwickler entscheiden, wie groß jedes Feature ist. Die Features mit den meisten Punkten/Größe kommen in die Iteration. Wenn einige Teams wichtiger sind, geben Sie ihnen mehr Punkte. Sie sollten auch selbst einige Punkte ausgeben.

1

Ich möchte meine Zustimmung von James McLeods Beitrag zum Ausdruck bringen. Die einzige Rechtfertigung, die jemand braucht, um ein Feature zu haben, ist "Benutzer x könnte versuchen ...". Die Schwierigkeit besteht darin, die Widersprüche zwischen ihren Meinungen und denen anderer zu lösen. Die Funktion mit einer höheren "Priorität", wie sie von Ihrem Projektmanagementprozess zugewiesen wird, ist diejenige, die bei Bedarf auf Kosten der Wettbewerber implementiert wird. Bitten Sie die Leute, Funktionen vorzuschlagen, wegzugehen und etwas auf Papier zu schreiben, das die Gründe für das Feature und die Umstände erklärt sie denken, könnte seine Einbeziehung ausschließen. Lassen Sie alle anderen sehen, welche Einschränkungen sie denken, ihre Vorgehensweise könnte helfen, eine Entscheidung Deadlock zu brechen. Die Eigenschaft, deren Fall gründlicher angegeben wird, "gewinnt".