Leistungen

Ich biete professionelle und fundierte Beratung, Betreuung und Trainings zu agilen Themen für ihr Unternehmen. Auch als agiler Softwareentwickler helfe ich gerne bei der Fertigzustellung ihres Produkts.

Im Einzelnen:

Projekte

Anbei finden Sie eine Auswahl meiner bisherigen Projekte samt einer Kurzbeschreibung:

Projekt/Thema: Scrum-Implementierung im Unternehmen
Rolle: Agile Coach & agiler Softwareentwickler
Kurzbeschreibung: Meine Auftrag war es, ein Scrum Team aufzubauen, zu schulen und zu betreuen. Gleichzeitig musste der Entwicklungsprozess des Teams mit der vorhandenen Prozess-Infrastruktur verknüpft und diese möglichst schonend angepasst werden. Zusätzlich mussten verschiedene Applikationen geschrieben werden um Automationslücken zu schließen.
Projekt/Thema: Buildsystem, Continuous Integration
Rolle: Berater & agiler Softwareentwickler
Kurzbeschreibung: Meine Aufgabe bestand darin, Continuous Integration als Service für andere Teams und Abteilungen anzubieten - weltweit. Die gesamte Infrastruktur - Hardware, Software und Prozesse - musste dafür definiert und aufgebaut bzw. angepasst werden. Zusätzlich mussten mehrere Applikationen erstellt werden, um vorhandene Automationslücken im bestehenden Prozess zu schließen oder um Monitoring-Aufgaben zu übernehmen.
Projekt/Thema: Continuous Integration & Delivery
Rolle: Scrum-Master & agiler Softwareentwickler
Kurzbeschreibung: Mehrere Scrum-Teams mussten betreut und koordiniert werden. Auch wurde der vorhandene Continuous Delivery-Prozess erweitert. Dazu ist ein System zur Testautomatisierung entwickelt worden, das verschiedene Test-Hardware auf unterschiedliche Szenarien abbilden konnte.
Projekt/Thema: Scrum-Master, Agile Softwareentwicklung
Rolle: Scrum-Master & agiler Softwareentwickler
Kurzbeschreibung: Schrittweise sollte Scrum als Entwicklungsprozess etabliert, ein Scrum-Team aufgebaut und dieses als Scrum-Master betreut werden. Gleichzeitig wurden die Software-Buildprozesse schrittweise in Richtung Continuous Integration automatisiert. Neben der Embedded-Software Entwicklung mussten viele PC-Applikationen für die Aufbereitung der Daten für das Embedded-System entwickelt werden.
Projekt/Thema: Embedded-Software Entwicklung
Rolle: Entwicklungsingenieur
Kurzbeschreibung: In diesem klassischen Embedded-Projekt wurde die Software ohne dediziertes Betriebssystem entwickelt. Neben den Regelungs- und Steuerungsaufgaben musste ein Vollgrafikdisplay angesteuert werden. Besonders erwähnenswert hierbei ist die Aufbereitung der Anzeigetexte und deren Überprüfung bzgl. Font, deren Kompression und die Verarbeitung auf dem Controller unter Berücksichtigung des Laufzeitverhaltens.
Projekt/Thema: Anwendungsentwicklung
Rolle: Softwareentwickler
Kurzbeschreibung: Eine Applikation zur Aufbereitung von Informationen sollte mit C++ unter Verwendung von MFC entwickelt werden. Word-Dokumente, PDF's und Textdateien sollten indexiert und aufbereitet und anschließend sollten die Ergebnisse mit Hilfe einer Webseite, z.B. mit Schlagwortsuche oder Kategorienwahl, untersucht werden können.

Philosophie

Seit mehr als 10 Jahren beschäftige ich mich mit der Entwicklung von Software. Dabei konnte ich die Softwareentwicklung in all ihren Phasen kennenlernen. Ob nun in der Planung, in der Entwicklung, im Test, in der Qualitätssicherung, im Projekt- oder Prozessmanagement, ob nun als Entwickler im Team oder als Teamleiter, mit klassischen Vorgehensmodell oder agil. Immer konnte ich mich begeistern, lernen und durch zunehmendes Wissen mit einbringen, mitgestalten und organisieren.

Es gibt keinen Ersatz für Wissen und so ist es mir sehr wichtig die gemachte Erfahrung aus den Projekten in Bezug zu fundiertem, aktuellem Wissen zu setzen. Eine ständige Aus- und Weiterbildung neben dem Beruf ist für mich eine Selbstverständlichkeit. Im Laufe der Jahre konnte ich mir daher ein sehr umfassendes Wissen aneignen, besonders zur agilen Softwareentwicklung, Entwicklungsprozessen und zu Management & Führung.

Meine Grundsätze

Softwareentwicklung ist Teamarbeit

Erst die Interaktion aller Projektbeteiligten erzeugt die nötige Dynamik um effektiv und effizient zum Ziel zu gelangen. Dazu sind ausgeprägte soziale und vor allem kommunikative Fähigkeiten essenziell. Dies muss gefördert und gezielt geschult werden. Wird ein Team aufgebaut oder optimiert bzw. ausgebildet ist ebenfalls der Mensch mit seinen Interaktionen in einem komplexen System zu betrachten und nicht als Ressource. Notwendige Veränderungen müssen maßgeschneidert und passgenau erfolgen.

Softwareentwicklung ist Wissensarbeit

Erst am Ende eines Projektes wäre genug Wissen vorhanden um die richtigen Entscheidungen gleich von Beginn an treffen zu können. Die meisten Softwareentwicklung-Projekte sind empirische Prozesse und es gilt dies zu unterstützen. Feedback- und Synchronisationspunkte samt Transparenz müssen geschaffen werden um in den Domänen des Prozesses, des Produktes und der Beteiligten für Wissenstransfer und Erfahrungsaustausch zu sorgen.

Softwareentwicklung ist Qualitätsarbeit

Erst wenn an einem Softwareprodukt nach seinem erfolgreichen Abschluss weitreichende Änderungen von einem anderen Entwicklungsteam gemacht werden sollen, erfolgt eine besondere Art der Qualitätsprüfung. Die Standardkriterien zur Qualität, wie funktionale Anforderungen, Performance etc. , sind Standard und sehe ich als Voraussetzung für jedwedes Ergebnis an. Die Änder- und Wartbarkeit sind komplexe, nicht funktionale Kriterien, die, um sie zu erfüllen, viele andere Qualitätseigenschaften in sich vereinen. Es gilt sicherzustellen, dass das Produkt nach sämtlichen technischen Standards entwickelt wird, dass die Architektur sowie die Infrastruktur automatische Komponenten-, Akzeptanz-, Integrations- sowie Systemtests unterstützt, dass der Automations- und Dokumentationsgrad dem Verständnis der agilen Softwareentwicklung entspricht. Erst dann ist die Qualität eines Softwareprodukt nachhaltig gesichert.

Kontakt

✉ Mail: info@tstahl.de