Problem-Based Project Planning in Postmodern Software Engineering

Embracing change is in these days the preferred mode of operating software development projects as to meet the pressure of time-to-market. In order to stick to deadline, agile project practices have become the means of first choice, because they implement a time-boxed software delivery process, which anticipates the emergence of requirements. The team is at the heart of each successful agile software project, equipped with all encompassing authority to decide on the scope of requirements to be done within the time available. When it comes to planning the delivery of working software on deadline, agile software development culture demands to Trust the team.

Coincidentally or not, this agilist credo ignores the emergence of teams. It conceals the need for the team to know its speed in order to reach consensus on a sound work plan, one which satisfies the software product requirements in the time frame set for the project. Speed is team-unique, since it depends on the team members perception of the work volume they can accomplish within a given project timebox. Since different teams have different methods and experiences for justifying their work volume, speed is not comparable among them. This becomes a dilemma on projects with frequent membership turnover and projects at scale calling for a team of teams.

The efficacious planning of time-boxed software projects depends on the team members way to share the knowledge of establishing consistent size estimates for a recognizable scope of software product requirements that they use as the basis for measuring speed. The principle idea followed in this dissertation is to make use of patterns as a common point of reference reusable by individuals and teams for adjusting their know-how and comparing their achievements. On these grounds, it introduces pre-defined units for reproducibly determining the scope and speed of software projects. It leverages the intertwining of patterns from problem analysis and solution design, for controlling project progress with respect to satisfied software product requirements. The resulting pattern-based units for requirements size estimating and work planning are integrated to an agile project process framework to bring them into action.

This work contributes to the predictability of software project plans, and thus the planning for value delivery, from both the perspective of project management and software engineering. It introduces a shareable, problem-based instrument that operates on reusable pattern practices, for empowering project teams to enforce change control in the presence of emerging product requirements or team memberships, and to trust their efficacy by a problem-based speed benchmark. In this context, the proposed approach sustains the project team in justifying their prioritization of the project plan, made possible by traceable requirements dependencies, which reflect the software product life-cycle, and thus are eminent to stabilize the leeway in decision making for managing the software project. In addition, it provides the project team with exploratory design alternatives, using instant models for recognizable software product requirements, which enable them to fast-track development of the software product.

Agile Softwareentwicklung verspricht, den heutigen Markterfordernissen von sich stetig ändernden Produktanforderungen und dem daraus resultierenden Druck immer kürzer werdender Produkteinführungszeiten geeignet Rechnung zu tragen. Erwarte Veränderungen lautet eine Maxime agiler Projektmanagementpraxis, Vertraue dem Team eine andere. Im Vordergrund steht die termingerechte, in der Regel nur wenige Arbeitstage umfassende Lieferung einsatzbereiter Software. Dabei obliegt es dem Projektteam zu entscheiden, welche Produktanforderungen es innerhalb des zur Verfügung stehenden Projektzeitfensters realisieren wird.

Um einen machbaren Projektplan zu erstellen, der die termingerechte Bereitstellung eines gewissen Umfangs gewünschter Softwarefunktionalität zusichert, muss das bewältigbare Arbeitsvolumen eines Projektteams für ein gegebenes Projektzeitfenster bekannt bzw. die erwartbare Geschwindigkeit der Projektdurchführung geeignet abzuschätzen sein. In kleinen, eingespielten Teams, wie sie für agile Softwareentwicklungsprojekte typisch sind, lässt sich ein solches Geschwindigkeitsmaß in der Regel händisch, aber zweckerfüllend erzeugen. Mit zunehmender Projektgröße oder bei volatilen Projektmitgliederkonstellationen, sind diese teambestimmten Leistungswerte jedoch nicht mehr anwendbar sprich vergleichbar, was eine informierte und koordinierende Projektplanung erschwert.

Die wirksame Planung zeitgesteuerter Softwareprojekte hängt entscheidend von dem geteiltem Wissen ab, das unterschiedliche Projektteams gleichermaßen dazu nutzen, um die zu realisierenden Softwareanforderungen einheitlich zu kategorisieren und deren funktionalen Umfang mittels vergleichbaren Maßzahlen konsistent zu beurteilen. Deshalb verfolgt diese Dissertation die Idee, Muster zur Schaffung kombinierter Softwareentwicklungs- und Softwarebewertungs-Einheiten einzusetzen, die von Einzelpersonen und Teams als gemeinsamer Bezugspunkt wiederverwendet werden können, um den Umfang und die Geschwindigkeit von Softwareprojekten reproduzierbar zu bestimmen. Um diese musterbasierten Projektplanungseinheiten herzustellen, wird die Verknüpfung von Problemanalyse und Lösungsentwurf auf Basis von Mustern innerhalb früher Phasen des Softwareprojektmanagements weiterentwickelt, und durch die Funktionspunktanalyse als Metrik für eine standardbezogene Bestimmung von Softwareprodukt- und damit assoziierbarer Projektkennzahlen erweitert.

Wiederverwendbare Projektplanungseinheiten, wie sie diese Dissertation einführt und welche die Softwaretechnik- und Projektmanagement-Sicht auf wiederkehrende Softwareprobleme und deren mögliche Lösungen in sich vereinen, dienen der Anpassbarkeit und Prognosefähigkeit von Softwareprojektplänen sowie der damit zusammenhängenden Objektivierung erreichbarer Wertschöpfung. Hierfür wird ein musterbasierter Projektplanungsprozess, mit dessen Hilfe sich ein vordefinierter Umfang gewünschter Softwarefunktionalität nachvollziehbar spezifizieren lässt, in ein agiles Projektprozessrahmenwerk integriert und seine Anwendung und sein Beitrag zur Stabilisierung der Planung von Softwareentwicklungsprojekten anhand mehrer Fallstudien vorgestellt. Projektteams werden auf diese Weise in die Lage versetzt, flexibel auf Veränderungen zu reagieren und sozusagen aus dem Stand heraus Varianten eines realisierbaren Projektplans zu erzeugen. Die Wirksamkeit gewählter Planungsalternativen wird mittels Funktionspunkten als ein teamübergreifendes da problembezogenes Geschwindigkeitsmaß bemessbar und vergleichbar. Der Softwarelebenszyklus wird zum Aufbau nachvollziehbarer Anforderungsabhängigkeiten zwischen den einzelnen Planungseinheiten verwendet. Damit werden diese für die bedarfsorientierte Priorisierung des Projektplans systematisch berücksichtigbar und tragen somit zu dem Erfordernis beschleunigter Softwarelieferung bei.

Zitieren

Zitierform:
Zitierform konnte nicht geladen werden.

Rechte

Nutzung und Vervielfältigung:
Alle Rechte vorbehalten