Any piece of software reflects the organizational structure that produced it.
Conway’s law
Jens
Zauberei mit Wahrheiten
Haben Sie manchmal auch das Gefühl, dass ihre Kollegen Angst vor boolschen Ausdrücken haben? So mancher scheint die De Morganschen Gesetze wie die dunklen Zauberkünste einer Morgan le Fay zu fürchten. So bleiben dann auch Ausdrücke, wie der folgende, für Ewigkeiten im Programmcode. Häufige verweisen die Entwicklern auf den Optimierungen des Compilers, wenn sie ihre boolschen Ausdrücke … Read more
Die Impediments mit Aber
Die Theorie hinter Scrum ist recht einfach, dennoch scheinen einige Konsequenzen den Beteiligten nicht klar zu sein. Impediments sind in Scrum Störungen aller Art, die ein Team behindern. Behindert wird das Team, wenn es seine geplanten Aufgaben nicht erledigen kann. Die Impediments sind zahlreich und sehr unterschiedlich, fehlende Lizenzen, kaputte Klimaanlage, geschwätzige Kollegen. Manche Impediments … Read more
Lasst uns mal rausgehen!
Was hat ein Familienausflug mit agilen Teams zu tun? Vielleicht schauen wir einmal zwei Familien dabei zu. Die erste Familie spaziert durch den Wald, die begeisterten Kinder laufen vor und fallen zurück, aber der gesamte Tross ist stetig und zügig unterwegs. Die Stimmung locker und alle gut gelaunt. Obwohl die Kinder auch immer wieder hinter … Read more
Brooks’ law
“Adding manpower to a late software project makes it later.”
Neue Mitarbeiter in Projekte hineinzustecken bedeutet immer zusätzliche Kommunikation und die Produktivität des Teams wird reduziert, weil es die neuen Mitarbeiter einarbeiten muss. Wenn das Team dann schon dem Zeitplan hinterherläuft, wird die Situation nur schlimmer. Außerdem ist oft das Team schon groß genug und die Entlastung durch neue Mitarbeiter geringer als der Einarbeitungsaufwand. Für ausreichend große Teams gibt es daher folgende lustige Variante dieser Regel
“Eine Frau braucht neun Monate um ein Baby zu bekommen; neun Frauen auch”
Hierarchien
Schon bemerkt, dass auf jeder Konferenz folgender Vortrag erscheint? Scrum eingeführt Enttäuschung wegen fehlender positiver Effekte Externer Berater streicht die Hierarchien Die Firma nimmt fahrt auf Verfolgt man diese Vorträge, dann ist es offensichtlich was falsch läuft. Die alten Hierarchien regieren weiter und die positiven Effekte von Scrum können nicht zum Tragen kommen. Verwunderlich ist … Read more
Tolle Tests
schaut man in die Ansammlungen von Unit Tests, die sich im Laufe der Zeit in Projekten anhäufen, stellt man häufig folgendes fest: Es ist nicht klar, was alles getestet wird. Weder der Name noch der Inhalt der Methode lassen direkt auf den Zweck schließen Die Konstruktion der Testdaten ist in andere Klassen ausgelagert Der Abgleich … Read more
Nur noch assertThat in Unit Tests
“Ein entschlossener Mensch wird mit einem Schraubenschlüssel mehr anzufangen wissen als ein unentschlossener mit einem Werkzeugladen.“ Emil Oesch Mit JUnit 4.4 wurde die Hamcrest Bibliothek über die unscheinbare Methode assertThat Bestandteil des Test Frameworks. Obwohl schon einige Zeit vergangen ist, haben viele Entwickler das Potential dieser Ergänzung noch nicht entdeckt. Bislang werden in den Unit … Read more
Cargo Cult Programming
Manche Entwickler halten Copy&Paste für das schlimmste Anti-Pattern in der Software Entwicklung. Leider muss man ihnen sagen, dass es noch schlimmer geht. Cargo Cult Programming ist die Verwendung von Pattern ohne sie zu verstehen. Dabei kopieren die Entwickler bestehenden Programmcode in der oft irrigen Annahme, dieser Programmcode wäre notwendig. Der folgende Programmcode entstammt einer tatsächlichen existierenden … Read more
Kaiser’s Razor
“Never assume software developer skills when stupidity will suffice“
Jens Kaiser
Basierend auf Hanlon’s Razor und dem Paretoprinzip, besagt diese Regel, dass man grundsätzlich von fehlerhaften Sourcecode ausgehen sollte. Man investiert ansonsten zu viel Zeit, um nicht vorhandene Design-Pattern oder absichtsvolle Algorithmen zu entdecken.