Dealing with multiple teams in a product development organization is always a challenge.
I would like to share with you a live case study about how we switched from a traditional R&D structure into a small product oriented start-up’s teams.
These are some of the challenges we had to deal with:
How to brake a single product development team into small pieces while keeping autonomy and productivity?
How to use technical guilds to maintain a high technical level, personal development and collaboration between the “distributed” development team?
How to create a culture, based on developer accountability even without a direct manager around?
How to maintain high developers utilization in a small heterogenous feature team (iOS, Android, Web, Infrastructure)?
How we use release trains model for lean development in cross mobile platforms world and, what is our strategy for continuous delivery implementation.
I invite you to hear our personal experience about growing from a small start-up, to a middle size development organization. I invite you to hear how we maintained our developer happiness, start-up culture, productivity and giving each team members the ability to affect the product development (in both product and technical aspects).
2. Hello!I’m Avi
- Love technology, architecture,
development, and methodologies
- Also coaching, mentoring and training
developers and leaders
- Member of Como’s founding team
- VP R&D @ Como
Avi.wortzel@como.com
@wortzel
Avi Wortzel
3. Como
➜ Do-it-yourself mobile app solution
➜ Cross-platform solution (iOS, Android, Web)
➜ Powering more than 1 million apps around the
world, with thousands of new apps created
every day
4.
5. Flat Structure (Starting Out)
Product Designer WebWeb InfraInfra
iOS /
Web
Android /
Web
Web QA
2011 2012 2013 2014 2015
13. Challenge #4: Product Accountability
Motivation
Feeling like part of the product
Participating in product brainstorm sessions
Product contribution of developers who live the mobile native world
16. Goals
➜ Rapid development/high productivity
➜ High utilization
➜ Developer ownership (new
features/maintenance)
➜ Product contribution (everyone can influence)
➜ Easy implementation
➜ Focus on personal development
➜ Scalable
17. Component Team
➜ Responsible for only part of a
customer-centric feature
➜ Focus on single specialization
➜ Clear individual responsibilities
➜ High utilization
➜ Delivery based on the slowest team
➜ High dependencies between teams
23. Feature Team
➜ Long lived team
➜ All relevant skills in one place
➜ Cross-functional/component/discipline
➜ Focus on the product
➜ Shared team responsibilities
➜ Utilization challenge
26. ➜ Basic unit of development (like a Scrum team)
➜ Experts on product area (a mini startup)
➜ Have a long-term mission
➜ Sit together
➜ Have all the skills
➜ Autonomous as possible
Squad
30. Guild
➜ Small family of people having similar skills
➜ Some examples are the Web Technology guild,
the iOS guild, and the Product guild
➜ Guild lead is line manager for the Guild
members, responsible for developing people, but
remains part of squad and does day-to-day work
➜ Switching squads flexibility
38. Building the Squads
➜ Define name, long-term mission and KPI’s per
squad
➜ Categorized required skills in each squad and
assign people into the squads
➜ Splitting the team leader role
➜ Build the system owner list
39. PO /
Designer
Infra
iOS
Web
Squad members
e-Commerce Squad
QA
Mission: provide a solution for SMBs to sell
their products via their mobile app
Short-term goals:
- Integration with Shopify
- Additional payment providers: Google Wallet
and Apple Pay
KPIs: increase #transactions by x%
Android
42. Everyone Has an Influence
➜ Product:
- Brainstorming - with stakeholders
- Grooming meetings
➜ Technology stack:
- Autonomy within the squad
- Guild supports
43. Release Train
B
A
D
C
E
F
G F C
➜ (Closest) CD in mobile world
➜ Preplanned schedule
➜ Every few weeks
(Depends on the product)
44. “Guilday”
➜ 1 day every 2 weeks (10% of the time)
➜ Don’t work on the usual squad tasks
➜ Share knowledge, tools, code, and practices
➜ Training developers
➜ Innovation ideas
➜ Open source projects
➜ Keynote session
45. Lean the Structure
➜ Guild backlog
➜ Full-stack developer training
➜ Moving developers between squads
➜ Transparency culture
➜ Loosely coupled systems
46. Existing Tribe Structure
Marketing Funnel Manage & Growth Application Commerce Client Framework
Edo
Yosef
Olga
Yaky
Vered
Eyal
Nir E.
Nir N.
Tammy
TBH
Rami
Oron
Maor B.
Haim
TBH
Alexey
Ehud
Ran
Stas
Yossi
Tal
Mati
Roei
Ofir
Yoav
TBH
Maor H.
Yoni G.
Oriel
Reuven
TBH
Michael
Shlomi
Evgeny
TBH
Yury
Lital Lior Oren
Darya
Erez
Eylon Ruth
Gil
Shiri Raanan
Avital
Alex
Dotan
Noa Deby Hila Adi
Tamar
Automation
Irmi
Matan
Itai
TBH
Tamar
48. Squads - Final Score
Component
Team
Feature Group
Feature
Owner
Feature Team Squads
Rapid
Development
High Utilization
Developer
Ownership
Product
Contribution
Easy
Implementation
Personal
Development
Scalable
49. Thanks!
Any questions?
Avi.wortzel@como.com
@wortzel
Avi Wortzel
Special thanks to all the people who made and released these awesome resources for free:
Simple line icons by Mirko Monti, Streamline iconset by Webalys, Presentation template by SlidesCarnival, Photographs
by Death to the Stock Photo (license)
Notas do Editor
hand-offs
Motivation
Give the team to be part of the product
Participation
Who will join the product brainstorm sessions?
Involvement
Dev gets detailed tasks, lack of involvement in the entire cycle