als RSS-Feed abonnieren
Hundezuechter
McKinsey
XML-Ferientermine
xml-ferientermine
Go-Spiel-bei-DGS
Projektarbeit
Wohnungssuche
Bewerbungen
Ruby-in-Second-Life
Clatronic-CTV731-bei-Saturn
T_Shirts_Mousepads
Singleboersenvergleich
TimeSystem
Katzen
katzen
Arbeitsamt_I
Klick
2007-01-21
2007-01-19
Leapc
iMacros-to-Watir-Konverter
ASP
Ruby-Stocks
National-Geograpic
Google-Kalender
XML-Ruby
XMLTV
css
scribus
ruby-links
c-sharp
videos-fuer-psp-konvertieren
tchibo-infoglobe
uuencode-ruby
linux-phone-neo-1973
mx600-mouse
ruby-mechanize-https
ncurses
internetcafes
corba
ruby-einladung
ruby-setup
ruby-xml
watir
find-ersatz-in-ruby
ruby-priority-queue
gem-needle
gem-dependency
index
DotNetTests
TDD
Gadgets
RSS
Geocaching
2006-10-22_CSS_hier
2006-10-22-zaurus
2006-10-22
2006-10-22_Mono_und_Linux


vom: 2007-03-16 21:32

Stand: 2007-01-22

Ich erlebe gerade in meinem aktuellen Projekt gerade vieles von dem, was man in einem IT- (genauer gesagt Web-) Projekt falsch machen kann.

Vielleicht dienen diese Fehler dem einen oder anderen Projektverantwortlichen oder -mitarbeiter als Beispiel, wie es nicht laufen sollte.

  1. Angefangen habe ich mit diesem Projekt Mitte Oktober 2006. Es handelt sich um ein mittelgroßes Web-Projekt, bei dem ich hauptsächlich den Part der Anwendungprogrammierung übernommen habe. Die eigentliche Programmierung wird in C# und .NET erledigt (gut, man wäre vielleich schneller zu Ergebnissen gekommen, wenn man Ruby on Rails verwendet hätte, aber es war bereits ein Gutteil an C\#\Code vorhanden und ich hatte das nicht zu entscheiden – und darüber will ich mich auch überhaupt nicht groß beklagen). Dann war es so, daß während der Abarbeitung des Programms HTML-Output erzeugt wird, der ausgegeben wird. Hier war es so, daß das Programm als Vorlage von einem bestehenden Web-Projekt übernommen wurde. Der Output, den das Programm erzeugte enthielt nun immer noch ziemlich viel HTML-Code der Elemente für das Design (wie z.B. Tabellen-Tags oder Elemente deren Größe in Pixel angegeben war). Dies ist natürlich tödlich, wenn das Design der Seiten angepaßt werden soll – hier wären dann immer auch Änderungen am Programmcode nötig gewesen, außerdem wäre das Design der Seiten immer auseinandergerissen, ein Teil in HTML oder Stylesheet-Dateien und ein Teil im Programmcode. Wir haben es dann – auch auf mein Drängen hin – geschafft, das Design der Seiten weitgehende in CSS-Dateien auszulagern, so daß wir im Programmcode nur noch DIV-Tags angeben und unseren eigenlichen Inhalt dort reinpacken. Das hat zwar erstmal dazu geführt, daß wir alle Ausgaben des Programms anpassen mußten, aber jetzt sollte eine Änderung des Designs der Seiten die eigentliche Programmierung nicht mehr so beeinflussen.

Tja, und schon ist es soweit: Ich sollte vor zwei Tagen, nur damit es schnell veröffentlicht werden konnte, einen Programmabschnitt einfach kopieren und an anderer Stelle einbauen. Ich wollte diesen Codeteil zuerst reorganisieren, so daß man diesen mehrfach auch an anderer Stelle verwenden kann. Jetzt kommen für diesen Codeteil Änderungen hinzu, den ich an je mindestens drei Stellen immer wieder nachziehen muß. Im Endeffekt hat man durch sich durch diese Entscheidung den Änderungsaufwand für zukünftige Erweiterungen mindestens verdreifacht.

Fazit: vielleicht ein Spruch, der oft paßt – “Wenn du es eilig hast, gehe langsam!”

Stand: 2007-03-08

