stefan toth | embarc gmbh progressive approaches of ...€¦ · - henrik kniberg (about spotify)...

Post on 25-Jun-2020

11 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Stefan Toth | embarc GmbH

Progressive Approaches of Architectural Design

2 Progressive Architecture embarc.de

Stefan Toth

stefan.toth@embarc.de

xing.to/sto www.embarc.de www.swamuster.de

@st_toth

3 Progressive Architecture embarc.de

Who I’m talking about …

4 Progressive Architecture embarc.de

Architectural Design How to define and evolve Architecture today

What I’m talking about …

5 Progressive Architecture embarc.de

1 Agile or not?

2 Cool Work Style needs Architecture

3 How do they do it?

4 Conclusion

agenda

1

6 Progressive Architecture embarc.de

Hype Cycle – Agile

x

7 Progressive Architecture embarc.de

VersionOne „State of Agile 2013“ 4048 questioned IT-staff members

Agile & Mainstream

84% use agile methods 72% thereof Scrum

8 Progressive Architecture embarc.de

VersionOne „State of Agile 2013“ 4048 questioned IT-staff members

Agilität & Mainstream

3% DON‘T want to use

agile Methods in the Future

9 Progressive Architecture embarc.de

And the players we are talking about?

„We don‘t do Agile“

„Why should we think about methodology? We BUILD stuff!“

„We just have great people here and give them room to breathe.“

But… lets have a closer look

10 Progressive Architecture embarc.de

The Agile Manifesto

Individuals and interactions

Working software

Customer

collaboration

Responding to

change

over

over

over

over

processes and tools comprehensive documentation

contract negotiation following a plan

11 Progressive Architecture embarc.de

Techniques / Tools

Principles Views / Beliefs

Whats behind the Agile Practices?

12 Progressive Architecture embarc.de

Agile Views / Beliefs

Software development is a complex Problem, especially the understanding of problems, the options to solve them and their interdependencies.

Interaction, Feedback and Cooperation are key to solve complex Problems.

Tools and Methods are no end in itself their sole purpose is to support cooperation

Problems and their systematic handling are the source of competetive advantage.

13 Progressive Architecture embarc.de

Agile Principles

Our highest priority is to satisfy the customer

Deliver working software frequently

Build projects around motivated individuals. Give them

the environment and support they need, and trust them to get the job done.

Continuous attention to technical excellence and good design enhances agility.

The best architectures, requirements, and designs emerge from self-organizing teams.

14 Progressive Architecture embarc.de

Agile Techniques Backlogs und Prioritization

Definition of Done Iteration Review

Retrospectives

Requirements as User Stories

Iterative Development

Relative Estimation Automation (Build->Test->Integration->Deployment)

....

15 Progressive Architecture embarc.de

And the players we are talking about? Say they are “customer obsessed” (especially Amazon)

Deliver increments often (at least bi-weekly) Are build around motivated individuals

Make developers “fully responsible” for a part of the system

Let solutions emerge from teams

Automate everything

Have fast feedback on system characteristics Undervalue Tools and Processes compared to other companies

Are excellent Problem solvers (and therefore innovators)

....

16 Progressive Architecture embarc.de

So...

They perhaps don‘t do „Agile“

But they work in an agile way...

No matter if you like the agile movement or not: The most successful projects are built around self-organizing and cross-functional teams with high responsibility. Architecture is a mutual task of potentially all developers.

17 Progressive Architecture embarc.de

1 Agile or not?

2 Cool Work Style needs Architecture

3 How do they do it?

4 Conclusion

agenda

2

18 Progressive Architecture embarc.de

Conway … you know

The technical architecture is hugely important for the way we are organized. The organizational structure must play in harmony with the technical architecture. Many companies can’t use our way of working because their architecture won’t allow it.

- Henrik Kniberg (about Spotify)

““

19 Progressive Architecture embarc.de

Autonomous system parts

Layers Verticals

20 Progressive Architecture embarc.de

Amazon, Netflix, Spotify, Gilt, ...

They all care about architecture

big time

But they don‘t do modelling, big documents, classic architects, detailed up-front planning, ...

21 Progressive Architecture embarc.de

1 Agile or not?

2 Cool Work Style needs Architecture

3 How do they do it?

4 Conclusion

agenda

3

22 Progressive Architecture embarc.de

A (fresh) set of practices

23 Progressive Architecture embarc.de

Redefined Architecture Ownership

#1

24 Progressive Architecture embarc.de

Bottleneck Softwarearchitecture

Requirement Implementation Architecture

Defined Software-Architects are part of the problem

25 Progressive Architecture embarc.de

Software architects defined …

The following is defined…

Character of an architect

Know How that an architect needs

