Software Development Team
Definition Software
Als Software werden Programme und die dazugehörigen Daten verstanden. Sie ist der nicht-physische Teil eines computergestĂŒtzten Systems und leicht verĂ€nderbar. Software bestimmt, was ein GerĂ€t macht und auf welche Weise es Aufgaben ausfĂŒhrt.
Das schwer verĂ€nderbare GegenstĂŒck der Software wird Hardware genannt. Hardware sind alle softwaregestĂŒtzten GerĂ€te.
Soft- und Hardware arbeiten grundsÀtzlich zusammen. Mittlerweile sind nicht nur Computer mit Software ausgestattet, sondern auch viele eingebettete Systeme, die in alltÀglichen GegenstÀnden, wie beispielsweise in Waschmaschinen, Mobiltelefonen oder Fernseher, vorkommen.
Definition Software Development
Software Development, zu Deutsch Softwareentwicklung, definiert einen Prozess, in dem die Konzeption und Programmierung zum Beispiel von Frameworks (RahmengerĂŒste) und weitere Softwarekomponenten durchgefĂŒhrt wird. Im weiteren Sinne ist Software Development alles zwischen der Konzeption der Software, die den gewĂŒnschten Anforderungen gerecht werden soll und der endgĂŒltigen Fertigstellung. Daher können mehrere Arbeitsprozesse wie bspw. die Forschung, die Neuentwicklung oder das Prototyping in den Prozess der Softwareentwicklung involviert sein.
Das Software Development ist eine Dienstleistung und wird von Fachinformatikern, Developers und Programmierern angeboten.
Der Prozess der Softwareentwicklung umfasst grundlegend die folgenden AktivitÀten:
- Bedarfsanalyse
- Planen
- Entwerfen
- Implementieren, Testen, Dokumentieren
- Bereitstellung und Wartung
Bedarfsanalyse
Es gibt vielfĂ€ltige Quellen von Ideen fĂŒr Softwareprodukte. Ein Beispiel fĂŒr eine Quelle ist die Marktforschung. Die Idee fĂŒr ein neues Produkt wird in den meisten FĂ€llen von einem Marketingmitarbeiter im Hinblick auf z. B. die wirtschaftliche Machbarkeit, mögliche Auswirkungen auf bereits bestehende Produkte und auf die KompatibilitĂ€t mit bereits bestehenden Marketingzielen im Business geprĂŒft. In dieser Phase wird die Entscheidung getroffen, ob die Idee weiterverfolgt werden sollte.
Planung
In den Bereich der Planung fÀllt die sogenannte Anforderungsanalyse, die zusammen mit dem Kunden ausgearbeitet wird. Der Kunde hat eine Vorstellung davon, wie die Software aussehen und welche Funktionen sie beinhalten soll. Die abgestimmten Anforderungen werden daraufhin sorgfÀltig dokumentiert.
Entwerfen
Im nĂ€chsten Schritt wird das Software Design entwickelt. Softwareentwickler können dafĂŒr beispielsweise ein Software-Design-Dokument anlegen, in dem ein vorlĂ€ufiger Entwurf enthalten ist. Zu diesem Zeitpunkt des Prozesses sollte bereits feststehen, welche Sprache, welches Betriebssystem und welche Hardwarekomponenten verwendet werden. Im sogenannten Low-Level-Design werden die Komponenten schrittweise zusammengefĂŒhrt, um zum Beispiel die erforderlichen Datenstrukturen oder die Quellcodes zu entwerfen. Auf diese Weise werden die Anforderungen an das entstehende Produkt gefestigt.
Implementieren, Testen, Dokumentieren
Innerhalb der Implementierung programmieren die Software-Ingenieure beispielsweise den Quellcode. Der Quellcode ist in einer Programmiersprache verfasst und stellt den Text eines Computerprogrammes dar.
Durch das Testen der Software können Fehler frĂŒhzeitig erkannt und behoben werden.
WĂ€hrend der gesamten Entwicklung einer Software wird eine Dokumentation durchgefĂŒhrt. Es gibt verschiedene Modelle, die vorgeben, in welchen Phasen eine Software entwickelt wird. Dabei kann zwischen plangetriebenen Modellen und agilen Methoden unterschieden werden. Der Dokumentationsaufwand hĂ€ngt vom gewĂ€hlten Modelltyp ab.
Ein Beispiel fĂŒr eine plangetriebene Methode ist das Wasserfallmodell. Es ist in aufeinanderfolgende Projektphasen organisiert und als lineares Vorgehen bezeichnet. Die Ergebnisse âfallenâ in die jeweiligen Phasen hinab und werden dort in die verbindlichen Vorgaben integriert. Die Phasen haben einen terminierten Start- und Endzeitpunkt. Das Management ist fĂŒr die Erledigung der anfallenden Aufgaben verantwortlich.
Die agile Softwareentwicklung arbeitet schneller und verzichtet auf das Planen bis ins kleinste Detail. Ein gĂ€ngiges Beispiel einer agilen Methode ist Scrum. Scrum wird innerhalb des Projekt- und Produktmanagements eingesetzt und findet den Ursprung in der Softwaretechnik. Inzwischen wird Scrum auch in vielen anderen Bereichen und Branchen verwendet. Ziele von Scrum sind die Transparenz zu schaffen, Ergebnisse und FunktionalitĂ€ten des Produkts in iterativen Schritten regelmĂ€Ăig zu ĂŒberprĂŒfen und gegebenenfalls anzupassen.
Bereitstellung und Wartung
Der Einsatz einer Software beginnt, wenn der Code getestet und freigegeben bzw. verkauft wurde. FĂŒr die richtigen Verwendung von Software sind Software-Schulungen und Software-Support wichtige Aspekte, die angeboten werden sollten.
Ebenfalls ist die regelmĂ€Ăige Wartung von hoher Wichtigkeit, da auf diese Weise gemeldete Probleme behoben werden können und die fehlerfreie Nutzung der Software seitens der Hersteller gewĂ€hrleistet werden kann.
Definition Software Development Team
In der agilen Vorgehensweise Scrum werden drei Rollen vergeben. Diese definieren den sogenannten Scrum Master, den Product Owner und das Software Development Team.
Product Owner
Der Product Owner ist eine Person, die fĂŒr den wirtschaftlichen Erfolg und die Quality des Produktes verantwortlich ist. Zudem pflegt er das Product Backlog, welches alle Anforderungen an das Endprodukt enthĂ€lt.
Scrum Master
Der Scrum Master ist fĂŒr das Coaching des Software Development Teams zustĂ€ndig. Er besitzt das nötige Know How, um auszubilden, zu unterstĂŒtzen und zu moderieren und ist fĂŒr die Beseitigung von Hindernissen, bspw. eine angespannte Kommunikation zwischen den Teammitgliedern, zustĂ€ndig.
Software Development Team
Das Software Development Team besteht aus Fachleuten, die im Scrum Sprint an einem Teil des Produkts zusammenarbeiten. Der Sprint ist auch als Iterationsphase bekannt und dauert fĂŒr gewöhnlich zwei bis vier Wochen. In dieser Phase wird ein Teilprodukt, auch Inkrement, des angestrebten Produkts entwickelt. Die Struktur der Arbeit gibt der Sprint Backlog vor, der Teil des Product Backlogs ist. Das Software Development Team arbeitet wĂ€hrend des Sprints zusammen und zeichnet sich dadurch aus, dass alle Teammitglieder eigenverantwortlich die Organisation ihrer TĂ€tigkeiten ĂŒbernehmen.
Mitglieder Software Development Team
Die Mitglieder im Software Development Team kommen hĂ€ufig aus vielen unterschiedlichen Bereichen zusammen und arbeiten daher in einem multidisziplinĂ€ren Umfeld. Ihre Spezifikationen hĂ€ngen von den Anforderungen des zu erstellenden Produkts ab. Im Bereich der Softwareentwicklung befinden sich hĂ€ufig zum Beispiel UX/UI-Designer, Frontend- und Backendentwickler und Ingenieure, die fĂŒr die QualitĂ€tssicherung zustĂ€ndig sind, zusammen.
UX/UI-Designer arbeiten an der Art und Weise wie Users mit dem Produkt interagieren. UX bedeutet User Experience. Experience heiĂt ĂŒbersetzt Erfahrung. User Interface wird als UI abgekĂŒrzt. Sie konzentrieren sich auf die FunktionalitĂ€t und die Benutzerfreundlichkeit des Produkts.
Developer fĂŒr das Front- und Backend arbeiten an der eigentlichen Codierung des Programms. Frontend-Entwickler befassen sich mit den Elementen, mit denen der Kunde am Ende arbeiten wird und optimieren bspw. die BenutzeroberflĂ€che. Alles, mit dem der Benutzer nicht in BerĂŒhrung kommt, wird vom Backend-Entwickler konzipiert und bearbeitet.
QualitĂ€tssicherungsingenieure werden auch Quality Assurance Engineer (kurz QA) genannt. Sie testen das Produkt und geben Auskunft ĂŒber den Stand der FunktionalitĂ€ten und der QualitĂ€tsstandards. Sie erkennen Fehler und Bugs in der erstellten Software und leiten diese zur Behebung an das Team weiter.
Im Scrum Guide, der ebenfalls von den Entwicklern der Scrum Methode Ken Schwaber und Jeff Sutherland entwickelt wurde, werden Werte beschrieben, die als eine Art Leitfaden bei der Arbeit mit Scrum fungieren. Jedes Teammitglied sollte sich mit diesen Werten identifizieren können:
- Engagement
- Fokus
- Offenheit
- Respekt
- Mut
Aufgabenverteilung im Team
Die Aufgaben werden unabhÀngig der Profession im Team verteilt. Jedes Mitglied sollte in der Lage sein, eine Aufgabe im Product Backlog zu bearbeiten und Ideen im gesamten Team zu entwickeln, wie einander geholfen werden kann.
Daher sollten die einzelnen Product Backlog Items so aufgeteilt werden, dass auch fachfremde Leute einen Teil zur Lösung beitragen können.
Software Development Team GröĂe
Das komplette Team sollte aus mindestens drei (Scrum Master, Product Owner und Development Team) und maximal zehn Personen bestehen. Der Scrum Master und der Product Owner können dazugezÀhlt werden.
In einer Gruppe, die mehr als zehn Mitglieder hat, wird die Kommunikation untereinander erschwert. Die Aufgabenstrukturierung kann unĂŒbersichtlich werden und dazu fĂŒhren, dass die einzelnen Teammitglieder den Ăberblick verlieren. Zudem ist es weniger leicht, einander Hilfe anzubieten und das gegenseitige UnterstĂŒtzen zu gewĂ€hrleisten.
Unterschiede zu nicht agilen Teams
Die agile Softwareentwicklung basiert auf den vier LeitsĂ€tzen und zwölf Prinzipien, die das Agile Manifest hervorbrachte. Die LeitsĂ€tze besagen im Wesentlichen, dass der Austausch mit dem Menschen bei der Softwareentwicklung im Vordergrund stehen sollte. Zudem ist es wichtiger, auf Ănderungen reagieren zu können, als einem vorgegebenen Plan zu folgen.
Daher ergeben sich grundlegende Unterschiede zwischen den Teams, die in plangetriebenen Modellen arbeiten und jenen, die agile Vorgehensmethoden verwenden: In plangetriebenen Modellen werden die individuellen Leistungen bewertet. In agilen Methoden stehen die Teamleistungen im Vordergrund. Im plangetriebenen Team sind unterschiedliche Rollenzuweisungen und Berufsbezeichnungen vertreten. Agile Teams sind funktionsĂŒbergreifend und haben multidisziplinĂ€re FĂ€higkeiten.
Software Development Team bei TenMedia
TenMedia ist eine moderne Softwareagentur mit Sitz in Berlin Mitte und arbeitet mit dem agilen Projektmanagement Modell Scrum. Wir realisieren interessante Projektideen und achten dabei auf die BedĂŒrfnisse unserer Kunden. Unser Software Development Team arbeitet in Form kleiner Scrum Sprints und entwickelt Teilprodukte, die dem Kunden transparent in regelmĂ€Ăigen Meetings prĂ€sentiert werden.
Sie haben eine Idee fĂŒr ein spannendes Produkt? Dann freuen wir uns auf eine erste unverbindliche Kontaktaufnahme. Rufen Sie uns gerne an oder schreiben Sie eine E-Mail.