Smart versus Clever — Denkanstöße aus der Welt der IT:Agenten

Obwohl die Begriffe “Smart” und “Clever” im (britischen) Englisch fast synonym sind, gelten sie manchen Programmierern als Antipoden in der Welt der Begriffe: Be smart, not clever! — Höchste Zeit das Thema bei den IT:Agenten, den *Smart Internet Experts, in einer gemütlichen Freitagsrunde bei Keksen und einer Mate unter die Lupe zu nehmen. Hier berichtet Thomas Fuhrmann, was er aus dieser Diskussion mitgenommen hat.*

Everyone knows that debugging is twice as hard as writing a program in the first place. So if you’re as clever as you can be when you write it, how will you ever debug it? — Brian Kernighan

Image designer111 / photocase.com

Im Comic kommen beide Begriffe nicht unbedingt gut weg: Clever & Smart sind ein ungleiches Paar, das nur durch die Komik seiner Unfähigkeit geeint wird: Immer wieder scheitern Smart’s ausgefeilte Pläne, während sich Clever durch spontane Verkleidungen eins ums andere Mal im Chaos verstrickt. Und im Entenhausener Universum ist Klaas Klever, dem dunklen Gegenspieler Dagobert Duck’s, jedes Mittel Recht, seinem Rivalen zu schaden.

Cleverness in a person is a virtue, but cleverness in a system is a vice. Systems and code should not be clever, they should be clear as crystal. — nlawalker on StackExchange about “Why is cleverness considered harmful in programming?

Im Alltagsgebrauch der Worte haftet dem Cleveren oft auch das Image des Sich-Heraus-Windens an: Was MacGyver aus Büroklammern und gebrauchtem Kaugummi bastelt ist clever, aber nicht smart, so sehen es jedenfalls viele Programmierer. Quick-Hacks sind eine clevere Taktik; elegante und nachhaltige Architekturen eine smarte Strategie. Den Cleveren reicht eine Palette Duct Tape, um die Welt zu erobern, auch wenn sie ihren Glutaeus Maximus damit oft nur um Haaresbreite retten; smarte Strebertypen wie Thomas Crown und Kapitän Ramius hingegen sind allen anderen gedanklich meilenweit voraus und fühlen sich dadurch unangreifbar. Insofern bewundern Software-Entwickler oft beides: clevere Tricks, die viel Zeit und Mühe sparen, genauso wie smarte Lösungen, die Probleme vermeiden bevor sie entstehen.

Etymologisch geht der Begriff “smart” wohl auf ein proto-indoeuropäisches Wort zurück, nämlich “*(s)merd-” für beißen bzw. stechen. “Smart” hat also die gleiche Wurzel wie “schmerzen”. Der Begriff “clever” hingegen geht auf das mittelenglische “cliver” (beharrlich) bzw. das altenglische “clibbor” (festklammern) zurück. Damit ist “clever” in seiner Herkunft mit dem Wort “Klaue” verwandt, aber auch mit dem englischen “cleave” (spalten).

Geht man also nach der Wortherkunft, wäre beißender Spott, der seine Finger schmerzend in die Wunden des falschen Halbwissens legt, smart; der zupackende Pragmatismus, der nicht vom Problem ablässt, bis er es in handliche Teile gespalten hat, clever.

A Hund is er scho. — Motto der bayrischen Cleverness

Der schlechte Ruf des Cleveren gründet auf der sich ergebenden Asymmetrie beider Ansätze: In der Software-Entwicklung mag eine clevere Lösung einem anderen Zeit gespart haben, sie bürdet mir aber den Mehraufwand auf, diese Lösung zu warten, denn clevere Lösungen sind oft schwer zu durchschauen und lassen sich selten auf geänderte Anforderungen übertragen. Cleverness schafft technische Schuld! Eine über-clevere Lösung soll ihren Autor glänzen lassen, lässt aber meist nur alle anderen alt aussehen. Eine smarte Lösung hingegen mag ihren Erfinder Zeit gekostet haben; sie macht mir aber das Leben leichter. Sie lässt mich glänzen, weil ich Dinge schneller und einfacher erledigen kann. Ergo liebe ich smarte Architekturen uneingeschränkt, bewundere clevere Quick-Hacks aber nur so lange mich ihre negativen Konsequenzen nicht treffen.

Im Zusammenspiel mit Kunden ergibt sich ein weiteres Spannungsfeld: Kunden kaufen Lösungen, keinen Quellcode. Den meisten Kunden sind Nachhaltigkeit und Wartbarkeit egal, manchmal aus Unkenntnis der technischen Abläufe, oft aber aus betriebswirtschaftlicher Logik, die den kurzfristigen Erfolg in der Regel über Nachhaltigkeit stellt. Smarte Produkte wie tastenlose tragbare Telefone mögen dem Endkunden nutzen; der Zusatzaufwand für die Smartness wird aber nur bezahlt, wenn der Kunde diesen Vorteil auch wahrnimmt. Smarte Prozesse in der IT-Agentur hingegen rechnen sich immer, weil sie die Herstellungskosten senken. Insofern ist Cleverness smart.

Kein Plan überlebt die erste Feindberührung. — Graf von Moltke

Schlussendlich ist die Diskussion “Smart versus clever” Wortklauberei, wenngleich – wie ich finde – eine vergnügliche. Die Essenz dieser Wortklauberei taugt sogar als kleiner Leitfaden der kommerziellen Software-Entwicklung: Bestechende Lösungen sind smart und schmerzhaft für den, der sie ignoriert. Allzu komplexe Strategien aber passen oft nicht zu den Anforderungen der realen Welt, wo das Gut-Genug der Feind des Guten ist. Dort ist zupackende Cleverness oft sinnvoller: Be street smart, not just book smart!

Die IT:Agenten arbeiten nach dem Motto “Smart Internet Experts”. Der Einsatz bewährter Open Source Technologien erlaubt clevere Anpassungen existierender Lösungen und reduziert so die Time-to-Market. Manchmal ist eben quick-and-dirty genau das Richtige! Eine projektbegleitende Bilanzierung der technischen Schuld hilft, dabei den Überblick zu bewahren und vermeidet so unliebsame Überraschungen. Ein guter Blick für tragfähige Architekturen und Best-in-Class-Usability schafft smarte Produkte, die eine Chance haben, im Haifischbecken der Web-Anwendungen zu bestehen.