Professionalität
Es gibt Menschen, die denken Software-Engineers wären einfach die Leute, die den Quelltext in die Maschine eintippen. Fachliches Wissen und Führung seien wichtiger für das Unternehmen, als diese armen, im dunklen Keller lebenden „Code-Monkeys“.
Softwareentwickler zu sein ist mehr. Code zu schreiben ist ein wichtiger Bestandteil der Arbeit, aber bei Weiten nicht der Einzige. Es gibt viele andere Aspekte, die dazu gehören, ein professioneller Software-Engineer zu sein.
Erfolgreiche Projekte: Die Farce
Wer sich mit dem Chaos Report beschäftigt hat, wird wissen, dass viele der Softwareentwicklungsprojekte auf dieser Welt nicht erfolgreich abgeschlossen werden. In etwa 30 % der Projekte verdienen am Ende diese Note (2015).
Ich bin der Meinung, die Zahlen könnten schlimmer sein. Das liegt an der Definition von „erfolgreich“. Laut der Studie ist ein Projekt erfolgreich, wenn es beendet wurde innerhalb der geplanten Zeit, ohne das geplante Budget zu überschreiten und mit allen Features, die ursprünglich geplant waren. Das ist eine recht arme Definition für „erfolgreich“.
Was ist, wenn wir mit Fehlern überhäuft werden, die niemand bis jetzt entdeckt hatte? Was ist, wenn unsere Kunden neue Features brauchen, wir aber nicht in der Lage sind sie hinzuzufügen, oder es dauert ewig, bis sie drin sind? Was ist, wenn sich niemand mehr traut den Code anzufassen?
Ist das ein erfolgreiches Projekt? Meiner Meinung nach nicht!
Aber wir machen ja Agile, wie kann das sein?
Agilität kann man nicht machen, man ist agil, oder auch nicht, oder nur zum Teil.
Es wird weiterhin das Blame Game gespielt, an der Kultur hat sich nicht geändert. So kann es eben nicht funktionieren. Kein Wunder, dass sich Stimmen gegen Agilität erheben. Menschen sind nicht agil, weil sie die Methode XYZ verwenden und schon gar nicht, weil sie Unmengen an Zetteln in verschiedenen Farben an der Wand kleben.
Wir kennen ja die Geschichten über Toyota und so imposant, wichtig und lehrreich sie auch sind: wir bauen keine Autos, wir erstellen Software und es geht eben nicht um die Software selbst, sondern um die Menschen, die sie erstellen. Menschen sind von Natur aus abgeneigt, Änderungen anzunehmen. Es ist also auch kein Wunder, dass es einige Leute gibt, die der Meinung sind, Agile funktioniert nicht.
Meine Meinung nach ist Neugier eine der wichtigsten Eigenschaften, die man braucht, um gute Software zu entwickeln, und eben diese Neugier fehlt mir bei einigen diese Gegenstimmen. Aussagen a là „Das haben wir schon immer so gemacht“ oder „Das dauert alles viel zu lang“ sind in manchen Fällen nur vorgeschobene Entschuldigungen, wenn die Neugier und der Willen es ernsthaft zu versuchen schon lange nicht mehr da sind. Das ist wirklich schade.
Software zu erstellen ist eine komplexe Angelegenheit. Meistens bewegen wir uns in Bereichen, wo bis jetzt keine war. Kreativität, ja sogar Kunst ist öfters gefragt, nicht nur Ingenieurwesen. Die Verfahren, welche in früheren Zeiten so hilfreich gewesen sind, helfen uns hier eher selten und sei auch hier mal wieder erwähnt: Agilität bedeutet nicht, Wasserfall in einen Monatssprint zu verpacken.
Das Richtige
Agile kümmert sich um die Prozesse und Methoden, die wir verwenden. Das Ziel dabei ist, dass wir das realisieren, was unsere Kunden brauchen, dass wir „DAS RICHTIGE“ implementieren.
Was agile uns nicht zwingend beantwortet, ist, wie wir das auch noch RICHTIG implementieren sollen.
Es ist die Aufgabe der Software-Engineers, die bestmöglichen Techniken und Methoden zu kennen, um hochqualitative Software zu erstellen.