Ja, das ist ein Thema, das von den meisten Auszubildenden nicht gemocht wird. Die meisten möchten coden, also ans Eingemachte gehen. Aber dieser Teil gehört auch dazu und ist ein Punkt im ersten Teil der Prüfung.
Was ist Projektmanagement, und warum brauche ich das als Entwickler/in?
rojektmanagement bezeichnet das Initiieren, Planen, Steuern, Kontrollieren und Abschließen von Projekten. Als Entwickler benötigt man Projektmanagement, um Ziele effizient zu erreichen, Ressourcen optimal zu nutzen und die Qualität der Arbeitsergebnisse zu sichern.
Oft fragt der Vorgesetzte, wie lange an einem Projekt gearbeitet werden muss, damit der Kunde unter anderem einen Preis erfahren kann. Hier sind einige grundlegende Dinge zu bedenken, auch wenn der Chef sofort eine Antwort haben möchte:
- Zielorientierung: Klare Definition der Projektziele und Ausrichtung aller Aktivitäten darauf. Bei Kundenbestellungen ist es hier wichtig ein Pflichtenheft mit dem Kunden auszuarbeiten. Ansonsten sagt der Kunde das er noch einige weitere Funktionen hätte. Nachdem mir das 2 mal Passiert ist, verlangte ich immer ein Pflichtenheft, ansonsten nimmt der Kunde nicht nur ein Finger sondern die ganze Hand. (Aber nicht alle Kunden)
- Planung: Detaillierte Planung aller Projektphasen, Ressourcen und Zeitpläne. Eine detaillierte Planung empfand ich immer am schwierigsten. Man macht sich Gedanken über die einzelnen Phasen und Zeitpläne (bei mir waren die Ressourcen, zum arbeiten, sowie die nötige Hardware beim Kunden vorhanden, also brauchte ich mir keine Gedanken um Ressourcen machen, nur wenn ich mit einem Mitarbeiter zusammenarbeiten musste -bei einem Projekt ist Arbeitskraft auch eine Ressource!-)
- Kommunikation: Offene und regelmäßige Kommunikation zwischen allen Beteiligten. Aus eigener Erfahrung weiß ich das der Entwickler gerne sagt: „Bald ist das Projekt fertig.“ Das zählt nicht! Bei Probleme oder Verzögerungen, werden diese allen Beteiligten angesprochen, bei Kundenaufträgen natürlich auch dem Kunden, er wartet schließlich ungeduldig.
- Risikomanagement: Identifikation, Bewertung und Steuerung von Risiken. Risiken müssen bedacht werden, sowohl eigene Fehler während der Programmierung als auch unvorhergesehene Situationen, wie z.B. höheres Telefonaufkommen (bei mir öfteres passiert). Daher habe ich z.B. immer großzügig meine Projekte geplant. Wenn ich z.B. für die Programmierung 3 Tage einplante publizierte ich 1,5 Wochen. Dann ist die Freude groß wenn es früher fertig wird und dadurch günstiger.
- Qualitätsmanagement: Sicherstellung, dass die Projektergebnisse den festgelegten Qualitätsstandards entsprechen. Im Endeffekt heißt es testen, testen, testen und nochmals testen. Dies ist auch teil des Projektmanagement. Kein Kunde ist glücklich wenn z.B. andere Funktionen nicht mehr gehen oder irgendwas fehlerhaft berechnet wird.
- Flexibilität: Anpassungsfähigkeit an Veränderungen und unvorhergesehene Ereignisse. Trotz des angesprochenen Pflichtenheftes kann es passieren, das der Kunde, oder der Entwickler etwas nicht beachtet hat und eine wichtige Funktion vergessen hat. Oder der Kunde doch noch Änderungen möchte und dafür bezahlt. Oder es kann auch passieren das Gesetztes Änderungen auftreten welche eine Korrigation des Programmes unvermeidbar machen.
Methoden des Projektmanagement
Um ein Projekt zu managen, ist es nötig die Struktur des Unternehmens zu kennen einige Entwicklungsfirmen haben eine festgelegte Methode andere überlassen den Projektplaner die Methodenauswahl und wieder andere möchten nur eine Pi mal Daumen Abschätzung. Unabhängig dazu ist die Wahl der Methode oftmals an der Größe und Komplexität des Projektes, sowie den spezifischen Anforderungen gekoppelt.
- Wasserfall-Methode: Ein sequentielles Vorgehensmodell, bei dem jede Phase des Projekts nacheinander abgeschlossen wird. Geeignet für Projekte mit klar definierten Anforderungen. Dies ist z.B. bei Kundenaufträge wo nur ein Addon oder Modul benötigt wird.
- Agiles Projektmanagement: Ein iterativer Ansatz, der Flexibilität und schnelle Anpassung an Veränderungen ermöglicht. Bekannte Methoden sind Scrum und Kanban. Wir haben mit Kanban gearbeitet und Wöchentlich Prioritäten festgelegt ggf. umsortiert.
- Lean Projektmanagement: Fokus auf Effizienz und Vermeidung von Verschwendung. Ziel ist es, den Wert für den Kunden zu maximieren. Hier wird versucht dem Kunden den größtmöglichen Wert zu schaffen und alles was kein Mehrwert bietet wird als verschwendung betrachtet und eleminiert. Alle unnötigen Schritte im Projekt werden eliminiert um den Prozess effizienter zu gestalten. Dabei wird sichergestellt, dass der kontinuirliche Arbeitsfkuss sichergestellt ist und somit Unterbrechungen, Engpässe oder Verzögerungen zu vermeiden. Durch ständige Anpassungen und Überprüfungen der Prozesse (Kaizen) besteht eine kontinuierliche Verbesserung der Prozesse. Zu dieser Methode gehört auch das visualisieren mittels Kanban.
- Six Sigma: Eine datengetriebene Methode zur Verbesserung der Prozessqualität durch Identifikation und Beseitigung von Fehlern.
- Critical Chain Project Management (CCPM): Konzentration auf die Ressourcen und deren Verfügbarkeit, um Engpässe zu vermeiden und die Projektlaufzeit zu verkürzen. Zum Ende meiner Arbeitszeit (aus Krankheit), habe ich mich bei Projekten komplett aus dem Tagesgeschäft abgezogen und mich auf meinem Projekt konzentriert. So haben meine Mitarbeiter im Support mit mir(Third Level Support) und dem Kunden ein Termin zum gemeinsamen Supporten gemacht. So gesehen die Ressource meiner Arbeitskraft komplett an das Projekt gebunden.
- PRINCE2 (Projects IN Controlled Environments): Eine prozessorientierte Methode, die sich auf die Organisation und Steuerung des Projekts konzentriert
Bei einem neuen Projekt nutze ich generell die 5S-Methode aus dem Lean-Projektmanagement. Diese Methode zur Arbeitsplatzorganisation basiert auf den fünf japanischen Begriffen Seiri (Sortieren), Seiton (Systematisieren), Seiso (Säubern), Seiketsu (Standardisieren) und Shitsuke (Selbstdisziplin).