Scaling Engineering
by Hacking Conway's Law
•www.linkedin.com/in/aviran @aviranm http://www.aviransplace.com
Aviran Mordo
Head of
@aviranm
Wix In Numbers
 86M registered users from 190 countries
 3 Data centers + 2 Clouds (Google, Amazon)
 ~1200 people work at Wix
 Of which ~ 400 in R&D
http://www.calcalist.co.il/local/articles/0,7340,L-3660020,00.html
The most searched work place (in Israel) by software engineers - 2015 Google search survey
@aviranm
From 100 to 1000 in 5 Years
http://indy100.independent.co.uk/image/19112-1y4vb9d.png
@aviranm
http://p1.pichost.me/i/11/1339236.jpg
In the Beginning
Functional Teams
Client
Team
Server
Team
TL
TM
TL
TM
TM
TM
TM
TM
Products: 3
People: ~100
@aviranm
Shifting Resources
@aviranm
Functional
unit model
Business
unit model
Structures for Scalability
There are 2 key common structures in the industry
@aviranm
Functional Model
Disadvantages
 Lack of product ownership
 Lack of product level expertise
 Hard to predict and plan product roadmap
 Cross-function communication is hard
 Less focus on delivery and time to market
Client
Team
Server
Team
TL
TM
TL
TM
TM
TM
TM
TM
@aviranm
Disadvantages
 Resource and work duplication
 Architecture alignment is hard
 Technology knowledge sharing is hard
 Limited opportunity for professional
development
 Product integration is hard
Project ProjectProject
TL TL
TM
TMTM
TM
TL
TM
TM
Business Unit Model
Creates Silos
@aviranm
Our Assumptions
 There is no perfect model
 It depends on the company’s current challenges, life cycle
phase and culture
 Every model should be tuned constantly and evolve with the
company
@aviranm
@aviranm
Wix’s Gangs & Guilds Model
Products: <10
People: ~400
Client
Team
Server
Team
TL
TM
TL
TM
TM
TM
TM
TM
Gang GangGang
Wix’s Gangs & Guilds Model
Products: <10
People: ~400
A Guild is a group of people that
share expertise, knowledge, tools,
code and practice
Guild
Guild
GMGL
GL GM
TL TL
TM
TMTM
TM
TL
TM
TM
A Gang is a group of people that work on related products,
composed of all required resources from different disciplines.
 Independence of the product Gang
 Technical power of the Guild
 Healthy balance between product and tech
 Product features and technical equal in
priority
Gangs & Guilds – Why?
No Silos
Gang GangGang
Guild
Guild
GMGL
GL GM
TL TL
TM
TMTM
TM
TL
TM
TM
How
Wix’s Gangs & Guilds Model
Products: <10
People: ~400
A Guild is a group of people that
share expertise, knowledge,
tools, code and practice
A Gang is a group of people that work on related products,
composed of all required resources from different disciplines.
Gang GangGang
Guild
Guild
GMGL
GL GM
TL TL
TM
TMTM
TM
TL
TM
TM
Team Lead /
Product
Team
Members
Guild Lead
Guild
Masters
Guild Core
Teams
Guild’s Role
 Recruitment (hiring and firing)
 Assignment to product teams
 Setting the professional guidelines and methodologies.
 Training.
 Setting compensation.
 Professional development / career.
@aviranm
Next Step Even Bigger
Products: >10
People: >800
Managing Large Product Segments
Guild
Guild
Gang GangGang Gang
Products: >10
People: >800
Wix’s Company Model
 Company focus on large segment
 Has all the resources it needs to be
independent
 People within the company are aligned
with the Guilds
Company
CEO VP R&D
Guild
Guild
Company
Gang GangGang
CEO CTO
Gang
Product Product
Company
mgr
Tech mgr
Products: >10
People: >800
Wix’s Company Model
Each head of company
reports to a chairman on the management
board.
All products share the same infrastructure
Company
Guild
Guild
Company
Gang GangGang Gang
Product Product
Cross-Engineering Teams
Guild for Companies
A helping hand 
Company
Guild
Guild
Company
Gang GangGang Gang
Product Product
Cross-Engineering Teams
Guild’s Additional Roles
 Align between “Companies”
 Support the engineers working in