Duties of an architect

26 Progressive Architecture embarc.de

Character and Know-How

27 Progressive Architecture embarc.de

Even if you find such a person…

there are still the Duties…

28 Progressive Architecture embarc.de

In general…

You stand a better chance by finding a group of people who jointly live up to this role

You are quicker if more people can react to requirements or technical problems

You get a better system if the developers think

architecture is their problem

: “Nobody take care of a problem like the owner does”

29 Progressive Architecture embarc.de

Cross-functional

Analyst (RE)

Architect Designer

Developer Build Engineer

Operations

Problem Solution

30 Progressive Architecture embarc.de

In reality there is no black & white

No Architect

Architecture Marshalls

Architecture Owner

Classic Architects

31 Progressive Architecture embarc.de

Example from Gilt.com

No architecture team – architecture is the ingrediant of every team

Every quarter there is an “Architecture Council”:

§  Brainstorm solutions to problems and to share results

§  Highlight best practices across all our teams

§  Minimize duplication of effort across Gilt

§  Define standards for inter team communication

§  Solve hard technical problems in a simple, scalable ways

§  Assess specific technologies - already at Gilt or not yet in use at Gilt

32 Progressive Architecture embarc.de

Gilt.com – Architecture board

Has the same goals as the council

Is essentially an architecture owner as a team of five people

Four board members are rotating, one is a classic architect and tie-braker

Rotating board members continue to work on an

engineering team as their primary activity (75%)

33 Progressive Architecture embarc.de

Spotify – Atonomy of teams

Henrik Kniberg (Spotify Labs Blog)

34 Progressive Architecture embarc.de

Effective Group decisions

#2

35 Progressive Architecture embarc.de

Consensus

"Consensus is a term which describes general agreement among members of a group or community. The cooperative spirit of consensus is different from the competitive spirit which is brought to a point in majority voting. ."

(Wikipedia)

One definition of consensus

36 Progressive Architecture embarc.de

Konsens betrachtet Widerstand

Veto OK Consensus

37 Progressive Architecture embarc.de

Systemic process for consensus

Goal: Support a creative process that allows to discover and combine the advantages of different options and eventually leads to a decision with the lowest possible opposition.

Idea: Measure opposition on a scale of 0-10

Result: Option with the lowest combined opposition is chosen

38 Progressive Architecture embarc.de

Tips

§ Use Dummy Solution: Everything stays the same

§ Define a Veto-Value: everything above 7 counts as Veto

§ Simplification: “Thumb-Voting”

Cool! OK… Veto!

39 Progressive Architecture embarc.de

Clear Vision & Direction

#3

40 Progressive Architecture embarc.de

Architecture Work

Each architectural problem is solvable by you or your team. But what if decisions influence one another?

41 Progressive Architecture embarc.de

An Architectural Vision

Is a shared view of:

§  the most important drivers of your system’s design

§  and the core concepts and approaches of architectural design.

It should be communicated to all developers and important stakeholders of the system

42 Progressive Architecture embarc.de

Artefacts for an Architectural Vision

43 Progressive Architecture embarc.de

Ingredient #1 – Architecture Style

Big Ball of Mud

Layers

Verticals / Microservices

Pipes and Filters

Blackboard / Shared Repository

Event-Driven Architecture

44 Progressive Architecture embarc.de

Ingredient #2 - Architecture Overview

http://tech.gilt.com/

45 Progressive Architecture embarc.de

“Freeform” Architecture Overview

46 Progressive Architecture embarc.de

“Freeform” Architecture Overview

47 Progressive Architecture embarc.de

Ingredient #3 – Quality Goals / Drivers

“Amazon is customer obsessed! If only one customer complains, we take the feedback and improve the system”

“Netflix-Members are able to watch tv series and films – as much as they want, any time, everywhere, on every internet-connected device out there.”

“Available everywhere, Great user experience, More convenient than piracy, Fast, reliable, always available, Scalable for many, many users.”

48 Progressive Architecture embarc.de

If you want to go “standard” …

49 Progressive Architecture embarc.de

Principles > Decisions

#4

50 Progressive Architecture embarc.de

Don‘t Speak to strangers

51 Progressive Architecture embarc.de

§  Principles establish common understanding of a problem, convey an attitude.

§  Principles are valuable because they can be applied autonomously to solve problems we face.

§  Principles generally live longer than specific

solutions and support the integrity of decisions different people make

Principles

52 Progressive Architecture embarc.de

Types of principles...

§  Avoid a specific technical Problem:

Critical pieces of infrastructure should not be built using experimental technologies.

§  Encourage a Way of working:

Individuals wanting to introduce a new technology should do so by convincing their peers in their department.

