Coaching

Falls Sie eine intensivere oder stärker projektbezogene Schulung benötigen als das durch ein Training möglich ist, können wir Ihre Teams und Projekte durch Coaching begleiten.

Unser Coaching-Ansatz

Im Gegensatz zum Training, bei denen die Teilnehmer anhand von „generischen“ Beispielen lernen, den vermittelten Stoff umzusetzen, werden beim Coaching die zu erwerbenden Fähigkeiten direkt während der Arbeit mit dem Produktivcode erworben. Unser Ziel ist, Ihren Teams die Kompetenzen und Fähigkeiten zu vermitteln, die sie benötigen um Ihre Projekte erfolgreich umzusetzen. Dazu begleiten unsere erfahrenen Coaches Ihre Mitarbeiter bei der täglichen Arbeit, identifizieren Verbesserungsmöglichkeiten, helfen bei der Lösung auftretender Probleme und führen individuell oder für das ganze Team "Mini-Schulungen" durch, bei denen Ihre Mitarbeiter neue Fähigkeiten „on-the-job“ lernen.

Selbstverständlich können Coaching und Training auch kombiniert werden: Dann werden beim Coaching auch klassische Trainings eingeflochten in denen den Teams neues Wissen vermittelt wird. Unmittelbar im Anschluss an das Training versuchen Ihre Mitarbeiter dann das neu erworbene Wissen bei der Arbeit an Ihrer Software einzusetzen. Unsere Coaches begleiten sie dabei, erläutern anhand Ihrer Design-Dokumente und Codebasis, wie die erlernten Techniken konkret eingesetzt werden können und geben Hilfestellungen bei auftretenden Problemen.

Coaching hilft in allen Phasen und allen Bereichen der Softwareentwicklung die Performanz und Zufriedenheit Ihrer Teams zu verbessern. Wir passen den Schwerpunkt und die geplante Zeitdauer unseres Coachings an Ihre individuellen Bedürfnisse an – unabhängig davon ob Sie ein zweiwöchiges Coaching zu technischen Themen oder ein projektbegleitendes Prozess-Coaching benötigen, wir finden die für Sie optimale Lösung.

Softwareentwicklung ist eine Tätigkeit, die viele verschiedene Facetten aufweist. Entsprechend vielseitig sind auch die Coaching-Tätigkeiten und -Ansätze: Jede Tätigkeit, die bei der Softwareentwicklung eine Rolle spielt kann kompetent durch unsere Coaches abgedeckt werden. Je nachdem ob sich das Coaching vorwiegend an die Entwickler selbst oder an Management und Scrum-Master wendet unterscheidet man zwischen technischem Coaching und Organisations- und Prozess-Coaching.

 

Technisches Coaching

Das technische Coaching wendet sich unmittelbar an Softwareentwickler; daher liegt der Schwerpunkt auf Themen, die unmittelbar mit dem Design und der Implementierung von Software zusammenhängen.

Themen die im technischen Coaching behandelt werden können

Techniken zum Finden von Software-Requirements
nd Beschreiben von Software-Features durch Use Cases (UC) und User Stories (US), sowie das Erstellen und Pflegen eines Produkt-Backlogs, der die gewünschten Features von zu entwickelnder Software beschreibt.

Techniken zum Refinement von US
durch die große, abstrakte US in kleinere US aufgespaltet werden, die in kurzer Zeit implementiert werden können und, eng damit zusammenhängend, Techniken wie z.B. Planning-Poker durch die der Entwicklungsaufwand für US abgeschätzt wird. Durch die gemeinsame Abschätzung des Entwicklungsaufwandes erlangt ein Team ein gemeinsames Verständnis für die zu entwickelte Software.

Die Grundprinzipien von guter Softwarearchitektur und gutem Softwaredesign
wie Mehr-Schichten oder Hexagonale Architektur, Clean Architecture etc. Dadurch wird die Grundlage für die Erstellung von Software gelegt, die leicht gewartet und erweitert werden kann und den Entwicklern ein Verständnis der großen Zusammenhänge der Software ermöglicht.

Design Patterns
die aufzeigen, wie verschiedene häufig vorkommende Probleme beim detaillierten Design und der Implementierung von Software gelöst werden können.

Clean Code
Regeln, die angeben wie die konkrete Implementierung der Software so gestaltet werden kann, dass der Code verständlich und leicht zu pflegen bzw. erweitern ist.

Testgetriebene Softwareentwicklung (TDD) und Continuous Integration
zwei Entwicklungspraktiken, die grundlegend für die agile Softwareentwicklung sind.

Fertigkeiten in Programmiersprachen
wie Java, C#, C++, Python oder JavaScript

 

Organisations- und Prozess-Coaching

