Über mich

Matthias Berg, B.Sc.

Schöneberger Str. 18
10963 Berlin
Deutschland
+49 (0) 30 57702498
+49 (0) 1579 2310369
webmaster(at)matthias‑berg.eu
www.xing.com/profile/Matthias_Berg17

Ingenieurskultur in der Informatik

Am Hasso-Plattner-Institut in Potsdam habe ich meinen Bachelor in Software Engineering erworben. Das HPI wurde vom SAP-Gründer Hasso Plattner aus seinem Privatvermögen gestiftet. Er bemängelte das Fehlen von Ingenieurskultur in der Informatik, gründete das HPI und setzte Prof. Siegfried Wendt als Geschäftsführer ein, da er mit ihm diese Philosophie teilte.

Hasso-Plattner-Institut in Potsdam Hasso Plattner
Prof. Siegfried Wendt

Im Gegensatz zum Informatikstudium allgemein stand am HPI die Softwaretechnik im Vordergrund. Wir haben zwar auch die Grundlagen der technischen Informatik und der theoretischen Informatik gelernt, aber wir hatten drei Vorlesungen über Systemmodellierung und zwei über Softwarekonstruktion. Softwareentwicklung erfordert Teamwork und Kommunikation über Software. Entwurfsmuster ermöglichen nicht nur gute Struktur des Quellcodes sondern helfen auch bei der Kommunikation und dem Verständnis der Beteiligten.

Aufbaudiagramm Ablaufdiagramm (Petri-Netz) Wertebereichsdiagramm (ER-Diagramm)

Als Notation hat sich in der Softwaretechnik die Unified Modeling Language (UML) durchgesetzt. Die von Prof. Wendt und seinem Team entwickelte Notation Fundamental Modeling Concepts (FMC) besteht aus drei Diagrammtypen, die besonders für die Kommunikation über Software geeignet sind. Sie sind leicht zu erstellen und auch leicht verständlich. Dies gilt auch für FMC-Skizzen mit Papier und Bleistift, wo sie die Kommunikation unterstützen und ein gemeinsames Systemverständnis ermöglichen.

(by xkcd, CC2.5)

Das Studium am HPI hat meine Sicht auf die Informatik besonders geprägt und mein Interesse für die Softwaretechnik geweckt. Bei meinem folgenden Studium an der Universität in Bonn habe ich mich auch auf Softwaretechnik spezialisiert. Meine Diplomarbeit wird nun von der Abteilung für Softwaretechnik betreut.



Agile Softwareentwicklung



Im März 2008 nahm ich am Agile Lab der Abteilung für Softwaretechnik an der Uni Bonn teil. Obwohl es eine verhältnismäßig kurze Zeit war, habe ich sehr viel gelernt. Hier habe ich zum ersten Mal effektiv testgetriebene Entwicklung angewendet und andere agile Methoden der Softwareentwicklung kennengelernt und eingesetzt. Seitdem bin ich davon überzeugt, dass agile Softwareentwicklung viele Vorteile gegenüber herkömmlicher Softwareentwicklung im V-Modell bietet.

Um die Prinzipien der agilen Softwareentwicklung kennenzulernen, spielten wir am ersten Tag das XP Game. Dabei lernt man auf spielerische Weise die Planung bei Extreme Programming mit "User Stories", "Task Breakdown" und "Velocity". Dies hat unglaublich viel Spaß gemacht und ich empfehle dies jedem, der vorhat, in einer Gruppe Extreme Programming einzuführen.

Qualitätssicherung

(by xkcd, CC2.5)

Im Studium habe ich zwar öfter von Softwaretests gehört und auch hin und wieder Testfälle für von mir entwickelter Software geschrieben, allerdings wurde mir erst im Berufsleben bewußt, was Qualitätssicherung wirklich bedeutet und wie stark Testen in der Entwicklung vom Testen in der Qualitätssicherung abweicht. Der Softwareentwickler testet seinen Code, um zu zeigen, dass es funktioniert (konstruktiv). Der Softwaretester testet den Code, um Fehler zu finden (destruktiv). Dies führt manchmal dazu, dass Softwareentwickler über Softwaretester lästern, weil sie zu kleinlich sein, und Softwaretester lästern dann über die unfähigen Entwickler, die so viele Fehler einbauen. Dies liegt aber weniger an den Persönlichkeiten als an den Rollen, die sie verkörpern.

(by xkcd, CC2.5)

Bei andagon habe ich mehrere Monate als Softwaretester das Programm für Qualitätssicherung aqua getestet. Im Rahmen einer Schulung bei andagon habe ich 2010 die Prüfung zum ISTQB Certified Tester (Foundation Level) bestanden. Bei Berner & Mattner habe ich mehr als zwei Jahre lang ein kamerabasiertes Fahrerassistenzsystem mit Spurhaltefunktion und Verkehrszeichenerkennung an einem Hardware-in-the-loop-Prüfstand getestet. Somit habe ich Erfahrungen sowohl als Software- als auch als Hardwaretester sammeln können.

Ich vermag kaum zu sagen, ob ich lieber als Softwareentwickler oder als Softwaretester arbeiten möchte. Beide Bereiche haben Vor- und Nachteile und ich kann mich mit beiden Aufgabengebieten sehr gut anfreuden. Dass ich in beiden Rollen Erfahrungen sammeln konnte, kann mir eigentlich nur nützlich sein.

(by Glen Lipka based on the image by Thom Holwerda )