§  Indicate a Preference:

Picking the best technology for a given problem is more important than the use of standard techs and quick developer training

53 Progressive Architecture embarc.de

Further examples...

§  Do not standardize on the internals of services. Standardize the „arcs“ of the network, not the internal nodes.

§  Self service infrastructure – All infrastructure that is needed should be available as a self service entity. That way, there is no need to wait for another team to get hardware, setup a storage cluster or do configuration changes.

§  Create a Separate Data Store for Each Microservice Do not use the same back-end data store across microservices. Choose the database that best suits the service. No share database structures!

54 Progressive Architecture embarc.de

Risks as driver

#5

55 Progressive Architecture embarc.de

What wo should do...

6

56 Progressive Architecture embarc.de

Direct Problem Solving

Focused analysis

Fast decisions

Good to find local optimum

No synthesis

Little strategic thought

Little abstraction

7

57 Progressive Architecture embarc.de

Non-trivial Problems

§  High quality requirements §  Complex Trade-Offs §  restrictive constraints §  many options (all not good/perfect) §  many stakeholders §  many teams or system parts affected

Great insights don‘t come from permantent low-level activity

8

58 Progressive Architecture embarc.de

( )

What you could do ...

Define the problem

Think (Hamock time)

Talk to others (sharpen vision)

abstract (externalize ideas)

learn

experiment

Analyze / criticize (your own) solutions

Decide and potentially fail

9

59 Progressive Architecture embarc.de

This is architecture work

Risk mitigation strategyfor non-trivial Problems

§ Effort

§ No production code

§ No customer value

14

60 Progressive Architecture embarc.de

Risk-driven architecture

You should pay as much attention to software architecture as it contributes risk to the overall project, since if there is little architecture risk, then optimizing it only helps little.

- George Fairbanks

““

61 Progressive Architecture embarc.de

Risk-driven Architecture

15

Simply build

Analyze alternatives

prototype

Try in an isolated domain

Share problem And insights

Problem

62 Progressive Architecture embarc.de

Netflix – Whats risky?

63 Progressive Architecture embarc.de

Pre-Mortem Meeting

1. Here lies Projext XY… What went wrong?

2. Compile answers and prioritize… What’s realistic/probable? What’s adressable by the people in the room?

3. Todos and Actions

64 Progressive Architecture embarc.de

Communictaion! & Architecture Communities

#6

65 Progressive Architecture embarc.de

Strong ideas should be spread

Henrik Kniberg (Spotify Labs Blog)

66 Progressive Architecture embarc.de

Tech-Blogs

67 Progressive Architecture embarc.de

Tech-Blogposts analyzed

3 1 2 4 Why? Motivation, Problem, Purpose

What? Terminology, Background, Detail,

How? Examples, Recipes, Exercises

What else? Further Options, Connected topics Plans & Outlook

68 Progressive Architecture embarc.de

Communities of Practice Gilt Councils

Netflix Engineering Meetups

Yelp Meetups (2014 approx. 70)

Google Talks

69 Progressive Architecture embarc.de

Communities at Spotify

Henrik Kniberg (Scaling Agile @ Spotify)

70 Progressive Architecture embarc.de

Advantages of Communities of Practice

71 Progressive Architecture embarc.de

1 Agile or not?

2 Cool Work Style needs Architecture

3 How do they do it?

4 Conclusion

agenda

4

72 Progressive Architecture embarc.de

Architectural Design is still here

It uses other media and is more a developer skill than in the 90ies

The philosophy shifts from architecture by dictate to

evolutionary architecture

73 Progressive Architecture embarc.de

What happened to...

§  Architecture Governance: Still here on a macro scale Relies more on production feedback and communities

§  Architecture Documentation: Focused but there: Blogs, Videos, Release Statements,… and: in high quality

§  Architecture Models: More sketches and freeform, less UML

§  Architecture decisions: more principles, more coarse grained, more flexible

74 Progressive Architecture embarc.de

Netflix Tech Blog è http://techblog.netflix.com

75 Progressive Architecture embarc.de

Spotify engineering culture è https://labs.spotify.com/2014/03/27/spotify-engineering-culture-part-1/

76 Progressive Architecture embarc.de

Vorgehensmuster für Softwarearchitektur

Kombinierbare Praktiken in Zeiten von Agile und Lean Autor: Stefan Toth Umfang: ca. 260 Seiten Verlag: Carl Hanser Verlag Sprache: Deutsch ISBN-10: 3446436154 Erschienen: 2. Auflage 2015

Thank you. Any questions are welcome!

stefan.toth@embarc.de

xing.to/sto

@st_toth

DOWNLOAD SLIDES: http://www.embarc.de/blog/

top related