PO-Team12
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Owners
        • Signed-in users
        • Everyone
        Owners Signed-in users Everyone
      • Write
        • Owners
        • Signed-in users
        • Everyone
        Owners Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights New
    • Engagement control
    • Make a copy
    • Transfer ownership
    • Delete this note
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Note Insights Versions and GitHub Sync Sharing URL Help
Menu
Options
Engagement control Make a copy Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Owners
  • Owners
  • Signed-in users
  • Everyone
Owners Signed-in users Everyone
Write
Owners
  • Owners
  • Signed-in users
  • Everyone
Owners Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       Owned this note    Owned this note      
    Published Linked with GitHub
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    # Projektorganisation Übung 01 ## Projektbeschreibung, Projektziele *Geben Sie eine Einführung in das Projekt, in der Sie auch auf die gesetzten Ziele des Projekts eingehen. Handelt es sich um ein sachzielorientiertes oder prozessorientiertes Projekt? Welche Ergebnisse/Leistungen sollen durch das Projekt erbracht werden?* In unserem Projekt geht es um eine Software, die dazu beitragen soll, unsere Meere von Schadstoffen frei zu halten. Der Auftraggeber will mit der Software Ausschreibungen für Satellitenbilder von gewissen Bereichen des Meeres stellen. Provider von Satellitenbildern sollen dann Angebote einreichen können, und nach Annahme eines Angebotes auch die Bilder uploaden können. Die Bilder sollen dann automatisch ausgewertet werden und, im Fall von Verunreinigungen (z.B. Öl), sollen die verantwortlichen Behörden benachrichtigt werden. Die Implementierung der Software wird in 3 Sub-Projekte unterteilt. Die Sub-Projekte sind Web-Plattformen für das Anfragen von Bildern, die Auswertung dieser Bilder und das Benachrichtigen der korrekten Behörden. Im weiteren behandeln wir das 2. Sub-Projekt, also das Auswerten der Bilder, genauer. Wenn es sinnvoll ist, erwähnen wir das gesamte System, bzw. die anderen beiden Sub-Projekte. Das Projekt umfasst Entwicklung, Hosting und Wartung einer Web-Plattform, daher handelt es sich um ein sachzielorientiertes Projekt. ## Projektumfeld, Rahmenbedingungen *Beschreiben Sie das Projektumfeld samt den Rahmenbedingungen für das Projekt. Handelt es sich um ein internes oder externes Projekt? Gehen Sie auf das Unternehmen, das das Projekt durchführt (Auftragnehmer), als auch auf das Unternehmen, für das das Projekt durchgeführt wird (Auftraggeber/Kunde) bzw. die Unternehmen, die Anwender/Nutzer des Projektergebnisses sind, ein. Welchen Zusammenhang hat das Projekt mit der Unternehmensstrategie und den Unternehmenszielen? Welche internen oder externen Faktoren sind im Projekt zu beachten? Gibt es zeitliche oder örtliche Rahmenbedingungen? Welche technischen Rahmenbedingungen (bspw. Hardware, auf der die zu entwickelnde Software laufen soll) sind zu beachten? Hat das Projekt Einfluss auf Chancen und Risiken von anderen Projekten im Unternehmen? Gibt es einen Abstimmungsbedarf mit anderen Projekten?* Es handelt sich um ein externes Projekt, der Auftragnehmer ist die (fiktive) Softwareentwicklungsfirma Wolkenflug GmbH. Der Auftraggeber/Kunde ist die (fiktive) European Maritime Safety Agency (EMSA), eine EU-Organisation, die unter anderem für die Überwachung der Schadstoffbelastung der an Europa angrenzenden Meere verantwortlich ist. Die EMSA ist gleichzeitig der Auftraggeber und der Anwender der resultierenden Software. Die Wolkenflug GmbH entwickelt Individualsoftware für Unternehmenskunden und Kunden im öffentlichen Sektor (z.B. EMSA). Ein Teil der Unternehmensstrategie ist es, ein EU-weit bekannter Anbieter für Individualsoftware im öffentlichen Sektor zu werden, und die erfolgreiche Abwicklung des EMSA-Projektes wäre ein Teil davon. Zwischen den Sub-Projekten gibt es natürlich einen hohen Abstimmungsbedarf (z.B. API), besondere Zusammenhänge mit anderen Projekten gibt es nicht. Das Projekt hat, abgesehen von einem gewissen Bedarf an Personal- und Hardwareressourcen, auch keinen Einfluss auf die Chancen und Risiken von anderen Projekten im Unternehmen. Weil die 3 Sub-Projekte von unterschiedlichen, multifunktionalen Teams durchgeführt werden, sind die Zusammenarbeit und Kommunikationswege zwischen diesen Teams wichtige interne Faktoren. Zusätzlich müssen auch persönliche Faktoren innerhalb der Teams beachtet werden. Nachdem es sich um ein Projekt im öffentlichen Sektor handelt, ist ein externer Faktor die politische Lage der EU. Ein weiterer externer Faktor sind die langen Kommunikationswege innerhalb der EMSA, wodurch Entscheidungsprozesse verlangsamt werden. Es gibt keine fixe Deadline für die Fertigstellung des Projekts, es wird allerdings jährlich ein neuer Vertrag (für das gesamte System, nicht für Sub-Projekte) verhandelt, der vom nachweisbaren Fortschritt des Projektes abhängt. Örtliche Rahmenbedingungen gibt es keine, alle Meetings werden online abgehalten. Ab dem ersten Release der Software werden zusätzliche Server-Ressourcen für ein Production Environment benötigt, da es Teil des Projektes ist, die Software zu hosten. Bis dahin wird nur ein interner Test-Server betrieben. ## Projektmerkmale *Charakterisieren Sie das Projekt anhand der im Skript behandelten Projektmerkmale. Darüber hinaus können Sie natürlich je nach Projektsituation noch weitere Merkmale heranziehen* - Umfang - Das behandelte Sub-Projekt ist eine Web-Plattform für die Auswertung von Satellitenbildern mittels Machine Learning. Der Arbeitsaufwand wird in etwa 800-1200 Issues (= Einzelaufgaben) aufgeteilt. - Jedes Sub-Projekt wird von einem Team aus ca. 5-10 Personen durchgeführt. - Der Auftragswert des gesamten Projekts beläuft sich auf ca. 6 Mio. € pro Jahr. - Die Sub-Projekte sind ähnlich viel Aufwand, daher werden jedem Sub-Projekt 2 Mio. € pro Jahr zugewiesen. - Das Projekt wird quartalsweise von EMSA bezahlt. - Dauer - Projektbeginn ist 01.01.2024. - Bis zum ersten "stable release" werden ca. 4 Jahre geschätzt. - Besonderheit - Es ist ein überdurchschnittlich großes Projekt für die Firma Wolkenflug, aber es werden hauptsächlich Technologien verwendet, mit denen die Firma schon mehrere Jahre Erfahrung hat. - Komplexität - Alle 3 Sub-Projekte werden gleichzeitig entwickelt. Da sie stark voneinander abhängen ist die Komplexität vor allem am Anfang als sehr hoch einzuschätzen. - Schwierigkeit - Wolkenflug hat mit den zu verwendenden Technologien und mit Projekten im öffentlichen Sektor schon mehrere Jahre Erfahrung. - Wirtschaftlich und personell ist das Projekt nicht außergewöhnlich schwierig im Vergleich zu anderen Projekten des Unternehmens. - Organisatorisch ist das Projekt durch die große Anzahl an Aufgaben und Koordination der 3 Teams überdurchschnittlich schwierig. - Es gibt keine harte Deadline, Verträge werden jedes Jahr neu verhandelt. - Eine Schwierigkeit sind die langen Kommunikationswege auf Seiten des Kunden, diese müssen beachtet werden, wenn zusätzliche Bestätigungen/Einwilligungen benötigt werden. - Bedeutung - Damit Wolkenflug ein bedeutender Softwareanbieter in Europa werden kann, ist ein großer Kunde wie die EMSA von großer Bedeutung. - Der Projektumsatz verglichen mit dem Gesamtumsatz ist überdurchschnittlich, aber nicht extrem hoch (6 Mio. / 120 Mio. = 5%). - Durch erfolgreiche Abwicklung des Projekts wird ein langfristiger Partner und dadurch auch kontinuierlicher "cashflow" gewonnen, außerdem könnten sich später noch weitere Projekte der EMSA für Wolkenflug ergeben. - Risiko - Hauptrisiko besteht bei Vertragserneuerung, gefährdet durch z.B. Unzufriedenheit des Kunden oder Konkurrenz. - Technisches Realisierungsrisiko: Technisch sollte es keine Komplikationen geben. - Verwertbarkeitsrisiko: Das Projekt wird individuell für den Kunden entwickelt, somit ist die Verwertbarkeit ganz auf seiner Seite. - Zeitrisiko: Da es keine bestimmte Deadline gibt, ist das Zeitrisiko gering, aber es muss trotzdem erwartungsgerecht viel Leistung erbracht werden. - Aufwandsrisiko: Insgesamt ist das Aufwandsrisiko für Wolkenflug gering, da der Vertrag jährlich erneuert werden muss. - Zielsetzungsrisiko: Es ist alle 3 Wochen ein "Sprint Retrospective" Meeting mit Aufsicht der EMSA geplant, daher werden Abweichungen von der Zielsetzung schnell erkannt. - Kosten - Pro Jahr werden 6 Mio. € verrechnet. - Bei 4 Jahren Entwicklungszeit ergibt sich ein Auftragswert von 24 Mio. € für den ersten Release. - Kontinuität - Hier 1 Sub-Projekt-Team, andere Teams sind ähnlich zusammengesetzt - Sporadisch: 2 (Technical Architect, UI/UX-Designer) - Häufig: 1 (Site Reliability Engineer) - Kontinuierlich: 4-5 (Projektleiter, Requirements Engineer, ML Engineer, 2 Softwareentwickler) - Intensität - Mit dem geschätzten Aufwand und der Teamgröße sollten die meisten Teammitglieder vollständig ausgelastet sein. - Einige spezialisierte Aufgaben sind nur in der Anfangsphase des Projekts nötig, hier sind die spezialisierten Mitarbeiter/innen aber auch vollständig ausgelastet, jedoch nicht bis zum Ende des Projekts. - Falls im Laufe des Entwicklung Bedarf für ein größeres Team entsteht, können Mitarbeiter aus anderen Projekten verschoben werden, um eine Überlastung zu verhindern. Die anderen Projekte verwenden die gleichen Technologien, daher ist ein solcher Wechsel billiger, als neue Mitarbeiter einzustellen. - Anzahl - Insgesamt werden ca. 60 Projekte parallel abgewickelt. - Ausschließlich Projekttätigkeit, keine übermäßige Belastung. - Organisations- und Führungsverständnis - Wolkenflug zeichnet sich durch hohe Flexibilität aus. - Mitarbeiter können ohne Probleme zwischen Projekten wechseln. - Konfliktlösungsfähigkeit ist sehr ausgeprägt und die Kooperationsbereitschaft ist durch ein gutes Arbeitsklima auch vorhanden. # Projektorganisation Übung 02 Damit unser Projekt den Angaben entspricht, werden wir hier nur das Sub-Projekt über Auswertung der Satellitenbilder genauer betrachten. Hierbei geht es darum, die von anderen Komponenten des Systems erhaltenen Bilder mittels Machine Learning auszuwerten. Das Sub-Projekt trägt den Namen "sea pollution evaluation system" (SPES). ## Projektorganisationsform (Organigramm) *Beschreiben Sie die für das Projekt gewählte Projektorganisationsform (kann auch eine Mischform sein bzw. können für unterschiedliche Phasen/Projektabschnitte unterschiedliche Formen zum Einsatz kommen) und geben Sie ein entsprechendes Organigramm an. Motivieren Sie, warum Sie diese Form gewählt haben und geben Sie Vor- und Nachteile in Bezug auf Ihre Projektsituation an.* Dieses Projekt ist als ein Matrix-Projekt organisiert. Diese Organisationsform eignet sich für das Projekt, weil es eines von mehreren Sub-Projekten ist und sich das Projekt sehr nach Kunden richtet. Einer der Vorteile im Vergleich zu anderen Organisationsformen, wie zum Beispiel einer Task Force, ist, dass dieses relativ große Projekt nicht dauerhaft Mitarbeiter beansprucht, die vielleicht woanders gebraucht werden könnten. Jedoch könnte die Mehrfachunterstellung des Personals zu erhöhtem Stress führen und kann zu organisatorischen Schwierigkeiten beim Vereinbaren von Meetings etc. führen. Im folgenden Organigramm sind die Mitarbeiter in der Reihenfolge, in der sie im Abschnitt "Projektmitarbeiter" aufgelistet sind, nummeriert. ![Untitled Diagram.drawio.png](https://hackmd.io/_uploads/B1qv-JNQT.png) ## Projektleiter, Team *Beschreiben Sie den Projektleiter und die Projektmitarbeiter. Für das Projekt sollten zumindest 3 Mitarbeiter und maximal ca. 5 Mitarbeiter eingesetzt werden. Was sind die wichtigsten Fähigkeiten, die der Projektleiter speziell für dieses Projekt aufweisen soll? Ist der Projektleiter mit speziellen Kompetenzen oder Anordnungsbefugnissen ausgestattet? Aus welchen Abteilungen stammen die Projektmitarbeiter, welche Fähigkeiten und Kenntnisse bringen Sie ins Projekt mit? Mit welchen anderen Abteilungen, Firmen, externen Beratern etc. ist eine Zusammenarbeit erforderlich?* ### Projektleiter Der/Die Leiter/in dieses Projekts ist fachliche/r Experte/in. Er/Sie bringt etwas Management-Erfahrung mit sich, z.B. aus der Leitung von früheren Projekten. Er/Sie arbeitet neben seinen/ihren PL-Aufgaben selbst an der Systemarchitektur des Projekts (kein Technical Architect im Projektteam). Weiters unterstützt er/sie seine/ihre Teammitglieder, speziell den/die Junior-Softwareentwickler/in. Die wichtigsten Fähigkeiten sind: - Erfahrung in den zu bewältigenden Hauptaufgaben (Kommunikation und Koordination mit ...): - Projektleiter/innen der anderen Sub-Projekte - Funktionalen Vorgesetzten seiner Teammitglieder - Kunden (Sprachkenntnisse - Englisch) - Lenkungsausschuss - Erfahrung mit der Leitung eines multifunktionalen Teams, Konfliktlösungsfähigkeit - Kenntnisse über die Fähigkeiten der Teammitglieder (z.B. durch frühere Zusammenarbeit), Effektive Delegation der Einzelaufgaben - Verhandlungsgeschick (Verträge müssen, zusammen mit Projektleiter/innen der anderen Sub-Projekte, jährlich neu verhandelt werden) ### Projektmitarbeiter Unser Projektteam stellt sich aus folgenden 5 spezialisierten Mitarbeitern zusammen: - Requirements Engineer - Der/Die Requirements Engineer ist vor allem in den Anfangsphasen des Projekts essenziell. Er/Sie erstellt Tasks und Issues, wobei er/sie die Anforderungen des Kunden in implementierbare Aufgaben für das Team übersetzt. - Er/Sie arbeitet in der Anfangsphase nur an diesem Projekt, wird sich aber im Laufe des Projektes lösen und auch an anderen Projekten arbeiten. - Site Reliability Engineer - Der/Die SRE kümmert sich in der Anfangsphase um das Aufsetzen der Version Control und um Deployment des Projektes. Bei/nach dem Release kümmert er/sie sich darum, dass der Server inklusive aller Container eine mit dem Kunden geregelte minimum up-time erfüllt. - Er/Sie ist entweder selbst für DevOps aller 3 Sub-Projekte verantwortlich, oder koordiniert sich mit anderen SREs aus seiner/ihrer Abteilung. - Senior Machine Learning Engineer - Der/Die ML Engineer arbeitet gemeinsam mit den Fullstack-Softwareentwickler/innen an der Entwicklung der Kernkomponente des Systems: Einem ML-Model zur Auswertung der Satellitenbilder. - Er/Sie muss tiefes fachliches Wissen und Erfahrung mitbringen, da dieses Modell kritisch für den Projekterfolg ist. - Er/Sie ist Mitarbeiter/in der Abteilung für AI / Machine Learning, und ist, zumindest für einige Monate nach der Anfangsphase des Projektes, vollständig ausgelastet. - Senior Fullstack-Software Developer - Der/Die Senior Softwareentwickler/in bringt Vorerfahrung mit den verwendeten Technologien aus anderen Projekten mit sich. - Er/Sie ist in allen Phasen des Projektes vollständig ausgelastet, entweder mit der Abarbeitung der komplexesten Einzelaufgaben, oder damit, die weniger erfahrenen Teammitglieder zu unterstützen. - Junior Fullstack-Software Developer - Junior Developer sind meist noch nicht so erfahrene Programmierer. Dies ist aber nicht zu unterschätzen, da diese meistens noch als "unbeschriebens Blatt" oft kreative neue Lösungen finden. - Er/Sie ist in allen Phasen des Projektes vollständig ausgelastet, hauptsächlich mit der Abarbeitung der weniger komplexen Einzelaufgaben. - Einführung/Unterstützung bekommt er/sie von Senior-Entwickler/in, funktionalem Vorgesetzten, und PL. All diese Mitarbeiter haben schon Erfahrung mit anderen Software-Projekten, außer der/dem Junior Fullstack-Software Developer, er/sie kann auch neu angestellt sein. Speziell UI/UX-Designer/in und SRE müssen eng mit anderen Mitarbeiter/innen, die dieselbe Rolle in anderen Sub-Projekten ausführen, zusammenarbeiten. Hier kommen die Vorteile der Matrix-Organisationsform zum Tragen. Auch bei der/dem ML Engineer ist die Doppelunterstellung sehr sinnvoll, weil dadurch kein PL mit Expertise in ML benötigt wird. # Projektorganisation Übung 03 ## Aufgabenplanung, Zeitplanung *Achten Sie im Rahmen der Aufgabenplanung auf eine sinnvolle Strukturierung der Vorgänge (Aufgabengliederung). Auf oberster Ebene bietet sich bei Softwareprojekten eine Phasengliederung an, die in vielen Fällen Phasen wie Erarbeiten der Anforderungen an das zu entwickelnde Produkt, Analyse der bestehenden Situation, Entwurf der neuen Softwarelösung, Implementierung, Test, Einführung und Wartung umfasst. Welche Phasen relevant sind, ist von der konkreten Projektsituation abhängig.* Da unser Projekt ein reines Software Projekt ist, ist eine Phasengliederung für uns in diesen Fall das beste. EMSA besitzt bereits ein Lastenheft, dieses muss von Requirement Engineers zu Tasks/Issues verarbeitet werden werden (für zum Beispiel GitHub, GitLab oder Jira). Des Weiteren müssen Unklarheiten mit dem Projektleiter und Kunden besprochen werden. Dies ist die "**Requirements Specification**" Phase. Nach der Erstellung der Basis Aufgaben kann bereits die nächste Phase parallel gestartet werden ("**Implementation**" Phase). In dieser Phase wird das ML-Modell trainiert, APIs implementiert, etc. Sobald das Projekt Teile des Projekts in einem funktionierendem Stand sind kann die "**Implementation Test**" Phase parallel gestartet werden. Software Entwickler müssen während des Implementierens ihren Code immer bereits mit Unit- und Integration-Tests testen. Sobald aber die Test Phase beginnt müssen ebenfalls End-to-End (E2E) Tests programmiert werden. Falls das Projekt für den ersten "Stable-Release" bereit ist, wird die "**Deployment**" Phase begonnen. Hier ist es wichtig, dass SREs "on-call-duty" haben, was bedeutet, dass auch Ausfälle außerhalb der regulären Arbeitszeiten so schnell wie möglich behoben werden müssen, um eine minimum "up-time" garantieren zu können. Des Weiteren wird in dieser Phase der Fokus darauf gelegt, gröbere "Bugs" zu beheben, die während der ersten Wochen auftreten. Da unsere Software für den End-User nicht sichtbar ist muss keine Einführung gegeben werden, es sollte aber eine Dokumentation verfasst werden. Dies kann aber problemlos in der letzten Phase "**Maintenance**" erledigt werden. Weiters werden hier Bugs behoben, die erst nach längerer Laufzeit gefunden werden. *Überlegen Sie, ob spezielle Meetings (interne Meetings, z.B. Präsentationen von Zwischenergebnissen, als auch externe Meetings, z.B. mit Geschäftspartnern, bspw. Meilensteinpräsentationen), Schulungen, Erstellen einer Dokumentation und spezielle Tests (die fortlaufend durchzuführenden Tests müssen dabei nicht berücksichtigt werden) für Ihr Projekt relevant sind. Benötigen Sie Software (externe Komponenten) oder Hardware für Ihre Lösung oder ist eine Zusammenarbeit mit externen Projektpartner vorgesehen? Welche Vorgänge lassen sich daraus ableiten? Zeitaufwände für Fahrtzeiten, Koordinations- und Kommunikationszeiten sowie für fortlaufende Projektmanagementaufgaben müssen nicht explizit berücksichtigt werden.* Die Implementierung erfolgt agil in 3-wöchigen Sprints. Am Anfang eines solchen Sprints wird ein internes Sprint-Planning Meeting mit dem gesamten Team abgehalten. Am Ende jedes Sprints gibt es eine Sprint Retrospective, bei der Projektfortschritt, aufgetretene Probleme, etc. im Team und mit dem Kunden besprochen werden. Jedes Quartal oder nach Erreichen eines Meilensteins werden dem Kunden die Zwischenergebnisse präsentiert. Dieses Meeting wird mit PL, Requirements Engineer, einem der Softwareentwickler, und dem Kunden abgehalten. Da EMSA einen Testplan erstellt, der von unserem Requirements Engineer und Entwicklern ausgearbeitet wird, müssen zur Abklärung von Unklarheiten eventuell auch Meetings stattfinden. Schulung könnte vor allem für den Junior Fullstack-Software Developer relevant sein. Dokumentation wird vor allem in der Deployment- und Maintenance-Phase geschrieben, da man während der Entwicklung nicht weiß, was und wieviel sich vielleicht noch ändert. Des Weiteren ist es sehr üblich noch bevor Stable-Release das Projekt nochmal ein "refactoring" zu geben, was ebenfalls Auswirkungen auf die Dokumentation hat. Folgende Softwaresysteme werden benötigt: * Issue Tracking System (z.B. Jira) * Version Control System (z.B. GitLab) * CI/CD (z.B. GitLab + TeamCity) * E2E Testing System (z.B. Cypress) * DBMS (z.B. Oracle) * ML-Framework (z.B. TensorFlow) Folgende Hardware wird benötigt: * Server für staging environment * Server für production environment Diese Software- und Hardwaresysteme müssen natürlich aufgesetzt werden, diese Aufgaben übernimmt der/die SRE. Externe Projektpartner gibt es keine, aber da unser Projekt mit 2 anderen Projekten koordiniert werden muss, sollte es zusätzlich Meetings der 3 Projektleiter/innen geben. *Die Aufgabenplanung sollte mindestens 50 Aufgaben (das ist das Minimum) auf unterschiedlichem Detaillierungsniveau (unterschiedliche Ebenen im PSP) ergeben.* *Dokumentieren sie die Aufgabengliederung in Form eines Projektstrukturplans (PSP). Definieren Sie entsprechende Meilensteine und dokumentieren Sie diese in einer Meilensteinliste.* ![porg_psp.svg](https://hackmd.io/_uploads/BkR3AxV76.svg) | Meilenstein | Ereignis | Soll-Termin | Ist-Termin | |:-----------:|:----------------------------------------------------:|:-----------------:|:----------:| | 1 | Start des Projekts | 01.01.2024 | | | 2 | Abschluss Requirements Specification (Ohne Tests) | 01.10.2024 | | | 3 | Abschluss Requirements Specification (Tests) | 01.03.2025 | | | 4 | Stable API Implementation | 01.12.2025 | | | 5 | Stable ML-Modell | 01.06.2026 | | | 6 | Alpha Release | 01.03.2027 | | | 7 | Abschluss Implementation Test | 01.10.2027 | | | 8 | First Stable Release | 01.01.2028 | | # Projektorganisation Übung 04 ## Stakeholderanalyse | Stakeholder | Entscheidungspotential | Einstellung | Rolle im Projekt | |--------------------------------------|--------------------------------------|-------------------------|--------------------------------------------------------------------------------------------------------------| | EMSA | Hoch (Finanziell, Politisch) | Befürworter | Kunde und Endbenutzer des SPES; legt Anforderungen fest und erwartet präzise Ölfleckdetektion in Bildern. | | Wolkenflug GmbH | Hoch (Finanziell, Technisch) | Befürworter | Projektinhaber und Umsetzer; verantwortlich für Design, Entwicklung, Test und Wartung des Systems. | | Geschäftsführung | Hoch (Finanziell, Strategisch) | Befürworter | Verantwortlich für die strategische Ausrichtung des Unternehmens; unterstützt das Projekt finanziell. | Innen | | Betriebsrat | Mittel (Rechtlich) | Neutral bis Befürworter | Interessenvertretung der Mitarbeiter; achtet auf Einhaltung von Mitarbeiterrechten im Projekt. | | Konkurrenzunternehmen | Mittel (Finanziell, Technisch) | Konkurrenz | Konkurrenzunternehmen im Softwareentwicklungsbereich; könnten den Kunden abwerben (jährliche Vertragserneuerung) | | Satellitenbildanbieter | Mittel (Technisch) | Neutral bis Befürworter | Liefern entscheidende Bilder für die Analyse; Kooperation für kontinuierlichen Datenfluss erforderlich. | | Verantwortliche Behörden für die jeweilige Meeresregion | Mittel (Politisch, Technisch) | Neutral bis Befürworter | Empfänger von Warnmeldungen; müssen auf Ölkatastrophen in ihrer Zuständigkeitsregion reagieren. | Regulierungsbehörden | Mittel (Politisch, Rechtlich) | Neutral bis Befürworter | Setzen Richtlinien und Regulierungen; Überwachen die Einhaltung von Umwelt- und Datenschutzstandards. | | Umwelt-NGOs und Aktivisten | Niedrig bis Mittel (Gesellschaftlich)| Befürworter | Interesse an Effektivität des SPES; könnten Transparenz und Einhaltung von Umweltstandards fordern. | | Öffentlichkeit | Niedrig bis Mittel (Gesellschaftlich)| Neutral bis Befürworter | Interesse an Umweltschutz; öffentliche Wahrnehmung und Unterstützung könnten den Projekterfolg beeinflussen.| | Ölunternehmen und Politiker mit Verbindung zu Ölunternehmen | Mittel (Politisch) | Neutral bis Gegner | Potenzielles Interesse an Minimierung von Ölkatastrophen, aber könnten das Projekt aus wirtschaftlichen Gründen ablehnen.| | Projektleiter | Hoch (Technisch, Personell) | Befürworter | Leitet das Team, bringt technische und Managementerfahrung ein. Schlüsselrolle. | | Requirements Engineer | Hoch (Technisch) | Befürworter | Verantwortlich für Erfassung und Dokumentation der Anforderungen; stellt sicher, dass das System den Bedürfnissen entspricht.| | Site Reliability Engineer | Hoch (Technisch) | Befürworter | Gewährleistet die Zuverlässigkeit und Verfügbarkeit des Systems; | | Machine Learning Engineer | Hoch (Technisch) | Befürworter | Entwickelt das ML-Modell zur genauen Ölfleckdetektion; Schlüsselrolle. | | Senior Full-Stack Developer | Hoch (Technisch) | Befürworter | Verantwortlich für die Entwicklung von Front- und Backend-Komponenten; bringt umfassende Entwicklungskenntnisse ein. | | Junior Full-Stack Developer | Mittel (Technisch) | Neutral bis Befürworter | Unterstützt die Entwicklung von Front- und Backend-Komponenten; lernt und trägt zum Erfolg des Projekts bei. | | Abteilungen und funktionale Vorgesetzte der Teammitglieder| Mittel bis Hoch (Management) | Befürworter | Unterstützen die Arbeit der Teammitglieder und fördern die Zusammenarbeit im Projekt.| ![Titled Diagram](https://hackmd.io/_uploads/HJKGSm67T.png) # Projektorganisation Übung 05 ## Planung mit ProjectLibre - Bemerkungen ### Zeitliche Aspekte bei Vorgängen Vorgänge mit fixer Dauer beinhalten meistens Meetings mit anderen Projektteams oder dem Kunden, z.B. SPES-API planen. Ein weiterer Sonderfall ist "Uptime sicherstellen (on-call)". Die fixe Dauer ist im Vertrag geregelt (5 Jahre ab v1.0 Release). Vorgänge mit Termineinschränkungen gibt es nicht, abgesehen vom fixen Projekt-Starttermin am 01.01.2024. ### Annahmen bzgl. Vorgängerbeziehungen Einige Vorgänge können sich überlappen oder parallel stattfinden: + Sammelvorgang Implementation wird gestartet, während der Testplan noch fertiggestellt wird + Sammelvorgang Implementation Test läuft parallel zu Implementation, wird gestartet, sobald der Testplan fertig ist + Eng verbundene Vorgänge, z.B. Frontend components impl. und Frontend services impl. werden parallel von den selben Mitarbeitern abgearbeitet ### Arbeitsfreie Zeiten/Tage Es wurde angenommen, dass die Mitarbeiter jedes Jahr ihre gesamten Urlaubstage (25) konsumieren. Diese werden bevorzugt als Brückentage, um Weihnachten, und im Sommer verwendet. Die genauen Tage sind in den ProjectLibre Ressourcenkalendern eingetragen. Betriebsurlaube, Betriebsausflüge oder dienstfreie Tage sind nicht geplant. ### Ressourcenzuordnung #### Vorgänge, an denen der Projektleiter arbeitet: ![image](https://hackmd.io/_uploads/rkX1sAaDp.png) Der Projektleiter nimmt an allen Vorgängen teil, die Meetings mit Kunden oder anderen Projektteams inkludieren. Weiters ist er bei allen High-Level Planungsaufgaben beteiligt, z.B. Auswahl von Technologien und Systemarchitektur. Am Vorgang "Hotfixes" sind alle Mitarbeiter beteiligt, auch der Projektleiter. Es gilt, bei Release auftretende Probleme so schnell wie möglich zu beheben. Der Projektleiter hat weniger fix zugeteilte Vorgänge als andere Mitarbeiter, dass er das Projektteam flexibel bei anderen Vorgängen unterstützen kann. #### Vorgänge, an denen der Requirements Engineer arbeitet: ![image](https://hackmd.io/_uploads/r1Du3Rawp.png) Weil kein UI/UX-Designer im Projektteam ist, werden die UI mockups vom RE erstellt. #### Vorgänge, an denen der Site Reliability Engineer arbeitet: ![image](https://hackmd.io/_uploads/B1SE00aD6.png) #### Vorgänge, an denen der Senior Machine Learning Engineer arbeitet: ![image](https://hackmd.io/_uploads/H1vM0CaPp.png) #### Vorgänge, an denen der Senior Software Engineer arbeitet: ![image](https://hackmd.io/_uploads/Bkp-6CpDT.png) #### Vorgänge, an denen der Junior Software Engineer arbeitet: ![image](https://hackmd.io/_uploads/HkvCTATvT.png) #### Projekt-Statistik Projektanfang ist der 01.01.2024, -ende der 15.01.2032. Das liegt an dem sehr langen Vorgang "Uptime sicherstellen", wenn dieser nicht inkludiert wird, liegt das Ende am 26.08.2027. Ohne vorher erwähnten Vorgang beläuft sich die Projektdauer auf 3 Jahre, 7 Monate und 26 Tage. Der gesamte Arbeitsaufwand beträgt 12,163 Personenstunden, die Kosten 1.337.310 Euro. # Projektorganisation Übung 06 ### Risikoidentifikation *Identifizieren Sie zumindest 10 Risiken des Projekts und beschreiben Sie diese anhand der in den Folien genannten Merkmale.* 1. Name: Falsche oder unvollständige Trainingsdaten * **Kurzbeschreibung:** Falls in den Trainingsdaten die erhoben werden Fehler sind oder unvollständig sind wirkt sich das auf die AI aus wenn dies nicht berücksichtig wird * **Verantwortlicher:** Wolkenflug oder EMSA (je nach Erhebungsart) * **Risikoart:** Intern (bzw. Extern je nach Erhebungsart) - Operativ * **Risikokategorie:** Methodisches Risiko 2. Name: Gesetzesänderung bezüglich sensitive Satelliten Daten * **Kurzbeschreibung:** Würden sich die Gesetze ändern bezüglich sensitive Satelitenbilder könnte dies eine Auswirkung auf die Verarbeitungsmethode unserer Software haben. * **Verantwortlicher:** EMSA und Wolkenflug * **Risikoart:** Intern und Extern - Operativ * **Risikokategorie:** Politisches undn Rechtlisches Risiko 3. Name: Kündigung einer Person im Projekt * **Kurzbeschreibung:** Falls eine Person in diesem Projekt Kündigt kann das ausschlagebend sein für die Bearbeitungsdauer dieses Projekts. Vorallem falls dies eine Person von hoher Wichtigkeit ist. * **Verantwortlicher:** Wolkenflug * **Risikoart:** Intern - Strategisch * **Risikokategorie:** Wirtschaftliches und Personelles Risiko 4. Name: Falsche Entscheidungen in der Archtitekturwahl * **Kurzbeschreibung:** Wenn bei der Wahl der Architketuren und der Software-Struktur die falsche Wahl getroffen wird und sich dies erst später durch unnötig komplizierten Code herausstellt kann dies zu Refactoring arbeiten führen. * **Verantwortlicher:** Wolkenflug * **Risikoart:** Intern - Operativ * **Risikokategorie:** Methodisches und Technologisches Risiko 5. Name: Over-/Underfitting der AI * **Kurzbeschreibung:** Bei "polishing" Arbeiten bezüglich der AI kann es vorkommen das diese Overfitted wird und somit für die Testdaten gut funktioniert aber für die Realewelt nicht. Falls sie am Anfang underfitted wird kann es regelmäßig zu falschen Ergebnissen kommen * **Verantwortlicher:** Wolkenflug * **Risikoart:** Intern - Operativ * **Risikokategorie:** Methodisches und Technologisches Risiko 6. Name: Unzufriedenheit mit der Qualität oder Geschwindigkeit * **Kurzbeschreibung:** Falls EMSA unzufrieden ist mit der Qualität des Codes oder der Geschwindigkeit des Feature-Releases sind könnten sie überlegen zu einem Konkurrenten zu wechseln * **Verantwortlicher:** Wolkenflug * **Risikoart:** Intern - Strategisch * **Risikokategorie:** Wettbewerbs Risiko 7. Name: Mangelhafte Kommunikation * **Kurzbeschreibung:** Vorallem Anfangs wo sich EMSA und Wolkenflug noch öfters über die Anforderungen unterhalten muss können zu lange Antwortzeiten oder Ungenaue Angaben zu Probleme und Verzögerungen führen * **Verantwortlicher:** EMSA und Wolkenflug * **Risikoart:** Intern und Extern - Operativ * **Risikokategorie:** Personelles Risiko 8. Name: Unrealistische Terminvorgaben * **Kurzbeschreibung:** Falls die Abschätzung der Release Zeit die bereits Anfangs getroffen wurde unrealisitsch ist könnte dies EMSA unzufrieden Stellen und das Projekt und zukünftige Projekte unserem Konkurrenten geben. * **Verantwortlicher:** Wolkenflug * **Risikoart:** Intern - Operativ (und evtl strategisch) * **Risikokategorie:** Methodisch und Wettwerbs Risiko 9. Name: Schnittstellenprobleme * **Kurzbeschreibung:** Falls bei der Besprechung von den APIs etwas unklar ausgedrückt wird oder später man doch etwas ändern muss könnte dies zu Qualitätsproblemen oder Zeitverzögerungen führen * **Verantwortlicher:** Wolkenflug * **Risikoart:** Intern - Operativ * **Risikokategorie:** Methodisch und Technologisches Risiko 10. Name: Unzureichende Tests * **Kurzbeschreibung:** Falls der angegebene Testplan unvollständig ist und dies Wolkenflug nicht bemerkt könnten Bugs im Code auftreten. Falls diese erst spät auftretten kann dies zu riesigen Problemen führen. * **Verantwortlicher:** EMSA und Wolkenflug * **Risikoart:** Intern / Extern - Operativ * **Risikokategorie:** Methodisches Risiko ### Risikoanalyse *Analysieren und klassifizieren Sie die identifizierten Risiken, indem Sie Ursachen, Auswirkungen, Eintrittswahrscheinlichkeit und Schadensausmaß/Auswirkung überlegen und die Risiken quantifizieren (Eintrittswahrscheinlichkeit * Schadensausmaß).* | Name | Ursache | Auswirkungen | Wahrscheinlichkeit | Ausmaß | Risiko (Wahrscheinlichkeit * Ausmaß) | | -------- | -------- | -------- | ------- | -------| -----| | Falsche/Unvollständige Trainingsdaten | Viele potentielle Gründe, unter anderem Fehler in Messgeräten | Der AI werden falsche Dinge beigebracht | 4 | 4 | 16 | | Gesetzesänderung | "Kollateralschaden" in neuem Datenschutzgesetz | Probleme mit Legalität der Verarbeitungsmethode | 1 | 3 | 3 | | Kündigung | Unzufriedenes Personal | Personalmangel | 2 | 4 | 8 | | Falsche Architektur | Mangelnde Voraussicht | Kompliziertes Refactoring | 3 | 4 | 12 | | Over-/Underfitting | Nicht genung Trainingsdaten | AI lernt falsch | 2 | 4 | 8 | | Unzufriedenheit | Feature-Release zu langsam oder nicht gut genug | Könnten Projekt an Konkurrenten verlieren | 2 | 5 | 10 | | Mangelhafte Kommunikation | Zu lange Antwortzeiten, ungenaue Angaben | Verzögerungen und Missverständnisse, die zu falscher Funktionalität führen | 3 | 3 | 9| | Unrealistische Terminvorgaben | Unterschätzung der Arbeitsmenge | Unzufriedenheit | 2 | 5 | 10 | | Schnittstellenprobleme | Ungenaue Angaben | Qualitätsprobleme und Zeitverzögerungen | 2 | 3 | 6| | Unzureichende Tests | Zum Beispiel Übersehen von wichtigen Sonderfällen | Bugs | 4 | 4 | 16 | ![Risk Analysis](https://hackmd.io/_uploads/HyIvv9D_T.png) ### Risikosteuerung *Überlegen Sie, wie Sie mit den einzelnen Risiken umgehen möchten (vermeiden, vermindern, ...) und welche Maßnahmen Sie dafür ergreifen.* | Name | Umgang | Maßnahmen | | ------- | -------| -----| | Falsche/Unvollständige Trainingsdaten | Vermindern | Trainingsdaten überprüfen | | Gesetzesänderung | Vermindern | Andere Datenquellen suchen | | Kündigung | Vermindern | Personal motivieren und nicht überarbeiten | | Falsche Architektur | Vermindern | Von Anfang an gut überlegen | | Over-/Underfitting | Vermindern | Regelmäßige Backups und regelmäßiges Testen | | Unzufriedenheit | Vermindern | Kommunikation mit Kunden | | Mangelhafte Kommunikation | Vermindern | Bei Unklarheiten nachfragen | | Unrealistische Terminvorgaben | Vermindern | Kommunikation mit Kunden | | Schnittstellenprobleme | Vermindern | Kommunikation mit Kunden | | Unzureichende Tests | Vermindern | Tests mehrmals überprüfen | ### Risikoüberwachung *Überwachen Sie Ihre Risiken und Maßnahmen in Hinblick auf Ihre Wirksamkeit bzw. Einfluss auf das quantifizierte Risiko.* Um die Motivation der Mitarbeiter und die Zufriedenheit des Kunden zu überwachen werden wir aktiv Feedback ermutigen. Die anderen Risiken und Maßnahmen werden ausführliche Dokumentation erfordern, die dann überprüft werden kann. Jeden Monat wird ein Risiko-Statusbericht erstellt, in dem die Wirksamkeit unserer Maßnahmen bewertet wird.

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully