SlideShare ist ein Scribd-Unternehmen logo
1 von 20
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

Weitere ähnliche Inhalte

Was ist angesagt?

Fighting with Waste Driven Development - XP Days Ukraine 2017
Fighting with Waste Driven Development - XP Days Ukraine 2017Fighting with Waste Driven Development - XP Days Ukraine 2017
Fighting with Waste Driven Development - XP Days Ukraine 2017Lemi Orhan Ergin
 
Native is easy. Web is essential.
Native is easy. Web is essential.Native is easy. Web is essential.
Native is easy. Web is essential.Jason Grigsby
 
Top Reasons Why Java Rocks (report preview) - http:0t.ee/java-rocks
Top Reasons Why Java Rocks (report preview) - http:0t.ee/java-rocksTop Reasons Why Java Rocks (report preview) - http:0t.ee/java-rocks
Top Reasons Why Java Rocks (report preview) - http:0t.ee/java-rocksZeroTurnaround
 
A call to JS Developers - Let’s stop trying to impress each other and start b...
A call to JS Developers - Let’s stop trying to impress each other and start b...A call to JS Developers - Let’s stop trying to impress each other and start b...
A call to JS Developers - Let’s stop trying to impress each other and start b...Christian Heilmann
 
DESIGN THE PRIORITY, PERFORMANCE 
AND UX
DESIGN THE PRIORITY, PERFORMANCE 
AND UXDESIGN THE PRIORITY, PERFORMANCE 
AND UX
DESIGN THE PRIORITY, PERFORMANCE 
AND UXPeter Rozek
 
Advice on how to get started — and ahead — in a career in DevOps
Advice on how to get started — and ahead — in a career in DevOpsAdvice on how to get started — and ahead — in a career in DevOps
Advice on how to get started — and ahead — in a career in DevOpsPuppet
 
Clean Software Design: The Practices to Make The Design Simple
Clean Software Design: The Practices to Make The Design SimpleClean Software Design: The Practices to Make The Design Simple
Clean Software Design: The Practices to Make The Design SimpleLemi Orhan Ergin
 
Lotus Notes: Live Long and Prosper
Lotus Notes: Live Long and ProsperLotus Notes: Live Long and Prosper
Lotus Notes: Live Long and ProsperPeter Presnell
 
Usability 2.0
Usability 2.0Usability 2.0
Usability 2.0Greg Bell
 
Schroeder.friday
Schroeder.fridaySchroeder.friday
Schroeder.fridaynado-web
 
The rise of Low-Code App Programming
The rise of Low-Code App ProgrammingThe rise of Low-Code App Programming
The rise of Low-Code App ProgrammingTony Low
 
Free Project Management Templates for Microsoft SharePoint
Free Project Management Templates for Microsoft SharePointFree Project Management Templates for Microsoft SharePoint
Free Project Management Templates for Microsoft SharePointDavid J Rosenthal
 
Amp Up Your Visual Studio Productivity
Amp Up Your Visual Studio ProductivityAmp Up Your Visual Studio Productivity
Amp Up Your Visual Studio ProductivityChris Eargle
 
Why change code that works - On Technical Debt and Refactoring
Why change code that works - On Technical Debt and RefactoringWhy change code that works - On Technical Debt and Refactoring
Why change code that works - On Technical Debt and RefactoringCarsten Windler
 
Technology is Your Friend
Technology is Your FriendTechnology is Your Friend
Technology is Your FriendShelley Graves
 
Building a Great AEM Team: Time Warner Cable's Journey
Building a Great AEM Team: Time Warner Cable's JourneyBuilding a Great AEM Team: Time Warner Cable's Journey
Building a Great AEM Team: Time Warner Cable's JourneyiCiDIGITAL
 
Successful writing at work copyright 2017 cengage learn
Successful writing at work copyright 2017 cengage learnSuccessful writing at work copyright 2017 cengage learn
Successful writing at work copyright 2017 cengage learnssusere73ce3
 

