Design Types

How it all began.

How it Began

Matthias Wittum and Christian Rehn independently got interested in how developers think, how they make design decisions and how they justify their decisions. Christian wrote his Master's thesis about design principles and principle languages while Matthias became a manager.

As Christian started learning how to develop software, he found it quite difficult to tell good solutions and bad solutions apart. Naturally he employed some of the worse ones, so he wanted to find out how to identify a good solution. There are different reasons for preferring one design solution to another one. And as this is an important question, there were already plenty of answers to it. Developers all over the world learned how to make good design decisions and they codified some of their knowledge in memorable phrases, rules of thumb or "principles". In his Master's thesis Christian collected and described (some of) these principles in a wiki.

These design principles help to distinguish good solutions from bad solutions but typically there are several good ones for each problem. Principle A may prefer one solution, while principle B favors a different one. So the question arises how to weight the principles. What is more important KISS or DRY? There is no clear answer to this and different developers certainly weight those principles differently. There are certain types of developers, different ways of thinking, and different preferences. This sometimes leads to discussions which range from interesting to exhausting.

Matthias also got to know that developers are very different and sometimes discussions about the "right way" often lead to bothersome conversations with less or no outcome. He got to know that there are obviously different types and developed a feeling with whom he could work together very productively and with whom not. An idea for categorizing types was born.

In 2013 Christian started working at 1&1 because Matthias could inspire him to join the Source Center. They put together their ideas and worked on a way to categorize developers based on their design decisions. This website is the result of that. Christian's view on the topic focuses on how to understand other people's way of thinking and how this can be used to make discussions among developers less exhausting. Matthias added a management view to it: How can this categorization be used to put the right one to the right place in the company – because this is his current job.

Who Created it

Matthias Wittum

Matthias Wittum

Matthias Wittum works in software development for more than 12 years and is currently responsible for the 1&1 Source Center.

Christian Rehn

Christian Rehn

Christian Rehn works as a lead developer and software architect at 1&1 in Karlsruhe.