Software-Projektmanagement

Das Jobmuster eines IT-Unternehmens, das in der Softwareentwicklung tätig ist, besteht aus zwei Teilen:

  • Softwareerstellung
  • Software-Projektmanagement

Ein Projekt ist eine genau definierte Aufgabe, bei der mehrere Vorgänge zusammengefasst werden, um ein Ziel zu erreichen (z. B. Softwareentwicklung und -bereitstellung). Ein Projekt kann charakterisiert werden als:

  • Jedes Projekt kann ein einzigartiges und eindeutiges Ziel haben.
  • Projekt ist keine Routinetätigkeit oder alltägliche Arbeit.
  • Das Projekt hat eine Start- und eine Endzeit.
  • Das Projekt endet, wenn sein Ziel erreicht ist, daher ist es eine vorübergehende Phase im Leben einer Organisation.
  • Das Projekt benötigt angemessene Ressourcen in Bezug auf Zeit, Arbeitskräfte, Finanzen, Material und Wissensdatenbank.

Softwareprojekt

Ein Softwareprojekt ist das vollständige Verfahren der Softwareentwicklung von der Erfassung der Anforderungen bis zum Testen und zur Wartung, das gemäß den Ausführungsmethoden in einem bestimmten Zeitraum durchgeführt wird, um das beabsichtigte Softwareprodukt zu erreichen.

Bedarf an Software-Projektmanagement

Software soll ein immaterielles Produkt sein. Die Softwareentwicklung ist eine Art neuer Strom im Weltgeschäft, und es gibt nur sehr wenig Erfahrung beim Erstellen von Softwareprodukten. Die meisten Softwareprodukte sind auf die Anforderungen des Kunden zugeschnitten. Das Wichtigste ist, dass sich die zugrunde liegende Technologie so häufig und schnell ändert und weiterentwickelt, dass die Erfahrung eines Produkts möglicherweise nicht auf das andere angewendet wird. All diese geschäftlichen und ökologischen Einschränkungen bergen Risiken bei der Softwareentwicklung. Daher ist es wichtig, Softwareprojekte effizient zu verwalten.

Das obige Bild zeigt dreifache Einschränkungen für Softwareprojekte. Es ist ein wesentlicher Bestandteil der Softwareorganisation, Qualitätsprodukte zu liefern, die Kosten innerhalb des Kundenbudgets zu halten und das Projekt wie geplant zu liefern. Es gibt verschiedene interne und externe Faktoren, die sich auf dieses Dreieck mit drei Einschränkungen auswirken können. Jeder der drei Faktoren kann die beiden anderen stark beeinflussen.

Daher ist das Softwareprojektmanagement wichtig, um die Benutzeranforderungen zusammen mit Budget- und Zeitbeschränkungen zu berücksichtigen.

Software-Projektmanager

Ein Softwareprojektmanager ist eine Person, die die Verantwortung für die Ausführung des Softwareprojekts übernimmt. Der Software-Projektmanager kennt alle Phasen des SDLC, die die Software durchlaufen würde. Der Projektmanager ist möglicherweise nie direkt an der Herstellung des Endprodukts beteiligt, kontrolliert und verwaltet jedoch die mit der Produktion verbundenen Aktivitäten.

Ein Projektmanager überwacht den Entwicklungsprozess genau, bereitet verschiedene Pläne vor und führt sie aus, organisiert die erforderlichen und angemessenen Ressourcen und sorgt für die Kommunikation zwischen allen Teammitgliedern, um Fragen zu Kosten, Budget, Ressourcen, Zeit, Qualität und Kundenzufriedenheit zu lösen.

Lassen Sie uns einige Verantwortlichkeiten sehen, die ein Projektmanager übernimmt -

Leute führen

  • Als Projektleiter fungieren
  • Verbindung mit Stakeholdern
  • Personalmanagement
  • Einrichten der Berichtshierarchie usw.