Was ist angesagt? (18)

Fighting with Waste Driven Development - XP Days Ukraine 2017
Fighting with Waste Driven Development - XP Days Ukraine 2017Fighting with Waste Driven Development - XP Days Ukraine 2017
Fighting with Waste Driven Development - XP Days Ukraine 2017
 
Native is easy. Web is essential.
Native is easy. Web is essential.Native is easy. Web is essential.
Native is easy. Web is essential.
 
Top Reasons Why Java Rocks (report preview) - http:0t.ee/java-rocks
Top Reasons Why Java Rocks (report preview) - http:0t.ee/java-rocksTop Reasons Why Java Rocks (report preview) - http:0t.ee/java-rocks
Top Reasons Why Java Rocks (report preview) - http:0t.ee/java-rocks
 
A call to JS Developers - Let’s stop trying to impress each other and start b...
A call to JS Developers - Let’s stop trying to impress each other and start b...A call to JS Developers - Let’s stop trying to impress each other and start b...
A call to JS Developers - Let’s stop trying to impress each other and start b...
 
DESIGN THE PRIORITY, PERFORMANCE 
AND UX
DESIGN THE PRIORITY, PERFORMANCE 
AND UXDESIGN THE PRIORITY, PERFORMANCE 
AND UX
DESIGN THE PRIORITY, PERFORMANCE 
AND UX
 
Advice on how to get started — and ahead — in a career in DevOps
Advice on how to get started — and ahead — in a career in DevOpsAdvice on how to get started — and ahead — in a career in DevOps
Advice on how to get started — and ahead — in a career in DevOps
 
Clean Software Design: The Practices to Make The Design Simple
Clean Software Design: The Practices to Make The Design SimpleClean Software Design: The Practices to Make The Design Simple
Clean Software Design: The Practices to Make The Design Simple
 
Lotus Notes: Live Long and Prosper
Lotus Notes: Live Long and ProsperLotus Notes: Live Long and Prosper
Lotus Notes: Live Long and Prosper
 
Usability 2.0
Usability 2.0Usability 2.0
Usability 2.0
 
Schroeder.friday
Schroeder.fridaySchroeder.friday
Schroeder.friday
 
The rise of Low-Code App Programming
The rise of Low-Code App ProgrammingThe rise of Low-Code App Programming
The rise of Low-Code App Programming
 
Free Project Management Templates for Microsoft SharePoint
Free Project Management Templates for Microsoft SharePointFree Project Management Templates for Microsoft SharePoint
Free Project Management Templates for Microsoft SharePoint
 
Amp Up Your Visual Studio Productivity
Amp Up Your Visual Studio ProductivityAmp Up Your Visual Studio Productivity
Amp Up Your Visual Studio Productivity
 
Why change code that works - On Technical Debt and Refactoring
Why change code that works - On Technical Debt and RefactoringWhy change code that works - On Technical Debt and Refactoring
Why change code that works - On Technical Debt and Refactoring
 
Why Open Source is Important
Why Open Source is ImportantWhy Open Source is Important
Why Open Source is Important
 
Technology is Your Friend
Technology is Your FriendTechnology is Your Friend
Technology is Your Friend
 
Building a Great AEM Team: Time Warner Cable's Journey
Building a Great AEM Team: Time Warner Cable's JourneyBuilding a Great AEM Team: Time Warner Cable's Journey
Building a Great AEM Team: Time Warner Cable's Journey
 
Successful writing at work copyright 2017 cengage learn
Successful writing at work copyright 2017 cengage learnSuccessful writing at work copyright 2017 cengage learn
Successful writing at work copyright 2017 cengage learn
 

Ähnlich wie Software Design Types and Dimensions Explained

Big guns for small guys (reloaded)
Big guns for small guys (reloaded)Big guns for small guys (reloaded)
Big guns for small guys (reloaded)Jorge López-Lago
 
