+ All Categories
Home > Documents > Design Types

Design Types

Date post: 04-Jul-2015
Category:
Upload: 11-internet-ag
View: 160 times
Download: 1 times
Share this document with a friend
Description:
Vortrag im Rahmen des HdM-Day 2014 der Hoschule für Medien in Stuttgart
20
Christian Rehn, Matthias Wittum DESIGN TYPES Entscheidungsmöglichkeiten beim Design von Software
Transcript
Page 1: Design Types

Christian Rehn, Matthias Wittum

DESIGN TYPES

Entscheidungsmöglichkeiten beim Design von Software

Page 2: Design Types

1&1 Internet AG 2 17.11.2014

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: [email protected]

Christian Rehn:

Programmiert seit 2001

In der 1&1 seit 2013

Tätig als Software Engineer

Erreichbar unter: [email protected]

Blog: www.christian-rehn.de/

Design-Prinzipien: www.principles-wiki.net

Page 3: Design Types

1&1 Internet AG 3

Let‘s start with an demonstrative story

17.11.2014

Hi,

I am John.

I work as a

manager for a

company that

produces textiles

like shirts.

Page 4: Design Types

1&1 Internet AG 4

The vision and the team

17.11.2014

For the company

we will accelerate our business

if we sell our products online

(without any merchants in between)

Bob and Sally

you will start

Implementing

The vision

Hi,

I am Sally.

Hi,

I am Bob.

Hi,

I am Jack. Hi,

I am Sam.

Currently involved in

too many other projects

Page 5: Design Types

1&1 Internet AG 5

Split up tasks

17.11.2014

I will take over

the frontend partI will take over

the backend part

I found a very

interesting GUI

framework where

I can separate layout

from functionality

I will use an event

driven architecture

where I can decouple

all elements from

each other

XML

XSD

Service A

a queuea 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.

Page 6: Design Types

1&1 Internet AG 6

After a while…

17.11.2014

Bob and Sally:

please give me a

brief overview how

you proceeded so far

XML

XSD Service A

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!

Page 7: Design Types

1&1 Internet AG 7

Before the first demo

17.11.2014

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?

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.

Page 8: Design Types

1&1 Internet AG 8

During the first demo

17.11.2014

Bob and Sally:

Let‘s see

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

Page 9: Design Types

1&1 Internet AG 9

The disaster

17.11.2014

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.

Page 10: Design Types

1&1 Internet AG 10

How to proceed?

17.11.2014

Sam and Jack:

Can you support?

yep

sure

Jack with his

architectural

background

will be in charge

of the structure

Page 11: Design Types

1&1 Internet AG 11

Fixing the unfixable

17.11.2014

XML

XSD Service A

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.

Page 12: Design Types

1&1 Internet AG 12

Getting things done

17.11.2014

XML

XSD Service A

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.

?

?

?

Page 13: Design Types

1&1 Internet AG 13

Celebrating success

17.11.2014

Congratulations!

We did it.

Thank you all…

Page 14: Design Types

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.

1&1 Internet AG 14

Let‘s sum up

17.11.2014

Simple

Abstract

Idealistic

Technologic

Powerful

Concrete

Idealistic

Technologic

Powerful

Abstract

Pragmatic

Robustness

Simple

Abstract

Pragmatic

Robustness

Page 15: Design Types

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.

1&1 Internet AG 15

Why is the example not representative?

17.11.2014

Page 16: Design Types

1&1 Internet AG 16

A guide through design type dimensions

17.11.2014

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.

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

Technologic means: using new, modern and more productive technologies

evolve with technology for being more competitive

broaden their personal horizon

etc.

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.

Follower of each dimension use their particular design principles.

Have a look on www.principles-wiki.net to get an overall overview.

Page 17: Design Types

1&1 Internet AG 17

Try it by yourself > www.design-types.net

17.11.2014

Simple

Abstract

Idealistic

Technologic

Simple

Abstract

Pragmatic

Robust

Page 18: Design Types

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.

1&1 Internet AG 18

What‘s in for me?

17.11.2014

Page 19: Design Types

1&1 Internet AG 19 17.11.2014

Source Center

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)

„Die Richtigen an die richtige Stelle im Unternehmen bringen.“

Page 20: Design Types

ZEIT FÜR FRAGEN…

…UND FÜR PERSPEKTIVEN…

klassisch viajobs.1und1.de

Karriere bei 1&1

Unternehmen kennenlernen

Kontaktnetzwerk knüpfen

Optimalen Job finden

Speziell für Entwickler


Recommended