Projekt verwalten

  • Projektumfang definieren und einrichten
  • Verwalten von Projektmanagementaktivitäten
  • Fortschritt und Leistung überwachen
  • Risikoanalyse in jeder Phase
  • Ergreifen Sie die erforderlichen Maßnahmen, um Probleme zu vermeiden oder zu lösen
  • Als Projektsprecher fungieren

Software-Management-Aktivitäten

Das Softwareprojektmanagement umfasst eine Reihe von Aktivitäten, darunter die Planung des Projekts, die Festlegung des Umfangs des Softwareprodukts, die Schätzung der Kosten in verschiedenen Begriffen, die Planung von Aufgaben und Ereignissen sowie das Ressourcenmanagement. Projektmanagementaktivitäten können Folgendes umfassen:

  • Project Planning
  • Scope Management
  • Project Estimation

Projektplanung

Die Planung von Softwareprojekten ist eine Aufgabe, die ausgeführt wird, bevor die Produktion von Software tatsächlich beginnt. Es ist für die Softwareproduktion da, beinhaltet jedoch keine konkreten Aktivitäten, die in irgendeiner Richtung mit der Softwareproduktion zusammenhängen. Vielmehr handelt es sich um mehrere Prozesse, die die Softwareproduktion erleichtern. Die Projektplanung kann Folgendes umfassen:

Bereichsverwaltung

Es definiert den Umfang des Projekts; Dies umfasst alle Aktivitäten und Prozesse, die ausgeführt werden müssen, um ein lieferbares Softwareprodukt zu erstellen. Das Bereichsmanagement ist wichtig, da es Grenzen des Projekts schafft, indem klar definiert wird, was im Projekt getan werden soll und was nicht. Dadurch enthält das Projekt begrenzte und quantifizierbare Aufgaben, die leicht dokumentiert werden können und Kosten- und Zeitüberschreitungen vermeiden.

Während der Verwaltung des Projektumfangs ist Folgendes erforderlich:

  • Definieren Sie den Bereich
  • Entscheiden Sie über die Überprüfung und Kontrolle
  • Teilen Sie das Projekt zur Vereinfachung der Verwaltung in verschiedene kleinere Teile auf.
  • Überprüfen Sie den Umfang
  • Steuern Sie den Bereich, indem Sie Änderungen am Bereich vornehmen

Projektschätzung

Für ein effektives Management ist eine genaue Schätzung verschiedener Maßnahmen ein Muss. Mit der richtigen Schätzung können Manager das Projekt effizienter und effektiver verwalten und steuern.

Die Projektschätzung kann Folgendes umfassen:

  • Software size estimation

    Die Softwaregröße kann entweder anhand von KLOC (Kilo Line of Code) oder durch Berechnung der Anzahl der Funktionspunkte in der Software geschätzt werden. Codezeilen hängen von den Codierungspraktiken ab, und die Funktionspunkte variieren je nach Benutzer- oder Softwareanforderung.

  • Effort estimation

    Die Manager schätzen den Aufwand in Bezug auf den Personalbedarf und die für die Erstellung der Software erforderliche Arbeitszeit. Für die Aufwandsschätzung sollte die Größe der Software bekannt sein. Dies kann entweder aus der Erfahrung der Manager abgeleitet werden, die historischen Daten des Unternehmens oder die Softwaregröße kann mithilfe einiger Standardformeln in Aufwand umgewandelt werden.

  • Time estimation

    Sobald Größe und Aufwand geschätzt sind, kann die zur Erstellung der Software erforderliche Zeit geschätzt werden. Die erforderlichen Anstrengungen werden gemäß den Anforderungsspezifikationen und der gegenseitigen Abhängigkeit verschiedener Softwarekomponenten in Unterkategorien unterteilt. Softwareaufgaben werden nach Work Breakthrough Structure (WBS) in kleinere Aufgaben, Aktivitäten oder Ereignisse unterteilt. Die Aufgaben werden täglich oder in Kalendermonaten geplant.

    Die Zeit, die benötigt wird, um alle Aufgaben in Stunden oder Tagen zu erledigen, ist die Gesamtzeit, die für die Fertigstellung des Projekts investiert wurde.

  • Cost estimation

    Dies kann als das schwierigste von allen angesehen werden, da es von mehr Elementen abhängt als jedes der vorherigen. Bei der Schätzung der Projektkosten ist Folgendes zu berücksichtigen:

    • Größe der Software
    • Softwarequalität
    • Hardware
    • Zusätzliche Software oder Tools, Lizenzen usw.
    • Fachpersonal mit aufgabenspezifischen Fähigkeiten
    • Reisen beteiligt
    • Communication
    • Schulung und Unterstützung