“Companies”
 Review and guidance
 Develop shared infrastructure
 Improving development velocity
 Temporary help “Companies” in need with
additional resources from the Guild
@aviranm
How?
Architecture
Remember Conway’s Law
“Organizations which design systems ... are constrained to
produce designs which are copies of the communication
structures of these organizations”
Conway, Melvin
How many Engineers can Work on a Single Project
?
http://cdn.wp.sunmotors.co.uk/get/2014/03/cars.28.620x413.jpg
Microservices = Engineering Scale
https://upload.wikimedia.org/wikipedia/commons/6/67/Broken_glass.jpg
Minimize Architectural Dependencies
 Independent product lifecycle
 Loose coupling
 Independent scale
 Grow / build teams as needed
@aviranm
Polyglotic System?
Limit your Stack = Sharing Knowledge
 Code reuse
 Cross cutting concerns (session, security, auditing, testing, logging…)
 Faster system evolution
 Development velocity
@aviranm
Over 200 microservices; Deploying ~100/Day
Microservices = Small Teams
Small Teams = Small Rooms
@aviranm
Culture that ROQS
R
O
Q
S
esponsibility
wnership
uality
haring
@aviranm
What Is The Common Denominator?
 Product manager
 Project manager
 QA
 Operations
 DBA
Develpers
can do
these jobs
@aviranm
Developer
Product
QA
ManagementOperation
BI
Dev Centric Culture – Involve The Developer
 Product definition (with product)
 Development
 Testing (with QA engineers)
 Deployment / Rollback
(with operations)
 Monitoring / BI (with BI team)
 DevOps – to enable deployment and
rollback, fully automated
Support Circle
@aviranm
Production State Changes Every 5 min
@aviranm
@aviranm
Quality = Better Engineers
Better Engineers = Professional Growth
Professional Growth = Investment in People
/ Training
Enter the Guilds
Guild Day
 Engineers work 4 days with their company
 Thursday is Guild day.
 Developers conduct quality enhancing activities with the
Guild.
@aviranm
Guild Day Goals
 Builds cross-team relationships
 Shares knowledge
 Assimilate the culture
 Lesson learned
 Continuous improvement
 Promotes innovation
 Professional development
@aviranm
Guild Day Schedule
10:00-11:00 Open Space
11:00-11:15 Break
11:15-11:40 Project spotlight
11:45-13:00 Tech talk or Workshop
@aviranm
Open Space
Guild Week – Games of Gangs
One week each quarter
Pair programming with a person from another company
Enhancing infrastructure
Building tools
Helping companies
Work on open source
@aviranm
Goal #1 – Improve engineering skills and quality
Transparency
@aviranm
Communication Channels
 To company wide activities
 To knowledge centers
 To key personnel
@aviranm
Growing New Teams
It is All About the People
@aviranm
Do Not Compromise on Hiring
 Hire only good people
 Fit the culture
 Excellent technically
 Candidates can be dropped
 By anyone
 At any time
 If there is any doubt, then there is no doubt
@aviranm
Seeds new Teams with Ambassadors
 Train “ambassadors” that practice dev-centric culture from
the Guild
 Seed new teams with at least one dev-centric ambassador to
assimilate new employees.
 Beware of hiring more people than you can train / assimilate
successfully into your culture
@aviranm
Hiring Team Leads can Mess Up Your Culture
 Do not hire people directly into team lead position
 Hire potential team leads
 Only after a person can be a dev-centric ambassador she
can become TL
@aviranm
Elements to a Healthy Growth
@aviranm
Transparency
Quality
Trust &
Collaboration
Independence
Growth
@aviranm
Don’t leave quality and velocity to
chance, create a system that balances
quality, growth and velocity
Guilds Companies
http://www.psdgraphics.com/file/gold-scales.jpg
Fast
Features
Better
Quality
Read some more:
http://goo.gl/c3WLsz - Building engineering culture http://goo.gl/fGUSZe - Building a Guild
What happens if we invest in
developing our people and they leave
us?
“
CFO asks CEO:
CEO:
“What happened if we don’t and they
stay? “
“
@aviranm
Q&A
http://goo.gl/F8yWa3
http://engineering.wix.com
@WixEng
Aviran Mordo
Head of
•www.linkedin.com/in/aviran @aviranm http://www.aviransplace.com

