Softwareentwicklung im Team – Teil 10 – Abschlussbemerkungen

Zum Abschluß noch ein paar weitere Probleme, die ich stichwortartig in meinem Pamphlet angesprochen habe.

x. Weitere Probleme
Sicherlich gibt es noch weitere Möglichkeiten, den Entwicklungsprozess zu verbessern. Regelmäßige Code-Reviews, Refactoring, Lasttests sind dabei nur einige wenige. Allerdings würde eine Etablierung der genannten Vorschläge bereits entschieden zur Verbesserung des Entwicklungsprozesses beitragen.
Darüber hinaus bin ich nur auf die Probleme eingegangen, die von allen Entwicklern gleichermaßen umgesetzt werden können. Nicht eingeplante Testphasen, o.ä. fanden daher keine Berücksichtigung.
Daher sollte noch einmal gesondert folgende Punkte besprochen werden: Lasten-/Pflichtenheft, Analyse-/Testphasen, Dokumentation (Architektur, Deployment, etc.)

Rückblickend gesehen
Von den genannten Schlagwörtern wurde nichts mehr diskutiert, geschweige denn umgesetzt. Sicherlich, vereinzelt wurde hier oder da mal ein Refactoring durchgeführt oder man saß zusammen vor einem Rechner um ein Stück Code zu begutachten, aber nichts, was sich fest in unseren Entwicklungsprozess etabliert hatte. Daher gibt’s hier auch keinen weiteren Rückblick.

Zusammenfassung
Wer sämtliche Artikel dieser Serie gelesen hat, wird ggf. den Schmerz zwischen den Zeilen gespürt haben, den man als Entwickler durchgemacht hat. Die Ideen, die umgesetzt wurden, haben einen Großteil dieses Schmerzes nehmen können, aber von einem Idealzustand waren wir weit entfernt.
Auch wenn es logisch erscheint (und mit etwas gesundem Menschverstand auch leicht zu erfassen sein sollte): DIE Silver Bullet gibt es nicht. Dennoch wurde ich mal gefragt, ob ich nicht ein Tool kennen würde, womit wir unsere Entwicklungsprozesse verbessern und beschleunigen könnten. “Was ist denn mit UML. Da gibt’s doch so was von Rationale”, war doch tatsächlich mal eine Aussage. Ähm… ja! Man erwartete irgendwo das Wundertool, welches mit einem Knopfdruck all unsere Probleme lösen würde. Zumindest habe ich es damals teilweise so wahrgenommen. Dass die Tools aber eine untergeordnete Rolle spielen und das die Prozesse und deren Ideen dahinter, bei den Leuten erst einmal in die Köpfe müssen, wurde nicht verstanden. Oder man wollte keine Zeit dafür aufbringen. Ich weiß es nicht.
Rückblickend gesehen muss ich sagen, dass ich mit reichlich viel Naivität an die Sache gegangen bin. Ich dachte damals, man zeigt die Vorteile auf, wiegt sie gegen die Nachteile ab und schon wird ein revolutionäres Umdenken statt finden. Dass ich bei den nicht-Programmieren ggf. ein wenig Probleme bekommen könnte, hatte ich erwartet. Bei einigen Entwicklern aber eine gewisse Beratungs- ja Lernresistenz vorzufinden, hat mich hingegen doch desillusioniert. Dabei war es nicht so, dass diese Entwickler die Vorteile nicht erkannt hätten. Sie stimmten ihnen sogar zu und fanden die Ideen dahinter durchaus ansprechend. Nur getreu dem Motto “Das haben wir schon immer so gemacht”, sah man anscheinend nicht die Notwendigkeit, eigenes Verhalten zu hinterfragen oder gar zu ändern.

Hiermit schließe ich meine kleine Artikelserie “Softwareentwicklung im Team”. Wie immer: Feedback ist durchaus erwünscht ;-)

3 Gedanken zu „Softwareentwicklung im Team – Teil 10 – Abschlussbemerkungen“

  1. Hallo Joachim,

    ich habe schon mehrmals sehr interessiert deine Erläuterungen zum Thema Softwareentwicklung im Team gelesen und bin jedesmal interessiert dieses umzusetzen.
    Da ich noch Anfänger in der Entwicklerbranche bin,bin ich weiterhin auf der Suche nach einem vollständigen kompletten Beispieltutorial welches deine Schritte ..von Maven install,WebAnwendung,……Testing.. beschreibt und Anfänger nachmachen lässt. Leider habe ich noch keins im Netz gefunden. Hast du vll Vorschläge?

  2. Moin Tobias,

    ich glaube, dass was dem am nächsten kommt, dürfte das Java EE 7 Tutorial sein: http://docs.oracle.com/javaee/
    Mit Java EE 7 hast du eigentlich alles was du für WebApplikation benötigst, vom Web-Framework, über Persistenz, über Security, etc. pp.

    Adam Bien hat sonst ein paar nette Vorträge diesbezüglich gemacht (z.B. http://www.youtube.com/watch?v=zTKI7qeyLlw)

    Allerdings glaube ich, dass das ziemlich viel Stoff auf einmal ist, wenn man Anfänger ist und ein Schritt-für-Schritt Tutorial, welches alle Aspekte abdeckt, ist mir nicht bekannt. Zumal es in jedem Bereich haufenweise Alternativen gibt, die alle ihre Eigenarten haben, wenn man sie mit anderen Frameworks zusammenspielen lassen will. (Alleine das Spring-Framework ändert gerne mal zwischen den Versionen Kleinigkeiten, die einen zur Verzweifelung treiben, weil auf einmal gar nichts mehr läuft).

    Daher würde ich mich anfangs auf ein Framework beschränken und dieses in einem eigenständigen Projekt ausprobieren, ohne vorerst mich darum zu kümmern, wie dieses Framework mit den anderen zusammenspielen kann / muss. (Nimmt man z.B. Hibernate für die Persistenz, würde ich ruhig am Anfang mit einem simplen Konsolenprogramm starten und nicht gleich mit einem Webfrontend, weil man sich da bereits wieder um Dinge kümmern muss, die mit den Grundlagen von Hibernate weniger zu tun haben). Also nicht gleich alles auf einmal wollen.
    Denn zu jeder einzelnen Technologie findet man genügend gute Tutorials im Netz, nur muss man sich halt die Teilbereiche einzeln anschauen.

    Ansonsten: viel Glück.

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>