Projektschätzungstechniken

Wir haben verschiedene Parameter diskutiert, die eine Projektschätzung beinhalten, wie Größe, Aufwand, Zeit und Kosten.

Der Projektmanager kann die aufgeführten Faktoren mithilfe von zwei allgemein anerkannten Techniken abschätzen:

Zersetzungstechnik

Diese Technik setzt die Software als Produkt verschiedener Zusammensetzungen voraus.

Es gibt zwei Hauptmodelle -

  • Line of Code Die Schätzung erfolgt im Namen der Anzahl der Codezeilen im Softwareprodukt.
  • Function Points Die Schätzung erfolgt im Namen der Anzahl der Funktionspunkte im Softwareprodukt.

Empirische Schätztechnik

Diese Technik verwendet empirisch abgeleitete Formeln, um eine Schätzung vorzunehmen. Diese Formeln basieren auf LOC oder FPs.

  • Putnam Model

    Dieses Modell wurde von Lawrence H. Putnam hergestellt, das auf der Häufigkeitsverteilung von Norden (Rayleigh-Kurve) basiert. Das Putnam-Modell bildet die Zeit und den Aufwand ab, die für die Softwaregröße erforderlich sind.

  • COCOMO

    COCOMO steht für COnstructive COst MOdel, entwickelt von Barry W. Boehm. Das Softwareprodukt wird in drei Kategorien von Software unterteilt: organisch, halb getrennt und eingebettet.

Projektplanung

Die Projektplanung in einem Projekt bezieht sich auf die Roadmap aller Aktivitäten, die in der angegebenen Reihenfolge und innerhalb des jeder Aktivität zugewiesenen Zeitfensters ausgeführt werden sollen. Projektmanager neigen dazu, verschiedene Aufgaben und Projektmeilensteine ​​zu definieren und diese unter Berücksichtigung verschiedener Faktoren anzuordnen. Sie suchen nach Aufgaben, die sich im Zeitplan auf einem kritischen Pfad befinden, der auf bestimmte Weise (aufgrund der gegenseitigen Abhängigkeit der Aufgaben) und genau innerhalb der zugewiesenen Zeit ausgeführt werden muss. Die Anordnung von Aufgaben, die außerhalb des kritischen Pfades liegen, wirkt sich weniger wahrscheinlich auf den gesamten Zeitplan des Projekts aus.

Für die Planung eines Projekts ist Folgendes erforderlich:

  • Teilen Sie die Projektaufgaben in eine kleinere, überschaubare Form auf
  • Finden Sie verschiedene Aufgaben heraus und korrelieren Sie sie
  • Schätzen Sie den für jede Aufgabe erforderlichen Zeitrahmen
  • Teilen Sie die Zeit in Arbeitseinheiten auf
  • Weisen Sie jeder Aufgabe eine angemessene Anzahl von Arbeitseinheiten zu
  • Berechnen Sie die Gesamtzeit, die das Projekt von Anfang bis Ende benötigt

Resourcenmanagement

Alle Elemente, die zur Entwicklung eines Softwareprodukts verwendet werden, können als Ressource für dieses Projekt angenommen werden. Dies kann Personal, produktive Tools und Softwarebibliotheken umfassen.

