Man sagt immer, in einer Firma ist jeder Mitarbeiter austauschbar. Für alle Software-Entwickler habe ich allerdings die ultimative Lösung, wie man sich für immer unentbehrlich macht:
http://mindprod.com/jgloss/unmain.html
Diese Seite beschreibt, wie man absolut 100% unwartbaren SourceCode schreibt. Hier ein ein Beispiel:
Reuse Names
Wherever the rules of the language permit, give classes, constructors, methods, member variables, parameters and local variables the same names. For extra points, reuse local variable names inside {} blocks. The goal is to force the maintenance programmer to carefully examine the scope of every instance. In particular, in Java, make ordinary methods masquerade as constructors.
Oder so:
Extended ASCII
Extended ASCII characters are perfectly valid as variable names, including ß, Ð, and ñ characters. They are almost impossible to type without copying/pasting in a simple text editor.
Auch schön:
Misleading names
Make sure that every method does a little bit more (or less) than its name suggests. As a simple example, a method named isValid(x) should as a side effect convert x to binary and store the result in a database.