
Die interne Küche des IT-Produktentwicklers ist vielfältig und immer voller unterschiedlicher Aufgaben. In jedem Projekt finden Menschen mit unterschiedlichen Verantwortlichkeiten ihre Anwendung.
Am Beispiel eines Projekts werden wir uns den Entwicklungsprozess genauer ansehen. Vorher werde ich alle Phasen dieses Prozesses und die funktionalen Verantwortlichkeiten der Mitarbeiter beschreiben.
Lebenszyklus der IT-Produktentwicklung
Die Phasen des Zyklus werden nachstehend beschrieben, beginnend mit dem Moment, in dem der Kunde dem Auftragnehmer seine Ideen formuliert hat.
Die richtige Planung der zukünftigen Produktfunktionalität und Anforderungsanalyse spielt eine Schlüsselrolle für das gesamte Projekt. Der Projektmanager ist für diese Phase verantwortlich, da er für den Erfolg des gesamten Entwicklungsprozesses verantwortlich ist.
Vor dem Produktdesign ist die Planung „rau“, da es derzeit unmöglich ist, den genauen Entwicklungsverlauf herauszufinden.
Nachdem das UX / UI-Design abgeschlossen ist, können Sie einen genauen Plan erstellen, wie die Entwicklung verlaufen wird und welche Funktionen im Produkt enthalten sein werden.
Nach der Planung sind UX / UI-Designer an der Reihe - Spezialisten, die Benutzeroberflächen entwerfen. Designer untersuchen das Benutzerverhalten und erstellen eine für Menschen lesbare Oberfläche. Das visuelle Erscheinungsbild des Produkts ist auch das Ergebnis der Arbeit von Designern.
Gemeinsam mit ihnen arbeiten Systemarchitekten, die entscheiden, welche Struktur das fertige Produkt haben soll und wie es sich verhalten soll.
Entwickler folgen einer der Methoden - für das Unternehmen ist es hauptsächlich Agile. Diese Methodik beinhaltet einen flexiblen iterativen Ansatz - das heißt, Entwickler handeln nacheinander und teilen das Projekt in kleinere Aufgaben auf.
Agile Iterationen werden Sprints genannt, und ein Sprint umfasst Arbeiten in allen Bereichen: Planung, Design, Entwicklung, Test.
Testspezialisten führen verschiedene Arten von Tests durch: Unit-Tests, Integrationstests, Schnittstellentests und andere Arten, je nach Zweck. Diese Kategorie von Spezialisten sollte zu dem endgültigen Schluss kommen, dass das Produkt keine Fehler aufweist und zur Veröffentlichung bereit ist.
Danach kann das Produkt implementiert und in Software von Drittanbietern integriert werden. Der Entwicklungsprozess endet nicht dort - er wird fortgesetzt, bis Verbesserungen vorgenommen wurden.
Das fertige Produkt benötigt möglicherweise zusätzlichen Support, sei es zusätzliche Fragen der Kunden zur Arbeit des Produkts oder die Notwendigkeit, Änderungen an den bereits festgelegten Funktionen vorzunehmen - Support-Service-Spezialisten sind immer bereit, Ihnen zu helfen.
Die meisten Entwicklungsprojekte durchlaufen alle oben beschriebenen Phasen des Lebenszyklus.
Zum Beispiel werden wir uns den Produktentwicklungsprozess für das aktuelle Unternehmensprojekt genauer ansehen.
Stufe 1: Idee
Der Kunde ist eine staatliche Druckerei. Weltweit erlebt diese Branche nicht die besten Zeiten, aber in den USA bleiben Druckunternehmen dank innovativer Technologien über Wasser. Die Druckerei hat uns gebeten, eine Anwendung für Augmented Reality zu entwickeln - Augmented Reality, AR.
Der United States Postal Service, der gedruckte Transaktionsberichte versendet, gewährt Partnerunternehmen Rabatte, die den Papierverbrauch durch Technologie senken. Unser Kunde ist zu einem dieser Unternehmen geworden.
Stufe 2: Kontakt
Unternehmensvertreter kontaktierten uns, um ihre Idee vorzustellen. Sie wollten eine Augmented Reality Marketing App. Vor uns verwendeten sie das Catchoom-Bilderkennungssystem, sie wollten auch ein Content-Management-System als separates Produkt lizenzieren, aber das Unternehmen lehnte ab. Darüber hinaus wollte der Client einzigartige Funktionen hinzufügen, die in der Catchoom-Lösung nicht enthalten waren. Daher war es unsere Aufgabe, im Gegenzug ein geeignetes System zu entwickeln.
Stufe 3: Planung
Der Kunde hat die Grundfunktionen des Produkts beschrieben, bevor er uns kontaktiert hat. Das Entwicklungsteam musste die Idee des Projekts untersuchen und alle erforderlichen Anforderungen sammeln, Engpässe identifizieren und alles dokumentieren. Projektdetails und technische Details wurden in jedem Sprint angegeben.
Das Team, das die Anforderungen sammelt, bewertet die erhaltenen Informationen, den Vorschlag, die Entwicklungskosten und den Preis, die als RFx bezeichnet werden. In der Regel besteht ein solches Team aus technischen Spezialisten, einem Projektmanager und einem Vertriebsleiter. Gültiges RFx vor Projektstart.

