noqqe


blog | sammelsurium | projects | about

Obskures aus der Software Entwicklung

Heisenbug

Aus der aktuellen Situation heraus suggerierte mir “Heisenbug” eher einen Methamphetamin kochenden Walter White. Bei näherer Betrachtung geht es aber doch um den Wissenschafter Werner Heisenberg. Abgeleitet von der Heisenbergschen Unschärferelation besagt Heisenbug, dass sobald Debugging-Methoden ergriffen werden, der Bug im Programm nicht mehr nachvollziehbar wird.

Auch andere Wissenschaftler bekommen ihre Referenzen. Siehe Bohrbug, Mandelbug und Schrödinbug

STONITH

STONITH hatte ich bereits vertwittert.

Shoot The Other Node In The Head

Ein Konzept das bei hochverfügbaren Setups das Verhalten anderer Nodes im Fehlerfall eines Nachbarn beschreibt. Und das sehr unmissverständlich.

It is Easier to Ask for Forgiveness than Permission

Dieses Motto wird folgender guten Dame zugeschrieben.

Grace Hopper, die auch den Spitznamen “Grandma COBOL” trägt. Exception-Handling:

try:
    ham = spam.eggs
except AttributeError:
    handle_error()

…anstelle von if-Conditions:

if hasattr(spam, 'eggs'):
    ham = spam.eggs
else:
    handle_error()

Der Coding-Stil floss in allerlei Sprachen ein. Unter anderem Python.

Shotgun Debugging

Das sogenannte “Shotgun Debugging” ist eine (zurecht) verkannte Methodik mit Bugs fertig zu werden. Statt strukturellem Vorgehen werden wild mit der Präzision einer Schrotflinte Einstellungen/Codepassagen geändert ohne deren Auswirkung vorherzusehen.

The Mythical Man-Month

Wer in der IT sein Geld verdient, wird das kennen. Verzögerungen bei einem Projekt sind nicht selten. Zusätzliche Entwickler zum richtigen Zeitpunkt zum Projekt holen dagegen sehr.

Adding manpower to a late software project makes it later.

Darum gehts in dem Buch The Mythical Man-Month.

Planning Poker

Ein Kollege klärte mich diese Woche über Planning Poker auf. Ein typischer Kandidat aus dem fast schon esoterischen Umfeld von Scrum und anderen bewusstseinserweiterden Optimierungsmethoden im Software Development.

Kurz zusammengefasst, geht es darum Tasks mit Karten (von 1-100) nach eigenem Ermessen auf ihre Schwierigkeit zu bewerten. So entstehen Working-Slots und Arbeitsverteilung, da man sich selbst einschätzen kann. A la “In einer Woche kann ich ca. 70 Punkte bewältigen”. Egal ob das nun 7x 10er Probleme oder 1x 70 sind. Sehr tolles Prinzip.

The Airplane Rule

Die Flugzeug Regel ist eine Versinnbildlichung für das KISS Prinzip

A twin-engine airplane has twice as many engine problems as a single-engine airplane

Quellen: Werner Heisenberg, Grace Hopper, Planning Poker Cards, List of software development philosophies, Hackers Dictonary von Eric Raymond

Comments (3)

zogan on 2014-02-10T16:46:58.705967
Scrum ist nicht esoterisch, sondern eher best-practice™. Und ganz dumm ist die Idee des Planning-Poker nicht, zumindest _wenn_ man aufgrund von Projektleitungsbissnessfoo gezwungen ist, Schätzungen abzugeben. Erschließt sich einem aber auch erst, wenn man mal Software in größeren Teams entwickelt.

noqqe on 2014-02-10T16:56:17.040586
"Sehr tolles Prinzip." - Hört sich zwar ironisch gemeint an, wars in dem Fall aber garnicht :) Das meinte ich zur Abwechslung mal ernst ;) Sorry

zogan on 2014-02-15T14:33:46.672552
Oh. :-)