nani gigantium .. wer?
„Dicebat Bernardus Carnotensis nos esse quasi nanos gigantum umeris insidentes, ut possimus plura eis et remotiora videre, non utique proprii visus acumine, aut eminentia corporis, sed quia in altum subvehimur et extollimur magnitudine gigantea“
„Bernhard von Chartres sagte, wir seien gleichsam Zwerge, die auf den Schultern von Riesen sitzen, um mehr und Entfernteres als diese sehen zu können – freilich nicht dank eigener scharfer Sehkraft oder Körpergröße, sondern weil die Größe der Riesen uns emporhebt.“
Johannes von Salisbury: Metalogicon 3,4,46-50 aus Wikipedia: Zwerge auf den Schultern von Riesen
Vielleicht kennen Sie das englische Idiom sitting on the shoulder of giants, im Deutschen kenne ich dafür keine Entsprechung. Dennoch sehe ich es als das Motto für meine unternehmerische Tätigkeit an:
Ich bin beeindruckt von den Leistungen, die sich in letzter Zeit im Bereich der Informationstechnologie und im Speziellen der Webapplikationsentwicklung erbracht wurden. Diese Leistungen möchte ich würdigen, auf ihnen aufbauen und damit Unternehmen einen Mehrwert bieten.
Ich sehe es als meine Aufgabe, als Softwareentwickler und Unterzeichnung des Software Craftsmanship Manifest und des Agile Manifests
- nicht nur funktionierende, sondern auch qualitativ hochwertige Software zu enwtickeln
- nicht nur auf Anforderungen zu reagieren, sondern kontinuierliche Verbesserung zu bieten
- nicht nur als individuell zu agieren, sondern in der Gemeinschaft als Professionalist zu agieren
- nicht nur mit Kunden zusammenzuarbeiten, sondern produktive Partnerschaften einzugehen
Das bedeutet zum Beispiel
- Meine Kunden erhalten stets sämtliche für sie geschriebene Software auch im Quelltext als freie Software..
- Code wird auf Wunsch nicht nur ausgeliefert, sondern auch dokumentiert und erklärt.
- Die von mir eingesetzten Methoden werden nicht nur angewandt, sondern auch von mir vorgetragen und unterrichtet.
- Wenn ich in fremder Software Fehler entdecke, so erstelle ich an der dafür vorgesehenen Stelle Bugreports.
- Erkenntnisse und Fundstücke stelle ich in Form meines Blogs der Community zur Verfügung.
- Die verwendete Software wird im Artikel Software Stack angegeben und erläutert.
- Ich evaluiere alle Kommentare und Vorschläge zu meiner Tätigkeit und verbessere kontinuierlich meine Arbeit.
- Ich bleibe am Ball der neuesten Entwicklungen, evaluiere vielversprechende Komponenten und baue diese in meinen Stack ein.
- Ich verwende soweit wie möglich freie Software und fördere und propagiere die Verwendung von freier Software.
Warum 4 Stacks?
Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.
Egal, ob wir dieses Zitat (vermutlich fälschlicherweise) Paul Watzlawick oder (ebenso falsch) Mark Twain zuschreiben, die Quintessenz trifft auch auf die Entwicklung von Sotware zu, insbesondere, wenn es sich um Produkte handelt, die für viele Jahre in Verwendung sein sollen.
Die Entwicklung sollte mit geeigneten Tools stattfinden. Deshalb habe ich mir im Laufe der Jahrzehnte mehrere Stacks angeeignet und schätze für unterschiedliche Projekte die unterschiedlichen Paradigmen.
Im Geschäftsumfeld ist oft ein objektorientierter Ansatz der beste (Ruby on Rails), muss eine Anwendung auf Millionen von Usern skalieren, ist funktionale Entwicklung weniger ressourcenhungrig (Elixir & Phoenix). Für mobile Anwendung reichen oft Webviews einfach nicht aus und es sollte nativer maschinennaher Code erzeugt werden (Dart & Flutter). Hingegen hat Python im Feld der Datenanalyse und der AI einen riesigen Schatz an Bibliotheken und mit den Jupyter Notebooks eine rasche, interaktive Möglichkeit der Erarbeitung und der Präsentation der Datenmodelle und -analysen.