Startup Lesson 28: Softwareentwicklung mit Ruby on Rails - Fehler, die man vermeiden sollte

Donnerstag, November 20, 2008 , Autor: Jason
Erstellt in Kategorie Technik

Software kommt mir manchmal wie ein Domino-Spiel vor: fällt ein Steinchen um, ist in Windeseile die ganze Website platt. TILT. GAME OVER. Software ist anfälliger als jeder Mensch. Ein Schnupfen behindert einen schon mal, aber tötet nicht unbedingt. Ist aber ein Hochkomma-Zeichen nicht gesetzt, dann kann alles andere plötzlich stehen bleiben. Dies ist uns in den letzten Tagen / Wochen immer wieder passiert. Dass plötzlich ohne ersichtlichen Grund eine wichtige Funktion auf der Plattform nicht mehr oder nicht richtig funktionierte oder auch, dass wir alles neustarten mussten, weil woobby einen Herzstillstand hatte.

Dennoch ist Software kein Mensch, sondern von Menschen gemacht. Und die machen nun mal Fehler. Wir haben davon einige gemacht. Und über einen ganz großen Fehler, den man mit etwas Erfahrung vermeiden kann, möchte ich heute berichten. Wir haben als Software für unsere Plattform woobby.com Ruby on Rails ausgesucht - wie an anderer Stelle bereits berichtet wurde - weil diese Software uns einige Vorteile gegenüber der Alternative “Programmieren mit PHP” versprach.

Der Einsatz von Ruby on Rails bedeutet im Kern, dass die Plattformentwicklung im Rahmen der agilen Softwareentwicklung testgetrieben stattfinden sollte. DIES IST ELEMENTAR für den Einsatz von Ruby on Rails. Klassischerweise kommt das Testen am Schluss. Häufige Nachteile:

- aus Zeitdruck wird die geplante Testphase häufig verkürzt, man will ja LIVE stellen / Deadlines einhalten.
- Die Testabdeckung ist häufig unzureichend, da Konzept und Realität abweichen
- neben fachlichen Tests sind Entwicklertests von Nöten - auf die gerne aus Zeitdruck verzichtet wird

Ruby on Rails will diese Nachteile durch eine andere Vorgehensweise vermeiden: man schreibt zuerst Testfälle, stellt sicher, dass sie daneben gehen, implementiert dann erforderlichen Programmcode, der dafür sorgt, dass der Test fehlerfrei läuft. D.h. es werden Tests noch vor der Entwicklung der zu testenden Software-Komponenten gemacht. So stellt man von vorneherein sicher, dass keine Bugs entstehen und die Software funktioniert. Idealerweise….


Wir haben einen erfahrenen PHP Programmierer beauftragt, woobby zu entwickeln. Bei PHP testet man im klassischen Sinne. Und wir waren Ruby on Rails-Rookies. Dementsprechend liegt unsere Testabdeckung heute bei etwa 10%. Die Folge: jeder neue Programmierer kann nicht testen, ob dies oder jenes auf der Plattform reibungslos funktioniert. Baut er hier etwas an, wackelt das Gebäude an einer ganz entfernten Stelle. Und niemand weiss auf den ersten Blick, warum. Dann fangen alle wie Sherlock Holmes an zu suchen. Wie hat es einer unserer aktuellen Programmierer so schön ausgedrückt: “This leads to my assumption that between 50% and 200% of the development time is being spent with bug finding and fixing after changes. The larger a project gets, the more effect this will have on the development budget. Unit test and functional tests cost about 25% of project development time against between 50% and 200% bug fixing time when too few tests have been written.”

Das ist evil!!! Unbedingt vermeiden! Erfordert Erfahrung und Disziplin von jedem Ruby on Rails-Entwickler. Unbedingt von Beginn an darauf achten, dass dieses Prinzip konsequent und einheitlich eingehalten wird!

Gute Websites zum Thema Ruby on Rails findet Ihr hier. Und wer lieber offline lernt, kann hier gute Ruby on Rails-Bücher finden.


Good luck!!!

Erstellt in Kategorie Technik
[x]
speichern & weitersagen - powered by JottsPlugs