Die Ressourcen sind in begrenzter Menge verfügbar und verbleiben als Pool von Vermögenswerten in der Organisation. Der Mangel an Ressourcen behindert die Entwicklung des Projekts und kann hinter dem Zeitplan zurückbleiben. Die Zuweisung zusätzlicher Ressourcen erhöht letztendlich die Entwicklungskosten. Es ist daher notwendig, angemessene Ressourcen für das Projekt zu schätzen und zuzuweisen.

Ressourcenmanagement umfasst -

  • Definieren eines geeigneten Organisationsprojekts durch Erstellen eines Projektteams und Zuweisen von Verantwortlichkeiten zu jedem Teammitglied
  • Ermittlung der zu einem bestimmten Zeitpunkt erforderlichen Ressourcen und ihrer Verfügbarkeit
  • Verwalten Sie Ressourcen, indem Sie Ressourcenanforderungen generieren, wenn sie benötigt werden, und die Zuordnung aufheben, wenn sie nicht mehr benötigt werden.

Projektrisikomanagement

Das Risikomanagement umfasst alle Aktivitäten im Zusammenhang mit der Identifizierung, Analyse und Bereitstellung vorhersehbarer und nicht vorhersehbarer Risiken im Projekt. Das Risiko kann Folgendes umfassen:

  • Erfahrene Mitarbeiter verlassen das Projekt und neue Mitarbeiter kommen hinzu.
  • Änderung im Organisationsmanagement.
  • Anforderungsänderung oder Fehlinterpretation der Anforderung.
  • Unterschätzung des Zeit- und Ressourcenbedarfs.
  • Technologische Veränderungen, Umweltveränderungen, geschäftlicher Wettbewerb.

Risikomanagement-Prozess

Der Risikomanagementprozess umfasst folgende Aktivitäten:

  • Identification - Notieren Sie sich alle möglichen Risiken, die im Projekt auftreten können.
  • Categorize - Kategorisieren Sie bekannte Risiken nach ihren möglichen Auswirkungen auf das Projekt in hohe, mittlere und niedrige Risikointensität.
  • Manage - Analysieren Sie die Wahrscheinlichkeit des Auftretens von Risiken in verschiedenen Phasen. Planen Sie, um Risiken zu vermeiden oder sich diesen zu stellen. Versuchen Sie, ihre Nebenwirkungen zu minimieren.
  • Monitor - Überwachen Sie die potenziellen Risiken und ihre frühen Symptome genau. Überwachen Sie auch die Auswirkungen von Maßnahmen, die ergriffen wurden, um sie zu mindern oder zu vermeiden.

Projektdurchführung und -überwachung

In dieser Phase werden die in den Projektplänen beschriebenen Aufgaben nach ihren Zeitplänen ausgeführt.

Die Ausführung muss überwacht werden, um zu überprüfen, ob alles nach Plan verläuft. Bei der Überwachung wird beobachtet, um die Wahrscheinlichkeit eines Risikos zu überprüfen und Maßnahmen zu ergreifen, um das Risiko anzugehen oder den Status verschiedener Aufgaben zu melden.

Diese Maßnahmen umfassen -

  • Activity Monitoring - Alle Aktivitäten, die innerhalb einer Aufgabe geplant sind, können täglich überwacht werden. Wenn alle Aktivitäten in einer Aufgabe abgeschlossen sind, gilt sie als abgeschlossen.
  • Status Reports - Die Berichte enthalten den Status von Aktivitäten und Aufgaben, die innerhalb eines bestimmten Zeitraums, in der Regel einer Woche, ausgeführt wurden. Der Status kann als beendet, ausstehend oder in Bearbeitung usw. markiert werden.
  • Milestones Checklist - Jedes Projekt ist in mehrere Phasen unterteilt, in denen wichtige Aufgaben (Meilensteine) basierend auf den Phasen von SDLC ausgeführt werden. Diese Meilenstein-Checkliste wird alle paar Wochen erstellt und gibt den Status der Meilensteine ​​an.

Projektkommunikationsmanagement

