
Mein Ziel: einfache Lösungen
Keep it simple and stupid - das KISS-Prinzip
Robustheit und Wartbarkeit sind das Ergebnis von gut durchdachten einfachen Konzepten. Oder andersherum: je komplexer die Lösung, desto mehr Probleme bereitet sie. Diese Erfahrung habe ich wieder und wieder gemacht.
Viele Diskussionen in der Software-Branche beschäftigen sich ebenfalls mit diesem Thema. Die Test getriebene Entwicklung halte ich für einen der wichtigsten neueren Ansätze. Meine eigenen Erfahrungen sind überaus positiv: die Entwicklungszeit verkürzt sich, die Architektur wird besser, die Fehlerrate sinkt.
In meinen Lösungen steckt diese eigene Erfahrung und das Wissen um die aktuellen Trends in der Software-Entwicklung.
Technologieauswahl
If the only tool you have is a hammer, you will see every problem as a nail.(Abraham Maslov)
In 20 Jahren Software-Architektur und -Entwicklung habe ich mich mit sehr vielen Anwendungsbereichen und Technologien beschäftigt. Einige wichtige Stichworte sind C/C++, Java, Python, Embedded Systems, Datenbanken, Web Frameworks, grafische Oberflächen, Usability, Schiff- und Automobilbau, Meteorologie, Messtechnik, Medizintechnik.
Diese Erfahrung hilft mir die Technologie auszuwählen, die am Besten für eine Aufgabe geeignet ist. Für Ihr Projekt berate ich Sie gerne hinsichtlich der Auswahl geeigneter Werkzeuge.
Erstaunlich vielseitig und effizient ist die Programmiersprache "Python", die ich in den letzten Jahren schätzen gelernt habe: Einige erfahrene Python-Entwickler behaupten, dass sie um den Faktor 10 produktiver sind verglichen mit Java oder C++. Ich selber konnte ein 30-Mann-Tage-Projekt (Schätzung für C++) mit der Skriptsprache innerhalb von drei Tagen realisieren, kann diese Abschätzungen also bestätigen! Auch meine Eigenentwicklung james-backup.de ist ein Python-Produkt. Python eignet sich ohne Einschränkung zur Entwicklung größerer Anwendungen. Denkbar ist es auch, einen Prototypen herzustellen und anschließend in C/C++ zu entwickeln. Durch die Effektivität von Python ist ein solches Vorgehen wirtschaftlich. Als Testframework ist Python ebenfalls hervorragend geeignet.
Kommunikation ist entscheidend!
Ein Projekt wird nach meiner Erfahrung viel erfolgreicher, wenn während der gesamten Dauer ein reger Informations- und Gedankenaustausch stattfindet.
Viele brilliante Ideen entstehen so noch während der Entwicklungsphase, und viele auf den ersten Blick nicht erkennbare Mißverständnisse werden frühzeitig erkannt.
Die gute Kommunikation ist gerade dann wichtig, wenn Experten aus unterschiedlichen Fachdisziplinen zusammenarbeiten und ihre eigene Begriffswelt mitbringen.
Ein exzellentes Ergebnis, das die Erwartungen des Kunden klar übertrifft, entsteht nur auf der Basis intensiver Kommunikation.