Stefan Toth | embarc GmbH Progressive Approaches of ...€¦ · - Henrik Kniberg (about Spotify)...
Transcript of Stefan Toth | embarc GmbH Progressive Approaches of ...€¦ · - Henrik Kniberg (about Spotify)...
Stefan Toth | embarc GmbH
Progressive Approaches of Architectural Design
2 Progressive Architecture embarc.de
Stefan Toth
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!
xing.to/sto
@st_toth
DOWNLOAD SLIDES: http://www.embarc.de/blog/