Entscheidungsmöglichkeiten beim Design von Software 
DESIGN TYPES 
Christian Rehn, Matthias Wittum
Vorstellung 
Matthias Wittum: 
 In der Software-Entwicklung seit 2002 
 In der 1&1 seit 2007 
 Tätig als Software-Entwickler/Architekt 
 Seit 2012 Head of Source Center 
 Erreichbar unter: matthias.wittum@1und1.de 
2 17.11.2014 1&1 Internet AG 
Christian Rehn: 
 Programmiert seit 2001 
 In der 1&1 seit 2013 
 Tätig als Software Engineer 
 Erreichbar unter: christian.rehn@1und1.de 
 Blog: www.christian-rehn.de/ 
 Design-Prinzipien: www.principles-wiki.net
Let‘s start with an demonstrative story 
Hi, 
I am John. 
3 17.11.2014 
1&1 Internet AG 
I work as a 
manager for a 
company that 
produces textiles 
like shirts.
The vision and the team 
For the company 
we will accelerate our business 
if we sell our products online 
(without any merchants in between) 
4 17.11.2014 
1&1 Internet AG 
Bob and Sally 
you will start 
Implementing 
The vision 
Hi, 
I am Sally. 
Hi, 
I am Bob. 
Currently involved in 
too many other projects 
Hi, 
I am Jack. Hi, 
I am Sam.
Split up tasks 
I will take over 
the frontend part 
5 17.11.2014 
1&1 Internet AG 
… 
I will take over 
the backend part 
I found a very 
interesting GUI 
framework where 
I can separate layout 
from functionality 
XSD 
XML 
I will use an event 
driven architecture 
where I can decouple 
all elements from 
each other 
Service A 
a queue 
a rule 
handler 
Service B 
Both have a Technologic orientation means: 
 using new, modern and more productive technologies 
 evolve with technology for being more competitive 
 broaden their personal horizon 
 etc.
After a while… 
Bob and Sally: 
please give me a 
brief overview how 
you proceeded so far 
6 17.11.2014 
1&1 Internet AG 
XSD Service A 
XML 
Service B 
Service C 
I found a perfect 
solution for the GUI. 
We can separate 
functionality from design. 
Give me some money 
to delegate the layout part. 
I implemtent the functionality. 
I started with an EDA 
that is totally flexible. 
We can add new 
events/services on 
demand e.g. engage 
Logistics, BI, etc. 
Sounds very 
technical 
but great. 
Please prepare 
a Demo!
Before the first demo 
Bob I do not understand 
your interface. Too much 
xml, xsd, generic methods, etc. 
How can I use it or can you 
make it easier to use? 
7 17.11.2014 
1&1 Internet AG 
It is like it is. Read my manual 
or just use the xsd – it is self 
describing. 
Currently there is no example 
I was working on a test 
framework for my EDA. 
But we have to 
deliver a demo. 
I don‘t see it! 
Don‘t be 
so clumsy 
You are a 
Bubble Bob 
And you: 
Sally2Simple 
Sally is oriented in Simple that means: 
 keeping it simple for better understandability 
 omit unnecessary things (lower risk; less bugs) 
 reduce complexity by splitting it up 
 prefer explicit solutions instead of implicit knowledge 
 etc. 
Bob is oriented in Powerful that means: 
 powerful and generalized solutions 
 Flexibility and Extensibility by foresighted design 
 configurable solutions instead of frequent code changes 
 mastering complexity 
 etc. 
Without a 
conclusion they 
decide to 
demonstrate their 
own parts.
During the first demo 
Bob and Sally: 
Let‘s see 
8 17.11.2014 
1&1 Internet AG 
Here is the brand 
new shop! 
Awesome 
Service A 
Test data 
Generator 
XML 
Impressive 
What about 
an order about 
1000 Shirts 
with a discount 
of 10% using 
a credit card? 
With the test 
data generator 
I can simulate 
everything
The disaster 
9 17.11.2014 
1&1 Internet AG 
Oh – NO!!! 
Damn it! 
Both are Technologic oriented but not Robust which means: 
 protect applications against risks and potential bugs 
 use standards for an obvious structure 
 avoid magic and complexity 
 use proven solutions which stand the test of time 
 etc.
How to proceed? 
Sam and Jack: 
Can you support? 
10 17.11.2014 
1&1 Internet AG 
yep 
sure 
Jack with his 
architectural 
background 
will be in charge 
of the structure
Fixing the unfixable 
11 17.11.2014 
1&1 Internet AG 
XSD Service A 
XML 
Service B 
Service C 
Facade 
How does it all 
play together? 
Let‘s use a simple 
API for the GUI 
And remove the 
complex stuff 
calling services 
directly (maybe 
using it later on) 
Now I will 
help Sally 
with the 
stability 
Jack is Abstract oriented which means: 
 think in concepts and abstractions 
 focus on the big picture and interaction of components 
 know about the consequences of a change 
 focus on real world models 
 etc.