AD - Developer communication and Technology
AD - Developer communication and TechnologyAD - Developer communication and Technology
AD - Developer communication and TechnologyEnplore AB
 
Agile Prototyping Best Practices
Agile Prototyping Best PracticesAgile Prototyping Best Practices
Agile Prototyping Best Practicesuxpin
 
User Centered Design: guarantee that your business process automation project...
User Centered Design: guarantee that your business process automation project...User Centered Design: guarantee that your business process automation project...
User Centered Design: guarantee that your business process automation project...Bonitasoft
 
Building real things for real people 2009
Building real things for real people 2009Building real things for real people 2009
Building real things for real people 2009Justin Ferrell
 
Form Function Class 6, Manila, Philippines 14/11/2015
Form Function Class 6, Manila, Philippines 14/11/2015Form Function Class 6, Manila, Philippines 14/11/2015
Form Function Class 6, Manila, Philippines 14/11/2015Holger Bartel
 
2020 Top Web Development Trends
2020 Top Web Development Trends2020 Top Web Development Trends
2020 Top Web Development TrendsPencil Agency
 
Cloud lunchn learn_howtobecomeacloudarchitect_part1
Cloud lunchn learn_howtobecomeacloudarchitect_part1Cloud lunchn learn_howtobecomeacloudarchitect_part1
Cloud lunchn learn_howtobecomeacloudarchitect_part1Turja Narayan Chaudhuri
 
Demystifying dot NET reverse engineering - Part1
Demystifying  dot NET reverse engineering - Part1Demystifying  dot NET reverse engineering - Part1
Demystifying dot NET reverse engineering - Part1Soufiane Tahiri
 
AtlasCamp 2013: ADG / Lean UX
AtlasCamp 2013: ADG / Lean UXAtlasCamp 2013: ADG / Lean UX
AtlasCamp 2013: ADG / Lean UXcolleenfry
 
Reactive Microservice Architecture with Groovy and Grails
Reactive Microservice Architecture with Groovy and GrailsReactive Microservice Architecture with Groovy and Grails
Reactive Microservice Architecture with Groovy and GrailsSteve Pember
 
Iti_(2).pdf
Iti_(2).pdfIti_(2).pdf
Iti_(2).pdfRanaFoud
 
Open Web Technologies and You - Durham College Student Integration Presentation
Open Web Technologies and You - Durham College Student Integration PresentationOpen Web Technologies and You - Durham College Student Integration Presentation
Open Web Technologies and You - Durham College Student Integration Presentationdarryl_lehmann
 
Collaboration Beyond Code
Collaboration Beyond CodeCollaboration Beyond Code
Collaboration Beyond CodeDavid E. Weekly
 
Developer Experience
Developer ExperienceDeveloper Experience
Developer ExperienceThoughtworks
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovSvetlin Nakov
 
How to become a Software Engineer Carrier Path for Software Developer
How to become a Software Engineer Carrier Path for Software DeveloperHow to become a Software Engineer Carrier Path for Software Developer
How to become a Software Engineer Carrier Path for Software Developerjeetendra mandal
 
Agilelessons scanagile-final 2013
Agilelessons scanagile-final 2013Agilelessons scanagile-final 2013
Agilelessons scanagile-final 2013lokori
 
Learning to Drive - A story about app development
Learning to Drive - A story about app developmentLearning to Drive - A story about app development
Learning to Drive - A story about app developmenttech.kartenmacherei
 

Ähnlich wie Software Design Types and Dimensions Explained (20)

Big guns for small guys (reloaded)
Big guns for small guys (reloaded)Big guns for small guys (reloaded)
Big guns for small guys (reloaded)
 
AD - Developer communication and Technology
AD - Developer communication and TechnologyAD - Developer communication and Technology
AD - Developer communication and Technology
 
Agile Prototyping Best Practices
Agile Prototyping Best PracticesAgile Prototyping Best Practices
Agile Prototyping Best Practices
 
