Modernes Vorgehen bei Softwareentwicklung 14. Netzwerkabend IT BFW Leipzig, 16.09.2015 Alle Rechte bei Lecos GmbH modernes Vorgehen bei Softwareentwicklung, Roy Barthel, 11.09.2015
Die Lecos GmbH kurz vorgestellt IT-Dienstleistung und -Beratung für Kommunalverwaltungen und kommunale Eigenbetriebe Gegründet 2001 als PPP der Stadt Leipzig und IBM Deutschland, heute GmbH mit zwei Gesellschaftern: Stadt Leipzig (90 %), Zweckverband KISA (10 %) Kunden: Stadt Leipzig und die Mehrzahl ihrer Eigenbetriebe, Zweckverband KISA mit rund 700 Mitgliedskommunen, Sächsische Anstalt für Kommunale Datenverarbeitung SAKD, etc. Umsatz 2014: 21,8 Mio. EUR / aktuell: 176 Mitarbeiter Folie 1
Die Lecos GmbH - Portfolio Planung, 2011 Betrieb und Betreuung von IT- und TK- Infrastrukturen, vom Rechenzentrum bis zum Arbeitsplatz Beratung und -Projektmanagement zur ITgestützten Neugestaltung von Prozessen Rechenzentrumsdienste Softwareentwicklung Betrieb/Betreuung kommunaler Fachanwendungen Massendruck- sowie Versandleistungen Folie 2
Agenda Methoden Werkzeuge Menschen Umfeld Folie 3
Folie 4
Vorgehensmodelle der Softwareentwicklung festgelegte Reihenfolgen von Aktivitäten, um Projekte abzuarbeiten Software muss in immer kürzeren Zeiträumen mit immer mehr Anforderungen realisiert werden die Anforderungen an Qualität steigen dabei kontinuierlich um die geforderte Software-Qualität zu erreichen, sind organisatorische Rahmen erforderlich Phasen und Reihenfolge des Arbeitsablaufes jeweils durchzuführende Aktivitäten Verantwortlichkeiten und Konsequenzen Definition der Anforderungen und der Teilprodukte erforderliche Inputs und ihre Anforderungen notwendige Mitarbeiterqualifikationen anzuwendende Standards, Richtlinien, Methoden und Werkzeuge Folie 5
Klassische Softwareentwicklung erst entsteht die Dokumentation, dann die Software der Kunde hat erst spät Einblick in die Realisierung bereits zu Beginn besteht das Risiko, dass formulierte Anforderungen nicht dem entsprechen, was der Kunde sich vorgestellt hat. dieses Risiko versuchen klassische Methoden durch vorgegebene Dokumente und Richtlinien zu minimieren Folie 6 sie konzentrieren sich darauf, bereits zu Beginn eines Projektes die größtmögliche Planbarkeit des Projektes zu erzielen Bildquelle: http://www.scrum-kompakt.de/grundlagen-desprojektmanagements/wasserfall-modell/
Klassische Softwareentwicklung häufige Probleme: Dokumentation / Anforderung oft unvollständig und inkonsistent Prioritäten fehlen Anforderungen kommen oft später als geplant Fertigstellungstermin oft fix Qualitätssicherung oft am Ende des Gesamtprozesses Kundenerwartung oft nicht erfüllt Folie 7
Agile Softwareentwicklung Anstelle der festen Abfolge»Spezifikation, Konstruktion und Umsetzung«wird in sehr enger und direkter Zusammenarbeit mit dem Auftraggeber entwickelt. Die Spezifikation erfolgt sukzessive während der Umsetzung. Agile Methoden konzentrieren sich darauf, kurzfristig auf Begebenheiten reagieren zu können. Es wird formuliert,»was«, nicht»wie«etwas durchgeführt werden soll. Neue Anforderungen und die Änderung von Anforderungen sind zu jeder Zeit willkommen. Bildquelle: http://www.scrum-kompakt.de/professionelles-requirements-engineering-mit-scrum/ Folie 8
Agiles Manifest Wir suchen nach besseren Wegen, Software zu entwickeln, indem wir es selbst praktizieren und anderen dabei helfen, dies zu tun. Individuen und Interaktionen haben Vorrang vor Prozessen und Werkzeugen. Lauffähige Software hat Vorrang vor ausgedehnter Dokumentation. Zusammenarbeit mit dem Kunden hat Vorrang vor Vertragsverhandlungen. Das Eingehen auf Änderungen hat Vorrang vor strikter Planverfolgung. Wir erkennen dabei sehr wohl den Wert der Dinge auf der rechten Seite an, wertschätzen jedoch die auf der linken Seite noch mehr. Folie 9
Guck auf Deine Beine! Hast Du die Disziplin für 10 Jahre hartes Training Ich werde einmal Fußballweltmeister Kannst Du das überhaupt Du hast aber Angst in Zweikämpfen Nach jedem Foul rennst Du weinend weg Folie 10
Guck auf Deine Beine! Viele Informatiker haben einen natürlichen Autismus* Wir arbeiten nach Checklisten, Tickets, Pflichtenheft, Wir machen agile Softwareentwicklung Wie ist der Prozess? Muss ich da mit Kunden reden? *Betroffene sind durch dieses Phänomen in verschiedenen Bereichen hochbegabt und haben im Gegenzug Defizite in anderen Bereichen (z.b. Wünsche des Kunden verstehen, Sympathie besonders beim ersten Kontakt erzeugen, Vertrauensbasis schaffen, ). Folie 11
Agile Softwareentwicklung Dass sich das größte Werk vollende, genügt ein Geist für tausend Hände. Quelle: Faust 2, V, Mitternacht. (Faust) Folie 12
Arbeiten 4.0 Jede Berufsgruppe verliert durch die Industrialisierung der IT ihre Routine-Anteile an den Computer Flachbildschirmrückseitenberatung Teiletauscher Auskunft geben oder Ich google das für Sie Anwaltliche Beratung Ärztliche Diagnose Folie 13
Arbeiten 4.0 Wenn Routinearbeiten wegfallen, bleiben nur die anspruchsvollen übrig. Ohne Routineanteil wirkt Arbeit verdichtet, stressig, komplex. Fehler haben in diesem Umfeld größere Auswirkungen. Was machen Minderleister? Folie 14
Der Softwareentwickler 4.0 Auch die Softwareentwicklung? JA! Intelligente Entwicklerwerkzeuge (ReSharper, NCrunch) Frameworks (Bootstrap, Foundation) Plugins (AngularJS, jquery, Hangfire) Folie 15
Prozessversteher vs. Quellcodeschreiber das verändert auch die Arbeitswelt, weil man nur noch die Extremfälle sieht diese Extremfälle muss jemand verstehen und bearbeiten dafür braucht man professionelle Intelligenz Folie 16
Professionelle Intelligenz Das Problem ist unsere Erziehung Bildquelle: http://www.ostsee-zeitung.de/nachrichten/mv-aktuell/land-fuehrt-kopfnoten-auf-zeugnissen-wieder-ein http://www.fotocommunity.de/pc/pc/display/12517345 http://www.stern.de/wirtschaft/job/arbeitslosigkeit/arbeitszeugnis--was-hinter-den-formulierungen-wirklich-steckt-3669786.html Folie 17
Professionelle Intelligenz Besser wäre so: Folie 18
Professionelle Intelligenz es zum Klappen bringen IQ Struktur, Plan, Organisation Prozesse EQ Verstehen, Empathie Benimmregeln CQ Kreativität, neugierig-offen Brainstormtechnik AQ Talent für Attraktion Hochglanzmarketing VQ Vitalität, Wille, Energie Deadlines MQ Sinn für Sinn Unternehmenswerte PQ Professionalität als Leitprinzip Folie 19
Minimalanforderung an agile Entwickler Kommunikationsstärke kommuniziert kontinuierlich mit allen Beteiligten kann technische Probleme auch Menschen ohne technischem Background näher bringen kann überzeugen gibt anderen Feedback zu ihrer Arbeit und ist ebenfalls offen für deren Feedback Hoher Anspruch an die eigene Arbeit und die Arbeit anderer will sich und seine Fähigkeiten immer wieder verbessern legt die eigene Messlatte für das, was als gut eingeschätzt wird, regelmäßig höher erwartet das auch von anderen Folie 20
Minimalanforderung an agile Entwickler Intrinsische Motivation Neugierde und Spaß sind häufig der Antrieb, um neue Technologien zu testen, bestehenden Code zu verbessern und an Produktfeatures zu arbeiten. Ein guter agiler Entwickler ist nicht nur an bleeding edge Technologien interessiert sondern kann auch entscheiden, wie sinnvoll der jeweilige Einsatz im konkreten Umfeld ist. Er will nicht nur einfach guten Code produzieren, er weiß auch, dass sein Code auch von anderen genutzt wird und dass auch das Produkt mit all seinen Features seine Arbeit repräsentiert. Dabei muss er nicht zu diesem Anspruch getrieben werden, er bringt diesen einfach mit. Folie 21
Warum soweit ausgeholt? im Team sind mehrheitlich Entwickler 4.0 vorhanden Management kann mit agilen Methoden umgehen keine formalisierte Anforderungen auf einer halbwegs konstanten Basis agile Methoden klassische Methoden Folie 22
Folie 23
agile Entwicklung am Beispiel von Scrum Scrum bei Google-Trends Folie 24
Scrum - Crashkurs Folie 25
Scrum - Crashkurs Rollen, Artefakte, Meetings Scrum ist eine iterative Projektmanagement Methode. Alle Arbeiten in einem Projekt sind in Sprints organisiert, einer Iteration von normalerweise 2 bis maximal 4 Wochen. Der Product Owner ist verantwortlich für die Erstellung und Pflege einer priorisierten Liste offener Features. Das ist der Product Backlog, eine vollständige dynamische ToDo-Liste für das Projekt. Am Beginn des Sprint entscheidet das Team in einem Sprint Planning Meeting, wie viele der am höchsten priorisierten Features es im Sprint liefern kann. Das Team bestimmt, welche Tasks dazu nötig sind und schreibt sie in das Sprint Backlog. Folie 26
Scrum - Crashkurs Rollen, Artefakte, Meetings Während des Sprint synchronisiert sich das Team in einem Daily Scrum und verfolgt den Fortschritt im Burn Down Chart. Der ScrumMaster coacht das Team, beseitigt Hindernisse (im Impediment Backlog dokumentiert) und stellt allgemein sicher, dass das Team effektiv arbeiten kann. Während des Sprint wird werthaltige Funktionalität entwickelt und ein potentially shippable product increment erstellt, das vom Team während des Sprint Review (u. U. den Stakeholdern) präsentiert wird. Am Ende des Sprints erarbeitet das Scrum Team in einer Retrospektive, welche Potentiale für die Verbesserung der Arbeit bestehen. Folie 27
Erfahrungen bei der Einführung von Scrum bei Lecos Das Verständnis wie Scrum funktioniert erfolgte innerhalb weniger Wochen, auch die neuen Kollegen konnten schnell integriert werden. Anfangs gab es von einigen Entwicklern Bedenken bezüglich der "vielen" Meetings, diese wurden aber nie wieder angesprochen. Scrum hat die Kommunikation zwischen den Entwicklern drastisch gesteigert. Jeder Einzelne im Team arbeitet deutlich mehr mit dem Team statt für sich allein. Scrum hat zu einem richtigen Wir-Gefühl unter den Entwicklern geführt. Probleme in der Entwicklung wurden innerhalb weniger Tage aufgedeckt, nicht mehr erst nach 2 oder 3 Wochen Überrascht hat, das die Aktivitäten in der Retrospektive ohne Vorbehalte aufgenommen wurden (hier wurden anfangs Kommentare wie "wozu soll das gut sein?" erwartet). Überrascht hat auch, dass durch das Review Meeting ein gewisser Qualitätsaspekt entstanden ist, da sich die Entwickler dadurch am letzten Tag nochmal mit allen Änderungen auseinander setzen und schauen, ob denn tatsächlich alles funktioniert. Folie 28
Erfahrungen bei der Einführung von Scrum bei Lecos Begünstigt Erfolgsfaktoren, wie z. B. Motivation, Effizienz und Zusammenarbeit. Stakeholder bekommen durch Teilnahme an Review-Meetings schnell einen Überblick Tägliches Feedback zum Arbeitsstand ermöglicht reagieren auf Engpässe oder ermöglicht zusätzliche Aufnahme von Themen in den Sprint. Folie 29
Fragen / Diskussion Folie 30