Getting things done 
12 17.11.2014 
1&1 Internet AG 
XSD Service A 
XML 
Service B 
Service C 
Bob: we go together 
through all services 
to see 
what is available, 
what is working 
and bring it on quickly 
ok 
? 
? 
? 
Sam is Pragmatic oriented which means: 
 fulfill requirements asap 
 use only things that guarantee a value 
 omit unnecessary things 
 bring others down to earth 
 etc.
Celebrating success 
13 17.11.2014 
1&1 Internet AG 
Congratulations! 
We did it. 
Thank you all…
Let‘s sum up 
 Sally and Bob are both technologic oriented 
but are too contrary regarding powerful and 
simple software design. 
 Both are also not robust oriented which lead 
to an instable system, here. 
 There was no agreement about a common 
architecture because Bob is concrete oriented 
and Sally could not negotiate with Bob after 
their heated debate. Both are also idealistic 
which complicated any agreements 
 Jack could support based on his orientation to 
abstract (this was maybe supported by getting 
the technical lead from John) 
 Sam could bring down Bob to earth and 
supported by finding the quick wins in his 
pragmatic manner. 
Simple 
Abstract 
Idealistic 
Technologic 
Powerful 
Concrete 
Idealistic 
Technologic 
14 17.11.2014 
1&1 Internet AG 
Powerful 
Abstract 
Pragmatic 
Robustness 
Simple 
Abstract 
Pragmatic 
Robustness
Why is the example not representative? 
 First of all it is a fictive story. 
 In reality it will be different (circumstances, type combinations, 
etc.) 
 Not all problems can be solved in the same way or in this case 
by a manager  
What we wanted to show/our motivation: 
 Several orientations can motivate a developer to make his 
design decisions. 
 There are many ways to build good or bad solutions. Get to 
know and understand these ways. 
 There are often one or two dimensions which overweight. 
15 17.11.2014 
1&1 Internet AG
A guide through design type dimensions 
Simple means: 
 keeping it simple for better understandability 
 omit unnecessary things (lower risk; less bugs) 
 reduce complexity by splitting it up 
 prefer explicit solutions instead of implicit knowledge 
 etc. 
16 17.11.2014 
1&1 Internet AG 
Powerful means: 
 powerful and generalized solutions 
 Flexibility and Extensibility by foresighted design 
 configurable solutions instead of frequent code changes 
 mastering complexity 
 etc. 
Abstract means: 
 think in concepts and abstractions 
 focus on the big picture and interaction of components 
 know about the consequences of a change 
 focus on real world models 
 etc. 
Pragmatic means: 
 fulfill requirements asap 
 use only things that guarantee a value 
 omit unnecessary things 
 bring others down to earth 
 etc. 
Robust means: 
 protect applications against risks and potential bugs 
 use standards for an obvious structure 
 avoid magic and complexity 
 use proven solutions which stand the test of time 
Concrete means: 
 think and act in code 
 transferring ideas into components immediately 
 optimizing algortihms for better performance 
 understanding systems by reading the code 
 etc. 
Idealistic means: 
 make things right – not only 80% 
 consider all aspects not only functional ones 
 everything has its right place 
 do not missuse existing concepts 
 etc. 
Technologic means: 
 using new, modern and more productive technologies 
 evolve with technology for being more competitive 
 broaden their personal horizon 
 etc. 
Follower of each dimension use their particular design principles. 
Have a look on www.principles-wiki.net to get an overall overview.
Try it by yourself > www.design-types.net 
17 17.11.2014 
1&1 Internet AG 
Simple 
Abstract 
Idealistic 
Technologic 
Simple 
Abstract 
Pragmatic 
Robust
What‘s in for me? 
From a developer‘s perspective: 
 Understand the motivation for particular design decisions 
of your colleagues. 
 Get to know yourself – strenghts and weaknesses. 
 More precise and less exhausting communication about 
design decisions. 
From a managers perspective: 
 Identify which dimension is missing in my team. 
 Build up new teams according to the team mission. 
 Put the right ones together for e.g. a project or to learn 
