agile at spotify
DESCRIPTION
Talk by Joakim Sundén and Anders Ivarsson about agile and scaling agile at Spotify. These particular slides are from a Kanban Open Space event in Ghent, Belgium, February 2013.TRANSCRIPT
Agile at Spotify
1
What is Spotify?
The right music for every moment
2
Spotify is a new way to listen to music. Millions of tracks, any time you like. Just search for it in Spotify, then play it. Just help yourself to whatever you want, whenever you want it.
Launched October 28 2008.
With Spotify, it’s easy to find the right music for every moment – on your phone, your computer, your tablet and more.There are millions of tracks on Spotify. So whether you’re working out, partying or relaxing, the right music is always at your fingertips. Choose what you want to listen to, or let Spotify surprise you.You can also browse through the music collections of friends, artists and celebrities, or create a radio station and just sit back.Soundtrack your life with Spotify. Subscribe or listen for free.
Spotify: Fast Facts
• Over 5 million paying subscribers
• Over 20 million active users
• Over 300 000 labels signed
• Over 20 million songs
• Over 20 000 songs added daily
• Available in 17 countries
3
Spotify is available in: 17 countries - USA, UK, Sweden, Finland, Norway, Denmark, Germany, France, Spain, Austria, Belgium, Switzerland, The Netherlands, Australia and New Zealand, Ireland and Luxembourg. And today we’re adding three more, totaling a whopping 20 countries: Italy, Poland, Portugal.
Subs: 3M June 2012, 5M Jan 2013
Development offices
4
Three (four) development offices, ~300 engineers, >30 teams.
SF: http://www.flickr.com/photos/wallyg/3951912182/sizes/l/in/photostream/Gothenburg: http://www.flickr.com/photos/andreas-pross/6210384973/sizes/m/in/photostream/NYC: http://www.flickr.com/photos/19942094@N00/6358840971/sizes/m/in/photostream/
Growing fast
5
Tech in Jan 2011 – 60 persons, Jan 2013 - ~300 - 5x growth in 2 years, 10x in 3 yearsFrom 150 to >700 in 18 months.
Why? We grow to offer better products and solutions, to more users, in more markets, faster.
Development speed that scales
6
* We need to improve our product at great speed, much faster than any competitor* We need to prepare to scale, meaning that we must continue to move at a high speed while growing employees, users and devices* We must continuously improve how we work and we must accelerate the rate at which we improve
Autonomy, Mastery, Purpose
<ADD PICTURE?>
•“For creative tasks, the best approach is often just to hire great people and get out of their way.”
Hire great people and get out of their way.http://www.youtube.com/watch?v=u6XAPnuFjJc
7
Drawing on four decades of scientific research on human motivationasserts that the secret to high performance and satisfaction is the deeply human need to direct our own lives, to learn and create new things, and to do better by ourselves and our world
High-performance teams
8
High-performance teams (HPTs) is a concept within organisation development referring to teams, organizations, or virtual groups that are highly focused on their goals and that achieve superior business results. High-performance teams outperform all other similar teams and they outperform expectations given their composition.
http://en.wikipedia.org/wiki/High-performance_teams
Autonomy
Mastery
Purpose
Scaling
Challenges
AGENDA 12th Feb
9
ALL CHARACTERS AND EVENTS IN THIS TALK-–EVEN THOSE BASED ON
REAL PEOPLE–-ARE ENTIRELY FICTIONAL. ALL CELEBRITY VOICES
ARE IMPERSONATED.....POORLY. THE FOLLOWING PRESENTATION
CONTAINS COARSE LANGUAGE AND DUE TO ITS CONTENT IT SHOULD
NOT BE VIEWED BY ANYONE.
10
Everything we talk about in this presentation is a model and a slight simplification of reality. The company is changing very fast and experiments are always on-going. This means that others in the company would probably describe some things differently, and some would only recognize parts of this. But in general, this is the way it looks and works in Spotify – right now, in some places.
Continuously improving the way we work - whole company understands we are always changing
Autonomy
11
Controlling management approaches assume people are passive and inert and require prodding. Autonomy approaches assume people are active, looking for interesting work and curious and self-engaging. Autonomous motivation has proven to promote greater conceptual understanding, result in better grades, enhance persistence at school and in sporting activities, generate higher productivity, less burnout, and greater levels of psychological well-being.
• “Feel like a mini-startup”
• Self-organizing
• Cross-functional
• 5-7 engineers, less than 10
Autonomous squad
12
It should feel like working in a mini-start-up where Spotify is more of an incubator for start-ups.
“The most important feature of the organization is the autonomous squad. All other features are designed to support that mini-startup-like squad.”
Pics of squad rooms
13
Co-located. Squad room. Open yet closed off. Optimize for collaboration.
14
Lounge connected to every squad room, no need to book meeting rooms. Stand-ups, whiteboard sessions, …
Quiet room, small meetings.
War rooms.
15
Fika zones, fika as “meeting” format.
Autonomous squad surveys
16
Definition of what we mean with ”autonomous squad”. We also measure, to see where a squad might need support.
Clear mission
17
The squad has a defined mission to fulfillSquad works on mission for long time (not just finish first product, then change mission) – allowing members to become domain-experts
The majority of the stories on the squad backlog are related to the missionEveryone in the squad understands the missionThere is passion and dedication for the mission
http://www.flickr.com/photos/roland_urbanek/4712188695/http://www.flickr.com/photos/calsidyrose/4925267732/
Example squads
18
SearchRadioContentPayments
Dedicated PO19
Has enough time for the squad and is considered part of the squadManages and prioritizes a squad backlog together with the squad that everyone in the squad has easy access to
Can motivate stories and prioritiesClearly communicates the goal of a story, and the vision for the sprintTakes tech aspects in considerationMakes sure that stories are prepared enough before sprint planningCan make decisions during the sprint without waiting for feedback from senior product staff
Process that fits
20
Each squad owns their own process – adapt it to their circumstances and context. Kanban and continuous flow, Scrum by the book – 1-3 week sprints The squad is familiar with the Spotify development process and follows the common rules or can motivates why they don'tThe squad have agreed within the group on how to workThe squad regularly retrospects and do things to improve
Easy to get stuff live
21
Everyone needed to complete and release a story is in the squad- Both in terms of owning the decision, and having technical capacity to do it
A squad can independently decide on when to go live with a release, a minimum of syncing with other squads should be needed
Most squads try to go live with something every sprint, or more often. Some squads launch things several times each week.
Influence work
22
Before every sprint all squad members can influence what is to be planned (both product features and tech stories)During the sprint the squad makes decisions regarding stories together with the product owner. No micro management.Tech debt, maintainability & scalability stories are part of the squad backlog.Part of the sprint backlog should always be tech improvements.The squad can refuse to start development if there isn’t sufficient information about what to do.The squad members decide how to carry out their work and who is working on what.Every sprint contains 0.5 hack days per week.Every system owner has 1 system owner day/three week sprint
Hack days
23
Use 10% of your time for side-projects – sometimes synchronize hack days or hack weeks for squad or org
24
http://labs.spotify.com/2013/02/15/organizing-a-hack-week/
Organizational support
25
Tribe lead or similar is available and aware of the squad's workThe squad knows who to turn to for guidance or problem solving supportSupport is available for architectural / technical discussions as well as for "soft" issues
Agile coach
26
Support autonomy in the organizationHelps squads identify impediments and learning opportunities, coaches squad to continuously improve working methods and process
Are we there yet?
27
Run survey with multiple squads – goal is to do it every quarter. Patterns – e.g. Agile coach needed, need to improve releasability (technical, organizational, ...)
Autonomy
Mastery
Purpose
Scaling
Challenges
AGENDA 12th Feb
28
Mastery
29
Mastery is the desire to get better at something that matters. First, mastery is a mindset, in that we either believe we can get better or we don’t. Second, mastery is a pain, in that it involves not only working harder but working longer at the same thing. Finally, mastery is an asymptote, or a straight line that you may come close to but never reach.
Chapters
Squad
PO
Squad
PO
Squad
PO
Squad
PO
Chapter
Chapter
30
Special Interest/Competence groups – web development chapter, backend development chapter, QA chapter, payment chapter, etc.Share knowledge, learn from each other, personal development togetherIdentify common challengesTalk about good practices, decide on architecture, coding standards, etc.Learn technical skills – e.g. Test-driven development
Chapter Lead
31
Servant leadershipCoaching, mentoring1:1 every weekUsually 50/50 squad work/chapter leadSometimes work in same squad, but not necessarily
Great colleagues
32
Very high hiring standards
Personal development
33
Not typical management career path only, experimenting with “add-ons”, e.g., Expert, Teacher, Coach
Training programs34
Training, Lunch & learn, Tech talks, Webinars, etcManagement training, Leadership forum
Autonomy
Mastery
Purpose
Scaling
Challenges
AGENDA 12th Feb
35
Purpose
36
At Spotify we are on a mission to change the world – to make it possible to play everywhere, and to find the right music for every moment.
We want everyone at Spotify to feel that what they do every day connects to this mission and this purpose.
So, how does this connect to our daily lives and the tasks we do?
Squad purpose
37
OKRObjectiveKey Result
38
OKR - connect company vision to daily tasksObjective – Key resultObjective – longer vision, might take more than a quarter to achieveKey results – measurable goals for the quarter
OKR for all of companyOKR for all of techOKR for whole squadOKR for chapterSometimes personal OKR
Squad member
Why/What
Product owner
PO
Chapter lead
How
Squad member
Chapter lead
How
How
Autonomy
MasteryPurpose
39
Product owner – answer why are we doing this, what are we doing?Chapter lead – support in how we solve it, what we doAgile coach – support autonomy, facilitate discussions – supports whole squad
So for an engineer – this is how they get their Purpose, Mastery and Autonomy
Autonomy
Mastery
Purpose
Scaling
Challenges
AGENDA 12th Feb
40
Scaling
41
QualityProject coordinationRelease coordinationConfigurationChange
Quality managerProject managerRelease managerConfiguration managerChange manager
42
We need release coordination -> hire a release manager, project coordination -> hire a project manager, change mgmt, configuration manager, etc
Scaling
43
… and so you end up with this
Departments
Tribes
44
Tribe
Squad
PO
Squad
PO
Squad
PO
Squad
PO
Chapter
Chapter
Tribe
Squad
PO
Squad
PO
Squad
PO
Squad
PO
Chapter
Chapter
Tribes
45
Everyone working within software engineering is divided into a set of tribes containing 20-100 people each.Dunbar number - <150 people, so we recognize and know everyone
The following applies to each tribe:Clear and defined missionHigh level of autonomy within each tribeTribes are joined by a set of foundation principles that apply to all tribesLead by a senior experienced leader (named tribe lead) responsible for all dimensions of the tribe (people, process, technology & culture)All skills necessary to produce live product features and code are present within the tribe, and thus the tribe can build cool stuff end to endA squad resides within one and only one tribe (people may be borrowed between tribes)Some tribes have a matrix organization, others not.
Tribe Tribe Tribe Tribe
TribeTribe Tribe
”Provide fast and reliable access to all
the world's music”
”Enable high product development speed while maintaining a
highly available service”
46
We have 6 tribes in Spotify right now – from 3 to 9 squadsEach tribe is co-located in one siteMission for tribeSimilar contexts and challenges
47
Tribe demos, gatherings, knowledge sharing, …
Network organization
48
Avoid going “up-and-down the hierarchy” Squads always collaborate directly with each otherTribe borders are not hard – they are support function, not departmentsCreates a network organizationShifting fast since collaborations start and stop all the time
Tribe
Squad
PO
Squad
PO
Squad
PO
Squad
PO
DependenciesTribe
Squad
PO
Squad
PO
Squad
PO
Squad
PO
49
Dependencies between teams – technical dependencies, organizational dependencies (overlapping product, mission), knowledge dependenciesNever let yourself be blocked. CTO says “Get shit done”, CEO says “When in doubt, do something”
Important to understand dependencies – collect dataDependencies and collaborations – same thing.No problem – slowing – blocking – future
On-demandScrum-of-Scrums
50
Scrum-of-scrum common pattern – too static, our organization is changing all the timeOn-demand scrum-of-scrum exists between different squads for short periods of timeThis example – spring 2012, big project (several squads, several months), scrum-of-scrum progress/blockers/dependencies
Architecture
51
SOA, loosely coupled
System Owner
52
Guilds
53
A Guild is a community of interest, a group of people with similar engineering skills that share knowledge, tools and code across the whole of Spotify.For example a backend guild, web guild, QA guild, agile guild
Tribe
Squad
PO
Squad
PO
Squad
PO
Squad
PO
Chapter
Chapter
Tribe
Squad
PO
Squad
PO
Squad
PO
Squad
PO
Chapter
Chapter
Guild
Guilds
54
A Guild is an open community, so anyone can join any guild.Automatic membership if you are in that chapter – opt-out if you want toOpt-in for anyone else in companyYou can join multiple guilds, depending on your interest. All guild activities are optional by default. As guild member, you can choose how active or inactive you want to be in the guild. Each guild has a Guild Coordinator (or pair) who is main contact person for the guild, "bootstraps" the guild to enable self-organization, ideally trying to get rid of the need for a guild coordinator role.
55
Guild unconference – a whole day of lightning talks and Open Space. Good format, very popular
56
Agile coaches
“Big Projects”
57
https://dl.dropbox.com/u/1018963/Articles/HowSpotifyBuildsProducts.pdf
Big Retrospeci
Big retrospectives
58
http://joakimsunden.com/2013/01/running-big-retrospectives-at-spotify/
Town Hall
59
Town hall where CEO address whole company every two weeks. Q & A with top management.
Company values
60
Not just Technology, other departments too. E.g., “Think it, Build it, Ship it, Tweak it”.
“Get shit done”“When in doubt, do something”
Organizational improvement
61
Autonomy
Mastery
Purpose
Scaling
Challenges
AGENDA 12th Feb
62
Challenges
63
Autonomy
Mastery
Purpose
Scaling
Challenges
AGENDA 12th Feb
64
65
Questions?