Inzwischen hat man die ASP.NET Lösung durch eine PHP-Lösung eines befreundeten Unternehmens ersetzt. Unsere Anwendung lief zwar problemlos und war sogar für eine andere Seite, die von der Funktionsweise ähnlich war, jedoch ein etwas anderes Design hatte, mit relativ wenigen Änderungen anpassbar. Ich halte das unter anderem meinem Drängen zugute, Design und Programmlogik weitgehend zu trennen. Mit der ursprünglich vorliegenden Lösung wäre das kaum so einfach gewesen.

Was die tieferen Gründe für den Wechsel zu der PHP-Lösung waren, weiß ich nicht im Detail, aber es wäre die bessere Entscheidung gewesen, von Anfang an auf diese Lösung zu setzen – auch eine Lösung auf Basis von Ruby on Rails könnte ich mir in diesem Bereich als ganz vorteilhhaft vorstellen. damit wäre man auch wesentlich schneller zu einem brauchbaren Ergebnis gekommen.

Mit Rails wäre es meiner Meinung nach sogar noch einfacher, unterschiedliche Layouts zu implementieren, wärend die dahinterligende Business-Logik die gleiche bleibt.

Wegen verschiedenen Sachen, und wenn nächste Woche nicht durch ein Gespräch einiges noch geklärt werden kann, sieht es wohl so aus, daß ich dieses Projekt demnächst verlassen werde. Es hat im großen und ganzen Spaß gemacht, dort, aber auf diese Weise lohnt es sich für mich einfach nicht mehr, dort noch Energie und Zeit zu investieren. Vielleicht werde ich dort auch noch auf freiberuflicher Basis ein oder zwei Tage die Woche tätig sein, aber ansonsten will ich gerne wieder in einem schöneren Projekt arbeiten, wo meine Arbeit auch geschätzt wird. Ganz knallhart: wenn man mit meiner Arbeit nicht zufrieden ist, dann sollte man gefälligst auch gleich kündigen und nicht nur immer rummäkeln und Geld zurückhalten.

So macht die Arbeit nämlich keinen Spaß und ich würde vor diesem Hintergrund auch keine guten Programme produzieren.

Ein kleines Bonmot von vor ein paar Wochen, damit man einen kleinen Einblick bekommt, wie bei uns Projekte geführt werden. Mein Chef (also der oberste, nicht mein direkter Vorgesetzer in der IT-Abteilung) bespricht mit mir Änderungen, die für unsere neue Website noch gemacht werden sollten. In einem Suchformular hatte ich eine Datumsauswahl. Weil der Platz nicht allzu üppig war, wurden bei den Monatsnamen in einigen Fällen Abkürzungen gewählt. Er sah sich das an und meinte dann zu mir “Mrz für März? Mrz ist doch keine deutsche Abkürzung für März. Ich: doch, das ist durchaus eine übliche Abkürzung für März und in diesem Zusammenhang ist ja vollkommen klar, daß es nur März bedeuten soll”. Er: “nein, das müssen Sie anders machen”.

Ich hätte ja überhaupt keine Probleme damit, wenn er gesagt hätte ”’Mrz’ gefällt mir nicht, machen Sie lieber ‘März’ stattdessen”. Er ist der Chef und wenn er’s so haben will, dann ist das eine Sache von nicht mehr als 30 Sekunden, das zu ändern. Aber doch bitte nicht so – und mir unterstellen, ich wüßte nicht, wie man März abkürzt. Nicht, daß ich mich davon persönlich gekränkt fühle, aber so führt man keine Projekte. Das ist irgendwie kindisch.

Ich sehe heute gerade, als ich meine neue Monatkarte kaufe: Die BVG kürzt den März ebenfalls als ‘MRZ’ ab – komisch, wissen die etwas auch nicht, daß das gar keine korrekte deutsch Abkürzung ist ;-)

Thomas Preymesser ist arbeitet seit 1985 als Softwareentwickler und Berater. Er hat in zahlreichen Projekt in der IT-Welt mitgewirkt. Einige Beispiele: Warenwirtschaft, mehrere Projekte im Bankenbereich, Verarbeitung von Verkehrsdaten im Telecombereich, verschiedene Web-Anwendungen, usw. Er sieht sich eher als Generalist, denn als Spezialist in einem bestimmten Spezialgebiet.

Kontakt: Thomas Preymesser
Prinzenallee 36
13359 Berlin
Telefon: 030 - 49 78 37 06
mobile: 0172-8111959
eMail: thopre@gmail.com