Die Einbindung der Softwareentwickler in die betrieblichen Abläufe, die Herausarbeitung der Anforderungen an die Software in Zusammenarbeit mit Kunden und Anwendern, oder die Organisation der Entwicklungstätigkeiten haben alle großen Einfluss auf den Erfolg und die Effizienz eines Projekts. Insbesondere bei einer agilen Vorgehensweise ist es wichtig, dass der Entwicklungsprozess kontinuierlich an die tatsächlichen Erfordernisse der Teams angepasst wird. Dazu ist wichtig, dass die wirklichen Ursachen von auftretenden Problemen erkannt und beseitigt werden. Die Erfahrung zeigt, dass das oft schwieriger ist, als man meint. Lösungen, die sich bei einem Projekt oder einer Firma bewährt haben scheinen in anderen Projekten oder Firmen nicht zu funktionieren. Um die Ursachen für diese Probleme herauszufinden ist es oft nötig die Dynamik des zugrundeliegenden Systems zu analysieren, Ansatzpunkte für Verbesserungen zu identifizieren und basierend auf den Prinzipien der agilen Softwareentwicklung Lösungen zu entwerfen und realisieren. 

Unsere Coaches zeigen Teams und Managern Techniken zum Analysieren von Problemen und zum Finden der Ursachen für Probleme, und Vorgehensweisen um die gefundenen Schwachstellen basierend auf den Prinzipien der agilen Softwareentwicklung des "lean Mindsets" zu beseitigen. Dadurch helfen unsere erfahrenen Coaches Ihren Entwicklern, Scrum-Mastern und Managern einen agilen Ansatz zur Softwareentwicklung zu leben.

 

Consulting

Während der Schwerpunkt beim Coaching auf der Weiterbildung Ihrer Teams und Mitarbeiter liegt, nehmen unsere Mitarbeiter beim Consulting eine aktivere Rolle bei der Erstellung der Software ein. Auch hier bieten wir Ihnen maßgeschneiderte, auf Ihre individuellen Anforderungen abgestimmte Lösungen an. 

Consulting-Dienstleistungen können verschiedene Ziele haben

Falls Sie gerade keine Entwicklungskapazität für ein benötigtes Softwareprodukt haben
können wir für Sie die komplette Entwicklung einer „schlüsselfertigen“ Software-Lösung übernehmen. Für Firmen, die auf die Entwicklung von Front- oder Backendlösungen spezialisiert sind können unsere Consultants die Entwicklung derjenigen Komponenten übernehmen, mit denen Ihre Entwickler nicht vertraut sind. Zum Beispiel können unsere Entwickler für Sie moderne Web-Frontends in JavaScript entwickeln, wenn Sie auf die Realisierung von Java-Server-Lösungen spezialisiert sind.

Consulting-Dienstleistungen kommen aber nicht nur in Frage, falls Sie die Entwicklung eines kompletten Produkts in Auftrag geben wollen. In vielen Fällen benötigen Sie vielleicht nur Unterstützung bei einigen Phasen der Entwicklung oder bei der Verbesserung Ihrer Prozesse.

Analyse und Verbesserung des Entwicklungsprozesses
Manche Firmen erkennen z.B., dass ihre Entwicklungsprozesse nicht flexibel genug für die Anforderungen der modernen Softwareentwicklung sind, haben aber selber nicht die Expertise um eine Restrukturierung vorzunehmen. In diesem Fall können unsere Consultants die bestehenden Prozesse in Zusammenarbeit mit dem Management analysieren und Konzepte zur Verbesserung der Prozesse bzw. zur Einführung neuer Vorgehensmodelle erstellen.

Training, Coaching und Consulting in Künstlicher Intelligenz und Maschinenlernen

In den letzten Jahren haben Künstliche Intelligenz (KI) und Maschinenlernen (ML) nicht nur immer wieder für Schlagzeilen gesorgt, in vielen Bereichen wird der Einsatz von KI- und ML-Techniken zu einem wesentlichen Faktor für die Entwicklung konkurrenzfähiger und zukunftsweisender Produkte. Firmen, die aus der traditionellen Softwareentwicklung kommen haben aber oft Schwierigkeiten die Einsatzmöglichkeiten von KI- und ML-Techniken abzuschätzen und die für einen effektiven Einsatz dieser Techniken notwendigen Änderungen an ihren Prozessen vorzunehmen.

Wir bieten Ihnen eine maßgeschneiderte Kombination aus Training, Consulting und Coaching um Anwendungsmöglichkeiten für Künstliche Intelligenz und Maschinenlernen in Ihrem Bereich zu analysieren und erfolgreich in Ihre Software zu integrieren.

Wann ist Technisches Coaching sinnvoll und nötig?

Sie wollen Ihren Entwicklungsprozess modernisieren? Die Entwicklung Ihrer Software dauert zu lange? Sie wollen Ihre Software mit künstlicher Intelligenz ausstatten, haben aber keinen Experten in diesem Bereich? Ihre Software hat zu viele Fehler? Die Entwickler in Ihrem Unternehmen sind frustriert, weil selbst kleine Anforderungsänderungen schwer zu implementieren sind? 

In all diesen Fällen kann es sinnvoll sein einen unserer erfahrenen Coaches zu Rate zu ziehen, der gemeinsam mit Ihren Entwicklern die Ursachen der Probleme identifiziert, Lösungsvorschläge erarbeitet und umsetzt.