User Centered Design: guarantee that your business process automation project...
User Centered Design: guarantee that your business process automation project...User Centered Design: guarantee that your business process automation project...
User Centered Design: guarantee that your business process automation project...
 
Building real things for real people 2009
Building real things for real people 2009Building real things for real people 2009
Building real things for real people 2009
 
Form Function Class 6, Manila, Philippines 14/11/2015
Form Function Class 6, Manila, Philippines 14/11/2015Form Function Class 6, Manila, Philippines 14/11/2015
Form Function Class 6, Manila, Philippines 14/11/2015
 
2020 Top Web Development Trends
2020 Top Web Development Trends2020 Top Web Development Trends
2020 Top Web Development Trends
 
Cloud lunchn learn_howtobecomeacloudarchitect_part1
Cloud lunchn learn_howtobecomeacloudarchitect_part1Cloud lunchn learn_howtobecomeacloudarchitect_part1
Cloud lunchn learn_howtobecomeacloudarchitect_part1
 
From open source labs to ceo methods and advice by sysfera
From open source labs to ceo methods and advice by sysferaFrom open source labs to ceo methods and advice by sysfera
From open source labs to ceo methods and advice by sysfera
 
Demystifying dot NET reverse engineering - Part1
Demystifying  dot NET reverse engineering - Part1Demystifying  dot NET reverse engineering - Part1
Demystifying dot NET reverse engineering - Part1
 
AtlasCamp 2013: ADG / Lean UX
AtlasCamp 2013: ADG / Lean UXAtlasCamp 2013: ADG / Lean UX
AtlasCamp 2013: ADG / Lean UX
 
Reactive Microservice Architecture with Groovy and Grails
Reactive Microservice Architecture with Groovy and GrailsReactive Microservice Architecture with Groovy and Grails
Reactive Microservice Architecture with Groovy and Grails
 
Iti_(2).pdf
Iti_(2).pdfIti_(2).pdf
Iti_(2).pdf
 
Open Web Technologies and You - Durham College Student Integration Presentation
Open Web Technologies and You - Durham College Student Integration PresentationOpen Web Technologies and You - Durham College Student Integration Presentation
Open Web Technologies and You - Durham College Student Integration Presentation
 
Collaboration Beyond Code
Collaboration Beyond CodeCollaboration Beyond Code
Collaboration Beyond Code
 
Developer Experience
Developer ExperienceDeveloper Experience
Developer Experience
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin Nakov
 
How to become a Software Engineer Carrier Path for Software Developer
How to become a Software Engineer Carrier Path for Software DeveloperHow to become a Software Engineer Carrier Path for Software Developer
How to become a Software Engineer Carrier Path for Software Developer
 
Agilelessons scanagile-final 2013
Agilelessons scanagile-final 2013Agilelessons scanagile-final 2013
Agilelessons scanagile-final 2013
 
Learning to Drive - A story about app development
Learning to Drive - A story about app developmentLearning to Drive - A story about app development
Learning to Drive - A story about app development
 

Mehr von 1&1

1&1 KMU Studie
1&1 KMU Studie 1&1 KMU Studie
1&1 KMU Studie 1&1
 
Inhalte strukturieren für bessere User Experience und Maschinenlesbarkeit
Inhalte strukturieren für bessere User Experience und MaschinenlesbarkeitInhalte strukturieren für bessere User Experience und Maschinenlesbarkeit
Inhalte strukturieren für bessere User Experience und Maschinenlesbarkeit1&1
 
Erfahrungen aus einem Jahr Content Marketing
Erfahrungen aus einem Jahr Content MarketingErfahrungen aus einem Jahr Content Marketing
Erfahrungen aus einem Jahr Content Marketing1&1
 
Mehr Sichtbarkeit durch Google News und AMP
Mehr Sichtbarkeit durch Google News und AMPMehr Sichtbarkeit durch Google News und AMP
Mehr Sichtbarkeit durch Google News und AMP1&1
 