Der Kunde untersucht die Projektevaluierung, um ein grundlegendes Verständnis dafür zu erhalten, wie das Projekt aussehen und wie die Entwicklung durchgeführt wird. Es bestimmt auch die Zeit und die Kosten.
Nachdem der Kunde den Entwicklungsplan und das Budget genehmigt hat, kann das Projekt gestartet werden.
Kommentar von Projektmanager Alexander:
„Ich bin für den kontinuierlichen Fortschritt des Projekts verantwortlich. Ich habe mich für die Scrum-Methode entschieden, um schnell auf Kunden- und Marktanforderungen zu reagieren. Scrum hilft uns, das Produkt zu entwickeln, die Bedürfnisse der Benutzer in jeder Produktversion zu berücksichtigen und die fortschrittlichsten Technologien in der Entwicklung einzusetzen. “
Stufe 4: Design
Der Kunde war offen für alle Ideen unserer Designer und vertraute der Vision von Spezialisten. Der UX / UI-Designer beschrieb seine Sicht auf das zukünftige System auf der Grundlage allgemein anerkannter UX-Praktiken, der Kunde stimmte zu, und das Design begann.
Stufe 5: Entwicklung und Test
Der Kunde besuchte persönlich das Büro des Unternehmens, um sich mit dem Entwicklungsteam zu treffen und das Management des Unternehmens kennenzulernen. In den ersten sechs Monaten kam der Kunde einmal im Monat, um die Kommunikation aufzubauen, das Team besser kennenzulernen und Vertrauen zwischen den Parteien aufzubauen.
In der ersten Entwicklungsphase bestand das Team aus:
- Ein Projektmanager, der auch die Aufgaben eines Geschäftsanalysten ausführte;
- UX / UI-Designer;
- Entwicklungsteams.
In der Anfangsphase führten die Entwickler Tests ohne Beteiligung von QS-Spezialisten selbst durch. Die Herausforderung bestand darin, eine Reihe von Prototypen für Demonstrationen auf Konferenzen zu erstellen und potenzielle Kunden anzulocken. Dann waren keine detaillierten Tests erforderlich.
Als der Entwicklungsprozess an den grundlegenden Funktionen arbeitete, musste das Team erweitert werden. Infolgedessen sah sie so aus:
- Projektmanager;
- Ein Business Analyst mit einem breiteren Aufgabenspektrum als der Manager zuvor;
- UX / UI-Designer;
- Entwickler
- Leiter des Entwicklungsteams (Teamleiter);
- Systemarchitekt, der die Produktstruktur entwickelt hat;
- Testspezialist;
- DevOps - eine Verbindung zwischen Entwicklung und Betrieb, die mit einer Netzwerk- und Produktbereitstellung zusammenarbeitet.
Der Leiter des Entwicklungsteams Igor stellte seine Innovationen vor:
„In diesem Projekt bin ich dafür verantwortlich, die Aufgaben des Projekts zu erfüllen, den Code zu überprüfen, Sprints (Iterationen in der Entwicklung) zu planen und neue Aufgaben einzuführen. Ich schlug vor, Unit-Tests mit GitFlow durchzuführen und Code mit AWS Lambda zu erstellen. Ich stelle auch neue Teammitglieder vor, ich bin für deren Anpassung verantwortlich. "
Der Beitritt zum Teamleiter war eine wichtige Entscheidung, da die Entwicklung von Anwendungsversionen für iOS und Android sowie der Webversion so koordiniert wurde, dass sich alles in eine Richtung bewegte.

Business Analyst Flor sagt:
„Dank der Organisation des Projekts war meine Arbeit äußerst klar und effektiv. Ich habe Kundenanfragen bearbeitet und verständlich und technisch korrekt an das Entwicklungsteam weitergeleitet. Ich habe mit einem UX / UI-Designer zusammengearbeitet, und unser Projektmanager war für die Verhandlungen verantwortlich, sodass ich mich auf meine Hauptaufgaben konzentrieren konnte. “
Wie Sie sehen, benötigte das Team zusätzliche Spezialisten, um die zusätzlichen Aufgaben zu lösen. Eine solche Teamzusammensetzung kann eine kompetente Systementwicklung ohne Fehler ermöglichen.
Stufe 6: Unterstützung
Support wird normalerweise auf 3 Ebenen angeboten:
- Erste Ebene. Grundlegende Hilfe, einfache Fragen, die nicht viel Aufmerksamkeit erfordern, werden auf dieser Ebene bearbeitet.
- Die zweite Ebene. Erweiterte Hilfe von Mitarbeitern mit tieferen Produktkenntnissen. Dies sind nicht unbedingt technische Spezialisten, aber sie kennen das Produkt definitiv sehr gut.
- Dritte Ebene. Das Expertenlevel wird von erfahrenen Spezialisten durchgeführt: Produktmanagern, Ingenieuren.
Es gibt auch keine Unterstützung durch Broschüren und Benutzerhandbücher.
Tatsächlich gibt es keine Zeit, in der die Arbeit an Software als vollständig abgeschlossen gilt. Entweder werden vom Kunden neue Wünsche bezüglich der Erweiterung der Funktionsfähigkeiten erhalten, oder es ist Unterstützung für Benutzer des Produkts erforderlich. Beispielsweise wollten Clientbenutzer die Anwendung aktualisieren und ihre Funktionalität erweitern.
Dieses Projekt repräsentiert alle Phasen des Entwicklungslebenszyklus. Wenn wir im Detail betrachten, sieht die Arbeit an einer Software ungefähr gleich aus und entspricht häufig dem obigen Schema.