Effektive Kommunikation spielt eine entscheidende Rolle für den Erfolg eines Projekts. Es schließt Lücken zwischen dem Kunden und der Organisation, zwischen den Teammitgliedern sowie anderen am Projekt beteiligten Akteuren wie Hardwarelieferanten.

Die Kommunikation kann mündlich oder schriftlich erfolgen. Der Kommunikationsmanagementprozess kann die folgenden Schritte umfassen:

  • Planning - Dieser Schritt umfasst die Identifizierung aller am Projekt beteiligten Akteure und die Art der Kommunikation zwischen ihnen. Es wird auch geprüft, ob zusätzliche Kommunikationsmöglichkeiten erforderlich sind.
  • Sharing - Nachdem verschiedene Aspekte der Planung festgelegt wurden, konzentriert sich der Manager darauf, die richtigen Informationen zur richtigen Zeit mit der richtigen Person zu teilen. Dies hält alle am Projekt Beteiligten über den Projektfortschritt und dessen Status auf dem Laufenden.
  • Feedback - Projektmanager verwenden verschiedene Maßnahmen und Feedback-Mechanismen und erstellen Status- und Leistungsberichte. Dieser Mechanismus stellt sicher, dass der Input von verschiedenen Stakeholdern als Feedback an den Projektmanager gelangt.
  • Closure - Am Ende jeder Großveranstaltung, am Ende einer SDLC-Phase oder am Ende des Projekts selbst wird offiziell der Verwaltungsabschluss angekündigt, um alle Stakeholder durch Senden von E-Mails, Verteilen einer Hardcopy des Dokuments oder auf andere Weise einer effektiven Kommunikation zu aktualisieren.

Nach der Schließung geht das Team zur nächsten Phase oder zum nächsten Projekt über.

Konfigurationsmanagement

Das Konfigurationsmanagement ist ein Prozess zum Verfolgen und Steuern der Änderungen in der Software in Bezug auf Anforderungen, Design, Funktionen und Entwicklung des Produkts.

IEEE definiert es als „den Prozess des Identifizierens und Definierens der Elemente im System, des Kontrollierens der Änderung dieser Elemente während ihres gesamten Lebenszyklus, des Aufzeichnens und Meldens des Status von Elementen und Änderungsanforderungen sowie des Überprüfens der Vollständigkeit und Richtigkeit von Elementen“.

Im Allgemeinen besteht nach Abschluss des SRS eine geringere Wahrscheinlichkeit, dass vom Benutzer Änderungen erforderlich sind. Wenn sie auftreten, werden die Änderungen nur mit vorheriger Genehmigung des höheren Managements behandelt, da die Möglichkeit einer Kosten- und Zeitüberschreitung besteht.

Basislinie

Eine Phase der SDLC wird angenommen, wenn sie eine Basislinie aufweist, dh die Basislinie ist eine Messung, die die Vollständigkeit einer Phase definiert. Eine Phase wird festgelegt, wenn alle diesbezüglichen Aktivitäten abgeschlossen und gut dokumentiert sind. Wenn es nicht die letzte Phase wäre, würde seine Ausgabe in der nächsten unmittelbaren Phase verwendet.

Das Konfigurationsmanagement ist eine Disziplin der Organisationsadministration, die sich um das Auftreten von Änderungen (Prozesse, Anforderungen, technologische, strategische usw.) kümmert, nachdem eine Phase festgelegt wurde. CM überprüft alle Änderungen, die an der Software vorgenommen wurden.

Kontrolle ändern

Die Änderungskontrolle ist eine Funktion des Konfigurationsmanagements, das sicherstellt, dass alle am Softwaresystem vorgenommenen Änderungen konsistent sind und den organisatorischen Regeln und Vorschriften entsprechen.

Eine Änderung in der Konfiguration des Produkts führt die folgenden Schritte aus:

  • Identification- Eine Änderungsanforderung kommt entweder von einer internen oder einer externen Quelle. Wenn eine Änderungsanforderung formell identifiziert wird, wird sie ordnungsgemäß dokumentiert.

  • Validation - Die Gültigkeit der Änderungsanforderung wird überprüft und ihr Bearbeitungsverfahren bestätigt.

  • Analysis- Die Auswirkungen von Änderungsanforderungen werden in Bezug auf Zeitplan, Kosten und erforderlichen Aufwand analysiert. Die Gesamtauswirkung der voraussichtlichen Änderung auf das System wird analysiert.

  • Control- Wenn die voraussichtliche Änderung entweder zu viele Einheiten im System betrifft oder unvermeidbar ist, muss die Genehmigung der hohen Behörden eingeholt werden, bevor die Änderung in das System aufgenommen wird. Es wird entschieden, ob die Änderung eine Einbeziehung wert ist oder nicht. Ist dies nicht der Fall, wird die Änderungsanforderung offiziell abgelehnt.

  • Execution - Wenn in der vorherigen Phase festgelegt wurde, dass die Änderungsanforderung ausgeführt werden soll, ergreift diese Phase geeignete Maßnahmen, um die Änderung auszuführen, und führt gegebenenfalls eine gründliche Überarbeitung durch.

  • Close request- Die Änderung wird auf korrekte Implementierung und Zusammenführung mit dem Rest des Systems überprüft. Diese neu aufgenommene Änderung in der Software wird ordnungsgemäß dokumentiert und die Anfrage wird formell geschlossen.

Projektmanagement-Tools

Das Risiko und die Unsicherheit steigen in Bezug auf die Größe des Projekts um ein Vielfaches, selbst wenn das Projekt nach festgelegten Methoden entwickelt wird.

Es stehen Tools zur Verfügung, die ein effektives Projektmanagement unterstützen. Einige werden beschrieben -

Gantt-Diagramm

Gantt-Diagramme wurden von Henry Gantt (1917) entworfen. Es repräsentiert den Projektplan in Bezug auf Zeiträume. Es ist ein horizontales Balkendiagramm mit Balken, die Aktivitäten und die für die Projektaktivitäten geplante Zeit darstellen.

PERT-Diagramm

Das PERT-Diagramm (Program Evaluation & Review Technique) ist ein Tool, das das Projekt als Netzwerkdiagramm darstellt. Es ist in der Lage, Hauptereignisse des Projekts sowohl parallel als auch nacheinander grafisch darzustellen. Ereignisse, die nacheinander auftreten, zeigen die Abhängigkeit des späteren Ereignisses vom vorherigen.

Ereignisse werden als nummerierte Knoten angezeigt. Sie sind durch beschriftete Pfeile verbunden, die die Abfolge der Aufgaben im Projekt darstellen.

Ressourcenhistogramm

Dies ist ein grafisches Tool, das Balken oder Diagramme enthält, die die Anzahl der Ressourcen (normalerweise qualifiziertes Personal) darstellen, die im Laufe der Zeit für ein Projektereignis (oder eine Phase) benötigt werden. Das Ressourcenhistogramm ist ein wirksames Instrument für die Personalplanung und -koordination.

Analyse kritischer Pfade

Dieses Tool ist nützlich, um voneinander abhängige Aufgaben im Projekt zu erkennen. Es ist auch hilfreich, den kürzesten oder kritischsten Weg zu finden, um das Projekt erfolgreich abzuschließen. Wie beim PERT-Diagramm wird jedem Ereignis ein bestimmter Zeitrahmen zugewiesen. Dieses Tool zeigt die Abhängigkeit des Ereignisses an, vorausgesetzt, ein Ereignis kann nur dann zum nächsten übergehen, wenn das vorherige abgeschlossen ist.

Die Veranstaltungen sind nach dem frühestmöglichen Startzeitpunkt geordnet. Der Pfad zwischen Start- und Endknoten ist ein kritischer Pfad, der nicht weiter reduziert werden kann, und alle Ereignisse müssen in derselben Reihenfolge ausgeführt werden.