SEO & Content Marketing entlang der Customer Journey
SEO & Content Marketing entlang der Customer JourneySEO & Content Marketing entlang der Customer Journey
SEO & Content Marketing entlang der Customer Journey1&1
 
SEO Content: Eine Zeitreise
SEO Content: Eine ZeitreiseSEO Content: Eine Zeitreise
SEO Content: Eine Zeitreise1&1
 
Social Media bei 1&1
Social Media bei 1&1Social Media bei 1&1
Social Media bei 1&11&1
 
Secure Software Development Lifecycle
Secure Software Development LifecycleSecure Software Development Lifecycle
Secure Software Development Lifecycle1&1
 
Camunda@1&1
Camunda@1&1Camunda@1&1
Camunda@1&11&1
 
HostingCon Europe: Grow your hosting business by better serving small businesses
HostingCon Europe: Grow your hosting business by better serving small businessesHostingCon Europe: Grow your hosting business by better serving small businesses
HostingCon Europe: Grow your hosting business by better serving small businesses1&1
 
Prinzipiensprachen
PrinzipiensprachenPrinzipiensprachen
Prinzipiensprachen1&1
 
1&1 New Hosting Products
1&1 New Hosting Products1&1 New Hosting Products
1&1 New Hosting Products1&1
 
1&1 Hosting Europe Media Event: Server Update
1&1 Hosting Europe Media Event: Server Update1&1 Hosting Europe Media Event: Server Update
1&1 Hosting Europe Media Event: Server Update1&1
 
1&1 Hosting Europe Media Event: New Top Level Domains
1&1 Hosting Europe Media Event: New Top Level Domains1&1 Hosting Europe Media Event: New Top Level Domains
1&1 Hosting Europe Media Event: New Top Level Domains1&1
 
DIY Web Builder: Apps and Social Media
DIY Web Builder: Apps and Social MediaDIY Web Builder: Apps and Social Media
DIY Web Builder: Apps and Social Media1&1
 
Passwort-Sicherheit - WEB.DE Studie 2012 (Convios Consulting GmbH)
Passwort-Sicherheit - WEB.DE Studie 2012 (Convios Consulting GmbH)Passwort-Sicherheit - WEB.DE Studie 2012 (Convios Consulting GmbH)
Passwort-Sicherheit - WEB.DE Studie 2012 (Convios Consulting GmbH)1&1
 
Kundenzufriedenheitsoffensive bei 1&1 - mehr als eine Kampagne
Kundenzufriedenheitsoffensive bei 1&1 - mehr als eine KampagneKundenzufriedenheitsoffensive bei 1&1 - mehr als eine Kampagne
Kundenzufriedenheitsoffensive bei 1&1 - mehr als eine Kampagne1&1
 
Website-Studie 2012
Website-Studie 2012Website-Studie 2012
Website-Studie 20121&1
 
Die neuen Features der 1&1 Do-It-Yourself Homepage im Überblick
Die neuen Features der 1&1 Do-It-Yourself Homepage im ÜberblickDie neuen Features der 1&1 Do-It-Yourself Homepage im Überblick
Die neuen Features der 1&1 Do-It-Yourself Homepage im Überblick1&1
 
IPv6 at 1&1
IPv6 at 1&1 IPv6 at 1&1
IPv6 at 1&1 1&1
 

Mehr von 1&1 (20)

1&1 KMU Studie
1&1 KMU Studie 1&1 KMU Studie
1&1 KMU Studie
 
Inhalte strukturieren für bessere User Experience und Maschinenlesbarkeit
Inhalte strukturieren für bessere User Experience und MaschinenlesbarkeitInhalte strukturieren für bessere User Experience und Maschinenlesbarkeit
Inhalte strukturieren für bessere User Experience und Maschinenlesbarkeit
 
Erfahrungen aus einem Jahr Content Marketing
Erfahrungen aus einem Jahr Content MarketingErfahrungen aus einem Jahr Content Marketing
Erfahrungen aus einem Jahr Content Marketing
 
