Scaling up your R&D group
-
Upload
avi-wortzel -
Category
Leadership & Management
-
view
122 -
download
1
Transcript of Scaling up your R&D group
Scaling Up Your
R&D Group
Avi Wortzel
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
@wortzel
Avi Wortzel
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
Flat Structure (Starting Out)
Product Designer WebWeb InfraInfraiOS /
Web
Android /
WebWeb QA
2011 2012 2013 2014 2015
Small Teams
Product
Designer
Web
Web Infra
InfraiOS /
Web
Android /
Web
WebQA
2011 2012 2013 2014 2015
Small (Fragmented) Teams
Product
Designer
Web
Web Infra
Infra
iOS /
Web
Android /
Web
Web
QA
2011 2012 2013 2014 2015
Large Teams
Leader
Dev
Dev
Dev
Dev
Dev
Leader
Dev
Dev
Dev
Dev
Dev
Leader
Dev
Dev
Dev
Dev
Dev
Leader
Dev
Dev
Dev
Dev
Dev
Leader
Dev
Dev
Dev
Dev
Dev
Leader
Product
Product
Product
Product
Product
Leader
Designer
Designer
Designer
Designer
Designer
Leader
QA
QA
QA
QA
QA
Web Infra iOS Design QAProductWeb AppAndroid
2011 2012 2013 2014 2015
What went
wrong?
Challenge #1: Time to Market
Product
Designer
iOS
Android
Web App
CP
Infra
Challenge #2: Dependencies
Product
Designer
iOS
Android
Infra
CP
Web App
Challenge #3: Product Ownership
?
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
Challenge #5: Recruitment
HTML5
JS
CSS3
Ruby
C#
iOS/Objective-C
Android/Java
Ruby
PHP
C#
DB
RESTful/SOA
HTML5
JS
CSS3
ASP.NET/MVCHTML5
JS
CSS3
Android
Java
iOS
Objective-C
How do
you scale up?
Goals
➜ Rapid development/high productivity
➜ High utilization
➜ Developer ownership (new
features/maintenance)
➜ Product contribution (everyone can influence)
➜ Easy implementation
➜ Focus on personal development
➜ Scalable
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
Component TeamComponent
Team
Rapid
Development
High Utilization
Developer
Ownership
Product
Contribution
Easy
Implementation
Personal
Development
Scalable
➜ Temporary group created for one feature
➜ Resource pooling model
➜ End-to-end responsibility (new features)
➜ Hard to maintenance
Feature Group
Feature GroupComponent
TeamFeature Group
Rapid
Development
High Utilization
Developer
Ownership
Product
Contribution
Easy
Implementation
Personal
Development
Scalable
Feature Owner: Feature Group on Steroids
➜ Full-stack developers
➜ End-to-end responsibility
➜ High utilization
➜ Minimal integrations
Feature OwnerComponent
TeamFeature Group
Feature
Owner
Rapid
Development
High Utilization
Developer
Ownership
Product
Contribution
Easy
Implementation
Personal
Development
Scalable
Feature Team
➜ Long lived team
➜ All relevant skills in one place
➜ Cross-functional/component/discipline
➜ Focus on the product
➜ Shared team responsibilities
➜ Utilization challenge
Feature GroupComponent
TeamFeature Group
Feature
OwnerFeature Team
Rapid
Development
High Utilization
Developer
Ownership
Product
Contribution
Easy to
Implementation
Personal
Development
Scalable
What is the best
structure for
you?
➜ 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
PO
Design
Infra
Android
iOS
Web
Squad #0
Designer
Designer
Designer
Design
PO
PO
Po
Product
Squad
Infra
Infra
Infra
Infra
QA
QA
QA
QA
iOS
iOS
iOS
iOS
Android
Android
Android
Android
QA
Tribe
➜ Collection of squads that work in related areas
(up to 100 people)
➜ Regular informal get-togethers to share what
working on, demos, etc.
Tribe
PO
Designer
Infra
Android
iOS
Web
Squad #0
QA
PO
Designer
Infra
Android
iOS
Web
Squad #1
QA
PO
Designer
Infra
Android
iOS
Web
Squad #2
QA
PO
Designer
Infra
Android
iOS
Web
Squad #1
QA
PO
Designer
Infra
Android
iOS
Web
Squad #2
QA
PO
Designer
Infra
Android
iOS
Web
Squad #3
QA
PO
Designer
Infra
Android
iOS
Web
Squad #0
QA
Tribe #0 Tribe #1
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
Guild
PO
Designer
Infra
Android
iOS
Web
Squad #0
QA
PO
Designer
Infra
Android
iOS
Web
Squad #1
QA
PO
Designer
Infra
Android
iOS
Web
Squad #2
QA
Tribe #0
Android Guild
Design Guild
Additional Roles
➜ Product owner (PO)
➜ Scrum master / Agile coach
➜ System architect
➜ System owner
Squad
Guild lead Squad member
Squad member
Squad member
Product owner
Guild lead
Guild lead
How
How
How
Wha
t
How did we
implement it?
Breaking the Product
➜ Categorized the product
➜ Built the entire systems
graph
➜ Reorganized to related
product areas
Breaking the Product
SDK
Commerce
Squad
Applications
Squad
ClientWebsite
Marketing site
Blog
Campaigns
Onboarding
App editor
Payment
Retention
Management
Growth
Client Framework Squad
Breaking the Product
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
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
Sitting Together
Developers
PO Designer
QA
Everyone Has an Influence
➜ Product:
- Brainstorming - with stakeholders
- Grooming meetings
➜ Technology stack:
- Autonomy within the squad
- Guild supports
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)
“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
Lean the Structure
➜ Guild backlog
➜ Full-stack developer training
➜ Moving developers between squads
➜ Transparency culture
➜ Loosely coupled systems
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
Leftovers
➜ Developer measurements in matrix org.
➜ Code coupling
➜ Cross-squad tasks
Squads - Final ScoreComponent
TeamFeature Group
Feature
OwnerFeature Team Squads
Rapid
Development
High Utilization
Developer
Ownership
Product
Contribution
Easy
Implementation
Personal
Development
Scalable
Thanks!Any questions?
@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)