from each other. 
18 17.11.2014 
1&1 Internet AG
Source Center 
„Die Richtigen an die richtige Stelle im Unternehmen bringen.“ 
Wie funktioniert das Source Center? 
 Einarbeitung (Technologien, Prozesse, Kultur) 
 Teameinsatz (~6 Monate produktiver Einsatz) 
 Fach-/Technologische Spezifika kennenlernen 
 Soziales Netzwerk aufbauen 
 Standort übergreifender Einsatz möglich (finanziert AG) 
 Wechsel in dauerhafte Position jederzeit möglich (Gegenseitigkeit) 
19 17.11.2014 1&1 Internet AG
ZEIT FÜR FRAGEN… 
…UND FÜR PERSPEKTIVEN… 
Karriere bei 1&1 
klassisch via 
jobs.1und1.de 
Speziell für Entwickler 
Unternehmen kennenlernen 
Kontaktnetzwerk knüpfen 
Optimalen Job finden

Design Types

  • 1.
    Entscheidungsmöglichkeiten beim Designvon Software DESIGN TYPES Christian Rehn, Matthias Wittum
  • 2.
    Vorstellung Matthias Wittum:  In der Software-Entwicklung seit 2002  In der 1&1 seit 2007  Tätig als Software-Entwickler/Architekt  Seit 2012 Head of Source Center  Erreichbar unter: matthias.wittum@1und1.de 2 17.11.2014 1&1 Internet AG Christian Rehn:  Programmiert seit 2001  In der 1&1 seit 2013  Tätig als Software Engineer  Erreichbar unter: christian.rehn@1und1.de  Blog: www.christian-rehn.de/  Design-Prinzipien: www.principles-wiki.net
  • 3.
    Let‘s start withan demonstrative story Hi, I am John. 3 17.11.2014 1&1 Internet AG I work as a manager for a company that produces textiles like shirts.
  • 4.
    The vision andthe team For the company we will accelerate our business if we sell our products online (without any merchants in between) 4 17.11.2014 1&1 Internet AG Bob and Sally you will start Implementing The vision Hi, I am Sally. Hi, I am Bob. Currently involved in too many other projects Hi, I am Jack. Hi, I am Sam.
  • 5.
    Split up tasks I will take over the frontend part 5 17.11.2014 1&1 Internet AG … I will take over the backend part I found a very interesting GUI framework where I can separate layout from functionality XSD XML I will use an event driven architecture where I can decouple all elements from each other Service A a queue a rule handler Service B Both have a Technologic orientation means:  using new, modern and more productive technologies  evolve with technology for being more competitive  broaden their personal horizon  etc.
  • 6.
    After a while… Bob and Sally: please give me a brief overview how you proceeded so far 6 17.11.2014 1&1 Internet AG XSD Service A XML Service B Service C I found a perfect solution for the GUI. We can separate functionality from design. Give me some money to delegate the layout part. I implemtent the functionality. I started with an EDA that is totally flexible. We can add new events/services on demand e.g. engage Logistics, BI, etc. Sounds very technical but great. Please prepare a Demo!
  • 7.
    Before the firstdemo Bob I do not understand your interface. Too much xml, xsd, generic methods, etc. How can I use it or can you make it easier to use? 7 17.11.2014 1&1 Internet AG It is like it is. Read my manual or just use the xsd – it is self describing. Currently there is no example I was working on a test framework for my EDA. But we have to deliver a demo. I don‘t see it! Don‘t be so clumsy You are a Bubble Bob And you: Sally2Simple Sally is oriented in Simple that means:  keeping it simple for better understandability  omit unnecessary things (lower risk; less bugs)  reduce complexity by splitting it up  prefer explicit solutions instead of implicit knowledge  etc. Bob is oriented in Powerful that means:  powerful and generalized solutions  Flexibility and Extensibility by foresighted design  configurable solutions instead of frequent code changes  mastering complexity  etc. Without a conclusion they decide to demonstrate their own parts.
  • 8.
    During the firstdemo Bob and Sally: Let‘s see 8 17.11.2014 1&1 Internet AG Here is the brand new shop! Awesome Service A Test data Generator XML Impressive What about an order about 1000 Shirts with a discount of 10% using a credit card? With the test data generator I can simulate everything
  • 9.
    The disaster 917.11.2014 1&1 Internet AG Oh – NO!!! Damn it! Both are Technologic oriented but not Robust which means:  protect applications against risks and potential bugs  use standards for an obvious structure  avoid magic and complexity  use proven solutions which stand the test of time  etc.
  • 10.
    How to proceed? Sam and Jack: Can you support? 10 17.11.2014 1&1 Internet AG yep sure Jack with his architectural background will be in charge of the structure
  • 11.
    Fixing the unfixable 11 17.11.2014 1&1 Internet AG XSD Service A XML Service B Service C Facade How does it all play together? Let‘s use a simple API for the GUI And remove the complex stuff calling services directly (maybe using it later on) Now I will help Sally with the stability Jack is Abstract oriented which means:  think in concepts and abstractions  focus on the big picture and interaction of components  know about the consequences of a change  focus on real world models  etc.
  • 12.
    Getting things done 12 17.11.2014 1&1 Internet AG XSD Service A XML Service B Service C Bob: we go together through all services to see what is available, what is working and bring it on quickly ok ? ? ? Sam is Pragmatic oriented which means:  fulfill requirements asap  use only things that guarantee a value  omit unnecessary things  bring others down to earth  etc.
  • 13.
    Celebrating success 1317.11.2014 1&1 Internet AG Congratulations! We did it. Thank you all…
  • 14.
    Let‘s sum up  Sally and Bob are both technologic oriented but are too contrary regarding powerful and simple software design.  Both are also not robust oriented which lead to an instable system, here.  There was no agreement about a common architecture because Bob is concrete oriented and Sally could not negotiate with Bob after their heated debate. Both are also idealistic which complicated any agreements  Jack could support based on his orientation to abstract (this was maybe supported by getting the technical lead from John)  Sam could bring down Bob to earth and supported by finding the quick wins in his pragmatic manner. Simple Abstract Idealistic Technologic Powerful Concrete Idealistic Technologic 14 17.11.2014 1&1 Internet AG Powerful Abstract Pragmatic Robustness Simple Abstract Pragmatic Robustness
  • 15.
    Why is theexample not representative?  First of all it is a fictive story.  In reality it will be different (circumstances, type combinations, etc.)  Not all problems can be solved in the same way or in this case by a manager  What we wanted to show/our motivation:  Several orientations can motivate a developer to make his design decisions.  There are many ways to build good or bad solutions. Get to know and understand these ways.  There are often one or two dimensions which overweight. 15 17.11.2014 1&1 Internet AG
  • 16.
    A guide throughdesign type dimensions Simple means:  keeping it simple for better understandability  omit unnecessary things (lower risk; less bugs)  reduce complexity by splitting it up  prefer explicit solutions instead of implicit knowledge  etc. 16 17.11.2014 1&1 Internet AG Powerful means:  powerful and generalized solutions  Flexibility and Extensibility by foresighted design  configurable solutions instead of frequent code changes  mastering complexity  etc. Abstract means:  think in concepts and abstractions  focus on the big picture and interaction of components  know about the consequences of a change  focus on real world models  etc. Pragmatic means:  fulfill requirements asap  use only things that guarantee a value  omit unnecessary things  bring others down to earth  etc. Robust means:  protect applications against risks and potential bugs  use standards for an obvious structure  avoid magic and complexity  use proven solutions which stand the test of time Concrete means:  think and act in code  transferring ideas into components immediately  optimizing algortihms for better performance  understanding systems by reading the code  etc. Idealistic means:  make things right – not only 80%  consider all aspects not only functional ones  everything has its right place  do not missuse existing concepts  etc. Technologic means:  using new, modern and more productive technologies  evolve with technology for being more competitive  broaden their personal horizon  etc. Follower of each dimension use their particular design principles. Have a look on www.principles-wiki.net to get an overall overview.
  • 17.
    Try it byyourself > www.design-types.net 17 17.11.2014 1&1 Internet AG Simple Abstract Idealistic Technologic Simple Abstract Pragmatic Robust
  • 18.
    What‘s in forme? From a developer‘s perspective:  Understand the motivation for particular design decisions of your colleagues.  Get to know yourself – strenghts and weaknesses.  More precise and less exhausting communication about design decisions. From a managers perspective:  Identify which dimension is missing in my team.  Build up new teams according to the team mission.  Put the right ones together for e.g. a project or to learn from each other. 18 17.11.2014 1&1 Internet AG
  • 19.
    Source Center „DieRichtigen an die richtige Stelle im Unternehmen bringen.“ Wie funktioniert das Source Center?  Einarbeitung (Technologien, Prozesse, Kultur)  Teameinsatz (~6 Monate produktiver Einsatz)  Fach-/Technologische Spezifika kennenlernen  Soziales Netzwerk aufbauen  Standort übergreifender Einsatz möglich (finanziert AG)  Wechsel in dauerhafte Position jederzeit möglich (Gegenseitigkeit) 19 17.11.2014 1&1 Internet AG
  • 20.
    ZEIT FÜR FRAGEN… …UND FÜR PERSPEKTIVEN… Karriere bei 1&1 klassisch via jobs.1und1.de Speziell für Entwickler Unternehmen kennenlernen Kontaktnetzwerk knüpfen Optimalen Job finden