Mehr Sichtbarkeit durch Google News und AMP
Mehr Sichtbarkeit durch Google News und AMPMehr Sichtbarkeit durch Google News und AMP
Mehr Sichtbarkeit durch Google News und AMP
 
SEO & Content Marketing entlang der Customer Journey
SEO & Content Marketing entlang der Customer JourneySEO & Content Marketing entlang der Customer Journey
SEO & Content Marketing entlang der Customer Journey
 
SEO Content: Eine Zeitreise
SEO Content: Eine ZeitreiseSEO Content: Eine Zeitreise
SEO Content: Eine Zeitreise
 
Social Media bei 1&1
Social Media bei 1&1Social Media bei 1&1
Social Media bei 1&1
 
Secure Software Development Lifecycle
Secure Software Development LifecycleSecure Software Development Lifecycle
Secure Software Development Lifecycle
 
Camunda@1&1
Camunda@1&1Camunda@1&1
Camunda@1&1
 
HostingCon Europe: Grow your hosting business by better serving small businesses
HostingCon Europe: Grow your hosting business by better serving small businessesHostingCon Europe: Grow your hosting business by better serving small businesses
HostingCon Europe: Grow your hosting business by better serving small businesses
 
Prinzipiensprachen
PrinzipiensprachenPrinzipiensprachen
Prinzipiensprachen
 
1&1 New Hosting Products
1&1 New Hosting Products1&1 New Hosting Products
1&1 New Hosting Products
 
1&1 Hosting Europe Media Event: Server Update
1&1 Hosting Europe Media Event: Server Update1&1 Hosting Europe Media Event: Server Update
1&1 Hosting Europe Media Event: Server Update
 
1&1 Hosting Europe Media Event: New Top Level Domains
1&1 Hosting Europe Media Event: New Top Level Domains1&1 Hosting Europe Media Event: New Top Level Domains
1&1 Hosting Europe Media Event: New Top Level Domains
 
DIY Web Builder: Apps and Social Media
DIY Web Builder: Apps and Social MediaDIY Web Builder: Apps and Social Media
DIY Web Builder: Apps and Social Media
 
Passwort-Sicherheit - WEB.DE Studie 2012 (Convios Consulting GmbH)
Passwort-Sicherheit - WEB.DE Studie 2012 (Convios Consulting GmbH)Passwort-Sicherheit - WEB.DE Studie 2012 (Convios Consulting GmbH)
Passwort-Sicherheit - WEB.DE Studie 2012 (Convios Consulting GmbH)
 
Kundenzufriedenheitsoffensive bei 1&1 - mehr als eine Kampagne
Kundenzufriedenheitsoffensive bei 1&1 - mehr als eine KampagneKundenzufriedenheitsoffensive bei 1&1 - mehr als eine Kampagne
Kundenzufriedenheitsoffensive bei 1&1 - mehr als eine Kampagne
 
Website-Studie 2012
Website-Studie 2012Website-Studie 2012
Website-Studie 2012
 
Die neuen Features der 1&1 Do-It-Yourself Homepage im Überblick
Die neuen Features der 1&1 Do-It-Yourself Homepage im ÜberblickDie neuen Features der 1&1 Do-It-Yourself Homepage im Überblick
Die neuen Features der 1&1 Do-It-Yourself Homepage im Überblick
 
IPv6 at 1&1
IPv6 at 1&1 IPv6 at 1&1
IPv6 at 1&1
 

Software Design Types and Dimensions Explained

  • 1. Entscheidungsmöglichkeiten beim Design von 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 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.
  • 4. 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.
  • 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 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.
  • 8. 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
  • 9. 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.
  • 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 13 17.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 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
  • 16. 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.
  • 17. Try it by yourself > www.design-types.net 17 17.11.2014 1&1 Internet AG Simple Abstract Idealistic Technologic Simple Abstract Pragmatic Robust
  • 18. 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
  • 19. 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
  • 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