Softwareentwicklung: Was sind die Schlüsselrollen im Team?
Veröffentlicht: 2021-01-29Viele Leute denken, dass es ausreicht, einen einzigen Entwickler einzustellen, um eine App zu erstellen. Mit zunehmender Komplexität und zunehmender Entwicklungszeit wird jedoch klar, dass jemand andere Rollen übernehmen muss, auch wenn diese nicht klar definiert sind.
Die Softwareentwicklung erfolgt im Rahmen von Projekten. Der Zeitrahmen, das gewünschte Ergebnis und das Budget sind klar umrissen. Zu jedem Projekt gehören auch Personalressourcen, und es ist wichtig, die Teilnehmer richtig auszuwählen, da dies Einfluss auf das erforderliche Budget hat. Versuchen wir also herauszufinden, wer an der Projektentwicklung beteiligt ist und welche Aufgaben sie haben.
- 10 Schlüsselrollen im Softwareentwicklungsteam
- 1. Projektmanager
- 2. Analyst
- 3. Architekt
- 4. Leitender Entwickler (Teamleiter)
- 5. Entwickler
- 6. QA-Spezialist/Tester
- 7. Designer
- 8. Systemadministrator/DevOps-Beauftragter
- 9. Leiter der Entwicklungsabteilung
- 10. Kunde/Produktinhaber
- Typische Rollenkombination
- Abschließend
10 Schlüsselrollen im Softwareentwicklungsteam
„Bei der Analyse der Projektrollen muss man verstehen, dass ein typischer Mitarbeiter eines Unternehmens mehrere Rollen gleichzeitig einnehmen und auch in unterschiedlichen Rollen an verschiedenen Projekten teilnehmen kann.“ – wie Sebastian Streiffert, der Chief Marketing Officer von Beetroot, in einem seiner jüngsten Artikel erwähnte.
Wir werden später über die Rollenkombination sprechen. Schauen wir uns nun die wichtigsten Rollen und Positionen eines Softwareentwicklungsprojektteams an:
Für Sie empfohlen: Wie überleben Software- und IT-Unternehmen die COVID-19-Pandemie?
1. Projektmanager
Diese Person erstellt einen Projektplan und übernimmt die Verantwortung für dessen Umsetzung. Er oder sie erhält Teile des Plans von den Mitarbeitern, fügt sie zusammen und überprüft ihre Konsistenz. PM ist dafür verantwortlich, Berichte für Teammitglieder zu erstellen und das Ergebnis pünktlich und innerhalb eines bestimmten Budgets zu liefern. Darüber hinaus übernehmen sie folgende Aufgaben:
- Führen Sie eine regelmäßige (wöchentliche) Überprüfung des Plans mit dem Kunden und dem Projektteam durch;
- Passen Sie den Plan an die Wünsche des Kunden an;
- Wöchentliche Projektberichte schreiben;
- Informieren Sie den Kunden und das Personal über die Probleme und versuchen Sie, diese innerhalb eines Budgets usw. zu lösen.
Grundsätzlich ist der PM für den KPI des Projekts verantwortlich. Laut Statistik werden nur wenige Entwicklungsprojekte pünktlich mit den festgelegten KPIs und innerhalb des ursprünglichen Budgets abgeschlossen. Wenn etwas schief geht, übernimmt der PM letztendlich die Verantwortung für die Verschiebung der Produktveröffentlichung, für Fehler bei Updates usw.
2. Analyst
Der Analyst ist dafür verantwortlich, Anforderungen zu verfassen und auf dem neuesten Stand zu halten. Insbesondere ist er/sie der Hauptverhandlungsführer mit dem Kunden über Projektanforderungen. Diese Person schreibt Empfehlungen für das Projekt und bespricht sie mit Stakeholdern, Architekten und führenden Entwicklern. Außerdem überprüft ein Analyst Testpläne, erklärt Testern Schwierigkeiten und kann auch an Codetests teilnehmen. Diese Person kann auch an der Überprüfung der Top-Level-Entwicklung teilnehmen.
Komplexe Projekte erfordern möglicherweise eine Gruppe von Analysten und einen Leiter, der für das Team verantwortlich ist.
3. Architekt
Diese Person entwickelt die Architektur für das Projekt. Bei großen Projekten sollte ein Architekt ein Vollzeitbeschäftigter sein. Dieses Teammitglied ist für High-Level-Dokumente (HLD) und die Ausrichtung der Architektur an den technischen Anforderungen des Kunden verantwortlich. Er/sie strukturiert das Projekt, verteilt Aufgaben zwischen den Entwicklern und hilft ihnen bei schwierigen Problemen.
4. Leitender Entwickler (Teamleiter)
Bei kleinen Projekten ohne dedizierte Architekten sind führende Entwickler für alle Entwicklungsaufgaben verantwortlich. Sie ernennen Entwickler, überprüfen den Plan und legen ihnen Fristen fest. Darüber hinaus übernehmen sie folgende Aufgaben:
- Akzeptieren Sie Arbeiten von Entwicklern und führen Sie eine Codeüberprüfung durch.
- Führen Sie Zweige im Repository zusammen und stellen Sie sicher, dass nur getesteter und relevanter Code in den Hauptzweig gelangt.
- Projektdokumente schreiben;
- Mitarbeiter schulen und ihnen bei schwierigen Problemen helfen;
- Code schreiben.
5. Entwickler
Diese Person schreibt den Code für das Projekt. Er oder sie liest die Anforderungen, analysiert komplexe Bereiche mit einem Analysten, nimmt Entwicklungsaufgaben von einem Teamleiter oder einem Architekten entgegen und gibt bei Bedarf Feedback. Ihre direkten Verantwortlichkeiten sind:
- Entwicklung von Codekomponenten und Unit-Tests;
- Durchführung von Tests;
- Prüfung, ob die implementierte Funktionalität den Anforderungen entspricht;
- Entgegennahme von Tickets von Testern und Korrektur von Fehlern;
- Teilnahme an Tests in schwierigen Fällen.
Ohne geschriebenen und kompilierten Code wird es keine App geben. Deshalb können Entwickler nicht ausgeschlossen werden, auch wenn einige Apps in einem einfachen visuellen Konstruktor erstellt werden, der ebenfalls eine Art Programmierung darstellt.
Vielleicht gefällt Ihnen: Zukunft des Software-Engineerings | Trends, Prognosen für 2021 und darüber hinaus.
6. QA-Spezialist/Tester
Dies sind die Personen, die prüfen, ob die App ordnungsgemäß funktioniert. Darüber hinaus bedeutet korrekt nicht immer benutzerfreundlich. Der Tester kann einen Usability-Hinweis verfassen, sein Hauptanliegen besteht jedoch darin, sicherzustellen, dass die App gemäß den Anforderungen und Spezifikationen funktioniert. Sie können Apps sowohl manuell als auch mithilfe von Autotests testen.
Was Analysten betrifft, können Tester nach Projektsubsystem oder Testmethoden zugewiesen werden. Bei mehreren Testern sollte einer von ihnen zum Teamleiter ernannt werden. Wenn es im Projektteam keine dedizierten Tester gibt, werden deren Funktionen in der Regel an Entwickler delegiert. Gleichzeitig wird davon ausgegangen, dass Entwickler ihre eigenen Codes nicht korrekt testen können und daher Kreuztests eine bessere Option sind.
7. Designer
Dies ist eine Person, die bestimmt, wie die App aussehen und funktionieren soll. Der Designer muss über die Position der Elemente, Bewegungsschemata, Animationen usw. nachdenken. Für komplexe Apps sind möglicherweise mehrere Designer erforderlich. Beispielsweise kann ein Designer die Benutzeroberfläche zeichnen, während der andere über das gesamte Konzept der Benutzerinteraktion nachdenken kann. Einige Softwareentwicklungsunternehmen haben keine Designer, daher können Entwickler diese Rolle für einfache Projekte übernehmen. Die Hauptaufgaben des Designers sind folgende:
- ScreenFlow-Entwicklung;
- Bildschirm-Prototyping;
- Optimierung der Benutzerinteraktion (Empfehlung geben);
- Beratung des Entwicklungsteams.
Manchmal ist ein Designer zusammen mit den Programmierern für einige Fehler in der Anwendung verantwortlich. Beispielsweise kann es recht schwierig sein, die Designvorstellungen des Kunden umzusetzen, sodass die Wahrscheinlichkeit von Fehlern steigt. Folglich hängen alle Fehler mit der Arbeit des Designers zusammen.
8. Systemadministrator/DevOps-Beauftragter
Dieses Teammitglied ist verantwortlich für den Continuous Delivery- und Continuous Integration-Workflow, die Organisation der Interaktion zwischen Systemen, die Bereitstellung und die Identifizierung von Problemen während des Tests. Sie beteiligen sich an der Planung und Arbeit an der Datenmigration und -synchronisierung. Darüber hinaus übernehmen sie folgende Aufgaben:
- Schreiben Sie einen Leitfaden zur Systembereitstellung und -verwaltung.
- Mit Kunden interagieren;
- Zusammenstellen und Strukturieren der Systemhardware;
- Installieren Sie VPNs und bewältigen Sie Firewalls.
- Stellen Sie das System ohne Programmierer bereit.
9. Leiter der Entwicklungsabteilung
Diese Person beteiligt sich an der Bildung von Projektteams. Sie sind für die Qualifikation der Mitarbeiter verantwortlich, daher besteht ihre Aufgabe darin, Schulungen zu organisieren und die Karriereentwicklung der Mitarbeiter zu überwachen. Darüber hinaus sind sie auch für den Komfort am Arbeitsplatz verantwortlich.
10. Kunde/Produktbesitzer
Dies ist das Hauptteammitglied, das den gesamten Ablauf der Produktentwicklung bestimmt. Diese Person entscheidet, was zu tun ist und bewertet, ob die Umsetzung mit dem Produktkonzept übereinstimmt oder nicht. Ein verantwortlicher Product Owner nimmt insbesondere folgende Aufgaben wahr:
- Definiert das Konzept des Produkts;
- Erstellt eine Marketingstrategie;
- Führt die Konkurrenzanalyse durch;
- Führt die Entwicklungsstatuskontrolle durch;
- Wahl der Produktstrategie und Monetarisierungsmethoden;
- Generiert Ideen zur Verbesserung der Geschäftsleistung;
- Bewertet die Produktqualität.
Das Hauptziel dieser Person besteht also darin, sicherzustellen, dass das Produkt den Geschäftszielen entspricht.
Typische Rollenkombination
Manchmal sagen Kunden bei der Diskussion der Ergebnisse, dass die Entwickler etwas falsch gemacht haben. Eine solche Situation kann auftreten, wenn einige Mitglieder des Projektpersonals mehrere Rollen gleichzeitig ausführen müssen. Dieses Problem tritt normalerweise auf, wenn die finanziellen Mittel für die Einstellung einer Gruppe von Entwicklern fehlen. Manchmal kann die Kombination von Rollen positive Ergebnisse bringen. Folgende Optionen sind beispielsweise möglich:
- Analyst + Tester – das hört sich gut an, aber so eine Person wird Sie ein Vermögen kosten;
- Projektmanager + Analyst – diese Option ist in einem kleinen Projekt akzeptabel;
- Architekt + leitender Entwickler – das ist bei kleinen Projekten in Ordnung;
- Projektmanager + leitender Entwickler – für kleinere Projekte mit einem erfahrenen Team aus Programmierern und Testern können Sie diese Option auch ausprobieren;
- Entwickler + Designer – möglich bei einem kompetenten Entwicklerteam.
Mittlerweile gibt es auch Teamrollen, die in einem Softwareentwicklungsprojekt möglichst nicht kombiniert werden sollten:
- Entwickler + Tester – nicht erlaubt.
- Architekt + Analyst – auf den ersten Blick klingt das akzeptabel, ist aber insgesamt keine Option. Diese beiden Rollen sind etwas gegensätzlich.
Wie Sie sehen, ist es zwar möglich, einige Positionen zu verschmelzen, bei anderen entsteht jedoch eine explosive Mischung, die dem Endergebnis schadet. Versuchen Sie, Rollenkombinationen zu vermeiden oder achten Sie darauf, genügend Zeit in die Projektentwicklung zu investieren.
Vielleicht gefällt Ihnen auch Folgendes: Tipps zur Selbstentwicklung als Remote-Softwareentwickler in COVID-19.
Abschließend
Jetzt wissen Sie, wer im Projektentwicklungsteam wer ist. Wenn Sie darüber nachdenken, eine App für Android oder iOS zu entwickeln, wissen Sie, welche Art von Menschen Sie finden müssen. Dabei können die Schlüsselrollen je nach Art des Projekts erheblich variieren. Wenn Sie die Software von Grund auf erstellen möchten, benötigen Sie ein anderes Team als diejenigen, die ein ERP-System implementieren oder eine BI-App für das Top-Management des Kunden installieren.
Wenn Sie Ihr eigenes Team einstellen, müssen Sie einen vollständigen Stab an Mitarbeitern aufrechterhalten, auch wenn diese nicht oder nicht vollständig in Ihre aktuellen Projekte eingebunden sind. In Wirklichkeit erfordern die meisten Projekte keinen Vollzeit-Designer, Systemadministrator oder Tester. Daher kann es eine gute Idee sein, ein engagiertes Entwicklungsteam einzustellen oder diesen Job auszulagern.
Welche Rollen in der Softwareentwicklung waren für Ihr Projekt und Ihr Team nützlich? Teile deine Erfahrungen mit uns in den Kommentaren.