Traditionell oder Agil - beide Welten sind mir vertraut. Ich unterstütze Sie in allen Phasen ihres Projektes von der Anforderungsaufnahme/Analyse über Softwarearchitektur, Softwaredesign/Konzeption, Umsetzung bis hin zu Test und Rollout. In langen oder kurzen Iterationen, im Team oder in kleinen Projekten auch gerne als Einzelperson mit den Fachabteilungen zusammen - als Mitglied Ihres Teams oder in der technischen Leitung. Mein Ziel ist Ihr Projekt voranzutreiben.
Für die einzelnen Phasen ihres Projektes biete ich:
- Anforderungsaufnahme/Analyse: Ich unterstütze Sie bei der Aufnahme der Anforderungen des Fachbereichs oder der Anwender. Die Anforderungen werden priorisiert und je nach Vorgehensmodell in Anforderungsdokumenten, Epics/Stories erfasst. Die Analyse erfolgt fach-nah, d.h. für Anwender/Fachabteilungen lesbar und nachvollziehbar.
- Architektur: Software benötigt Architektur. Eine Laufzeitumgebung, Bibliotheken, Datenbanken, Webfrontends, Schnittstellen (Webservices, REST, EJB, usw.), Umsetzungs-strategien/-technologien, die ineinander-greifen und Entwicklung und später auch Anwender unterstützen. Manche Komponenten liegen fest und es gilt andere zu finden, die passen. Alles muss ein festes Fundament bilden. Wichtig ist auch die Eingliederung neuer Software in die Unternehmensarchitektur, wie SOA, Anbindung vorhandener Systeme, wie SAP oder B2B-Kommunikation über REST, SOAP, Jason-RPC o.Ä.
Auch Altsysteme gilt es oftmals zu berücksichtigen. Dann ist eine vernünftige Kapselung der entsprechenden Schnittstellen wichtig, um diese Systeme schnell umstellen zu können.
Architektur beschäftigt sich weiterhin mit der Verteilung der Daten im Unternehmen, Datenschutz und Security by Design sowie Planung von Integrationstestmöglichkeiten der Software. Das Fundament ist entscheidend und sollte nicht vernachlässigt werden. - Design/Konzeption: Ich biete Umsetzungsplanung anhand der vorgegeben Architektur. Ich biete Antworten auf Fragen wie: Wie passt die Software ins Konzept? Wie werden neue Anforderungen in eine vorhandene Software genommen? Wo wird ein Reengineering benötigt? Was sollte wie getestet werden? Welche Auswirkungen hat eine Änderung auf andere Systeme? Was muss dort getan werden?
Die Adaption fachlicher Anforderungen an technische Gegebenheiten fällt mir leicht und ich mache Aussagen über Aufwände und Zeithorizonte, wenn nötig. Auch hier coache und unterstütze ich Entwickler, wenn Bedarf besteht. Immer habe ich die Teamarbeit im Blick - Motivation entsteht aus einem Miteinander. - Code-Review: Zur Gewährleistung von Coding-Richtlinien und Qualitätssicherung des implementierten Codes führe ich Code-Review durch. Ich mache Verbesserungsvorschläge, sehe aber auch gute Ansätze und ermutige eingeschlagene Wege zu besserer Qualität weiterzugeben.
- Test: Testkonzepte und Umgebungen müssen erstellt und betreut werden. Ich unterstütze hier aus Architektur und Entwicklersicht, helfe Systeme aufzusetzen, alte Wege weiter zu unterstützen und neue Wege zu gehen. Sicherstellung der Softwarequalität auf allen Ebenen ist mir wichtig. Hierzu setze ich auf unterstützende Tools wie SONAR. Ich arbeite mit modernen CI Systemen, wie Jenkins, die die Qualität von Software stetig und zuverlässig sicherstellen.
- Rollout: Am Ende steht die Benutzung der Software durch die Anwender bzw. bei Serversoftware durch andere Applikationen. Planung, Rolloutkonzepte, Migrationen und Streuung von Informationen sind hier mein Hauptanliegen. Die Software muss schnell und unproblematisch zum Kunden/Client und am Ende muss eine Verbesserung spürbar sein. Gut wird ein Rollout, wenn man hinterher ein Fest feiern will.
Natürlich habe ich Ihnen hier nur einen kurzen Einblick über meine Erfahrungen und Möglichkeiten der Mitwirkung in Projekten geben können. Ich halte es immer mit einem Ausspruch eines Freundes: "Keine Technologie ist mir fremd, es sei denn ich lasse mich nicht darauf ein!". Offenheit für Arbeitsweisen und Weitblick für Verbesserungen runden das Profil ab.