Scaling Wix engineering

  • 1.
    Scaling Engineering by HackingConway's Law •www.linkedin.com/in/aviran @aviranm http://www.aviransplace.com Aviran Mordo Head of
  • 2.
  • 3.
    Wix In Numbers 86M registered users from 190 countries  3 Data centers + 2 Clouds (Google, Amazon)  ~1200 people work at Wix  Of which ~ 400 in R&D http://www.calcalist.co.il/local/articles/0,7340,L-3660020,00.html The most searched work place (in Israel) by software engineers - 2015 Google search survey @aviranm
  • 4.
    From 100 to1000 in 5 Years http://indy100.independent.co.uk/image/19112-1y4vb9d.png @aviranm
  • 5.
  • 6.
  • 7.
  • 8.
    Functional unit model Business unit model Structuresfor Scalability There are 2 key common structures in the industry @aviranm
  • 9.
    Functional Model Disadvantages  Lackof product ownership  Lack of product level expertise  Hard to predict and plan product roadmap  Cross-function communication is hard  Less focus on delivery and time to market Client Team Server Team TL TM TL TM TM TM TM TM @aviranm
  • 10.
    Disadvantages  Resource andwork duplication  Architecture alignment is hard  Technology knowledge sharing is hard  Limited opportunity for professional development  Product integration is hard Project ProjectProject TL TL TM TMTM TM TL TM TM Business Unit Model Creates Silos @aviranm
  • 11.
    Our Assumptions  Thereis no perfect model  It depends on the company’s current challenges, life cycle phase and culture  Every model should be tuned constantly and evolve with the company @aviranm
  • 12.
  • 13.
    Wix’s Gangs &Guilds Model Products: <10 People: ~400 Client Team Server Team TL TM TL TM TM TM TM TM
  • 14.
    Gang GangGang Wix’s Gangs& Guilds Model Products: <10 People: ~400 A Guild is a group of people that share expertise, knowledge, tools, code and practice Guild Guild GMGL GL GM TL TL TM TMTM TM TL TM TM A Gang is a group of people that work on related products, composed of all required resources from different disciplines.
  • 15.
     Independence ofthe product Gang  Technical power of the Guild  Healthy balance between product and tech  Product features and technical equal in priority Gangs & Guilds – Why? No Silos Gang GangGang Guild Guild GMGL GL GM TL TL TM TMTM TM TL TM TM How
  • 16.
    Wix’s Gangs &Guilds Model Products: <10 People: ~400 A Guild is a group of people that share expertise, knowledge, tools, code and practice A Gang is a group of people that work on related products, composed of all required resources from different disciplines. Gang GangGang Guild Guild GMGL GL GM TL TL TM TMTM TM TL TM TM Team Lead / Product Team Members Guild Lead Guild Masters Guild Core Teams
  • 17.
    Guild’s Role  Recruitment(hiring and firing)  Assignment to product teams  Setting the professional guidelines and methodologies.  Training.  Setting compensation.  Professional development / career. @aviranm
  • 18.
    Next Step EvenBigger Products: >10 People: >800
  • 19.
    Managing Large ProductSegments Guild Guild Gang GangGang Gang Products: >10 People: >800
  • 20.
    Wix’s Company Model Company focus on large segment  Has all the resources it needs to be independent  People within the company are aligned with the Guilds Company CEO VP R&D Guild Guild Company Gang GangGang CEO CTO Gang Product Product Company mgr Tech mgr Products: >10 People: >800
  • 21.
    Wix’s Company Model Eachhead of company reports to a chairman on the management board. All products share the same infrastructure Company Guild Guild Company Gang GangGang Gang Product Product Cross-Engineering Teams
  • 22.
    Guild for Companies Ahelping hand 
  • 23.
    Company Guild Guild Company Gang GangGang Gang ProductProduct Cross-Engineering Teams Guild’s Additional Roles  Align between “Companies”  Support the engineers working in “Companies”  Review and guidance  Develop shared infrastructure  Improving development velocity  Temporary help “Companies” in need with additional resources from the Guild @aviranm
  • 24.
  • 25.
  • 26.
    Remember Conway’s Law “Organizationswhich design systems ... are constrained to produce designs which are copies of the communication structures of these organizations” Conway, Melvin
  • 27.
    How many Engineerscan Work on a Single Project ? http://cdn.wp.sunmotors.co.uk/get/2014/03/cars.28.620x413.jpg
  • 28.
    Microservices = EngineeringScale https://upload.wikimedia.org/wikipedia/commons/6/67/Broken_glass.jpg
  • 29.
    Minimize Architectural Dependencies Independent product lifecycle  Loose coupling  Independent scale  Grow / build teams as needed @aviranm
  • 30.
  • 31.
    Limit your Stack= Sharing Knowledge  Code reuse  Cross cutting concerns (session, security, auditing, testing, logging…)  Faster system evolution  Development velocity @aviranm Over 200 microservices; Deploying ~100/Day
  • 32.
    Microservices = SmallTeams Small Teams = Small Rooms @aviranm
  • 33.
  • 34.
    What Is TheCommon Denominator?  Product manager  Project manager  QA  Operations  DBA Develpers can do these jobs @aviranm
  • 35.
    Developer Product QA ManagementOperation BI Dev Centric Culture– Involve The Developer  Product definition (with product)  Development  Testing (with QA engineers)  Deployment / Rollback (with operations)  Monitoring / BI (with BI team)  DevOps – to enable deployment and rollback, fully automated Support Circle @aviranm
  • 36.
  • 37.
  • 38.
    @aviranm Quality = BetterEngineers Better Engineers = Professional Growth Professional Growth = Investment in People / Training Enter the Guilds
  • 39.
    Guild Day  Engineerswork 4 days with their company  Thursday is Guild day.  Developers conduct quality enhancing activities with the Guild. @aviranm
  • 40.
    Guild Day Goals Builds cross-team relationships  Shares knowledge  Assimilate the culture  Lesson learned  Continuous improvement  Promotes innovation  Professional development @aviranm
  • 41.
    Guild Day Schedule 10:00-11:00Open Space 11:00-11:15 Break 11:15-11:40 Project spotlight 11:45-13:00 Tech talk or Workshop @aviranm
  • 42.
  • 44.
    Guild Week –Games of Gangs One week each quarter Pair programming with a person from another company Enhancing infrastructure Building tools Helping companies Work on open source @aviranm Goal #1 – Improve engineering skills and quality
  • 45.
  • 46.
    Communication Channels  Tocompany wide activities  To knowledge centers  To key personnel @aviranm
  • 47.
  • 48.
    It is AllAbout the People @aviranm
  • 49.
    Do Not Compromiseon Hiring  Hire only good people  Fit the culture  Excellent technically  Candidates can be dropped  By anyone  At any time  If there is any doubt, then there is no doubt @aviranm
  • 50.
    Seeds new Teamswith Ambassadors  Train “ambassadors” that practice dev-centric culture from the Guild  Seed new teams with at least one dev-centric ambassador to assimilate new employees.  Beware of hiring more people than you can train / assimilate successfully into your culture @aviranm
  • 51.
    Hiring Team Leadscan Mess Up Your Culture  Do not hire people directly into team lead position  Hire potential team leads  Only after a person can be a dev-centric ambassador she can become TL @aviranm
  • 52.
    Elements to aHealthy Growth @aviranm Transparency Quality Trust & Collaboration Independence Growth
  • 53.
    @aviranm Don’t leave qualityand velocity to chance, create a system that balances quality, growth and velocity Guilds Companies http://www.psdgraphics.com/file/gold-scales.jpg Fast Features Better Quality
  • 54.
    Read some more: http://goo.gl/c3WLsz- Building engineering culture http://goo.gl/fGUSZe - Building a Guild What happens if we invest in developing our people and they leave us? “ CFO asks CEO: CEO: “What happened if we don’t and they stay? “ “ @aviranm
  • 55.