About me

Matthias Berg, Dipl.-Inform.

Holzmindener Str. 20
12347 Berlin
+49 (0) 30 57702498
+49 (0) 1579 2310369

Engineering culture in Computer Science

I acquired my Bachelor of Software Engineering at the Hasso-Plattner-Institut in Potsdam. The SAP Co-founder Hasso Plattner founded the HPI with his private assets. He complained about the missing engineering culture in computer science.So he founded the HPI and put Prof. Siegfried Wendt as CEO who shared the same philosophy.

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

In contrast to computer science studies in general, software engineering had a very high priority at the HPI. We did learn the basics of computer engineering and theoretical computer science, but we did have three classes about systems modeling and two about software construction. Software development requires teamwork and communication about software. Design patterns not only enable to write good source code structure but also help to communicate about software and enable to ensure that the team has the same understanding.

Compositional Structure Diagram Dynamic Structure Diagram (Petri net) Value Range Structure Diagram (ER diagram)

The Unified Modeling Language (UML) is pretty much established in software engineering as the notation of choice. Prof. Wendt and his team developed the notation Fundamental Modeling Concepts (FMC). It consists of three types of diagrams that are especially suitable for communication about software. They are easily created and easily understood. This also applies for FMC sketches using paper and pencil that support communication and a common system comprehension.

(by xkcd, CC2.5)

Studying at the HPI has formed my view on computer science a lot and sparked my interest for software engineering. At my following studies at the University of Bonn I specialized in software engineering. My diploma thesis is being superviced by the software engineering group of the computer science department.

Agile software development

In March 2008 I took part in the Agile Lab at the software engineering group at the University of Bonn. It was only a short time, but I learned really a lot. Here it was the first time that I effectively applied test-driven development and other agile methods of software development. Since that time I am convinced agile software development has many advantages compared to traditional software development with the V-Model.

To get to know the basic principles of agile software development we played XP Game at our first day at the agile lab. In a playful manner we learned the planning of extreme programming with "User Stories", "Task Breakdown" and "Velocity". It was incredibly much fun and I'd recommend this to everyone who plans to introduce extreme programming to some team.

Quality assurance

(by xkcd, CC2.5)

During my studies I did learn about software testing and I sometimes wrote some test cases for the software that I developed. But only at my jobs in recent years I have fully understood what quality assurance really means and how it differs from testing as developer. Software developers test their code to show that it works (constructive). Software testers test the code in order to find errors (destructive). This sometimes leads to software developers to sound off against nitpicking software testers and software testers complain about incompetent software developers who keep creating so many bugs. This is not really because of their personalities but rather because of their role in the team.

For several months I have worked at andagon as software tester testing a tool for quality assurance called aqua. After some in-house training at andagon I have passed the exam for the ISTQB Certified Tester (Foundation Level). At Berner & Mattner I have tested a camera based driver assistance system for more than two years. The DAS has lane departure warning and traffic sign recognition and was tested in a hardware-in-the-loop test rig. So I have gained experience as software tester and as hardware tester.

(by xkcd, CC2.5)

I could hardly say if I would rather like to work as software developer or software tester. Both fields have advantages and disadvantages and I could easily like both areas a lot. However I certainly benefit from having gained experience in both roles.

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