Scaling Wix engineering

55
Scaling Engineering by Hacking Conway's Law www.linkedin.com/in/avi ran @aviranm http://www.aviranspla ce.com Aviran Mordo Head of

Transcript of Scaling Wix engineering

Page 1: Scaling Wix engineering

Scaling Engineeringby Hacking Conway's Law

•www.linkedin.com/in/aviran @aviranm http://www.aviransplace.com

Aviran MordoHead of

Page 2: Scaling Wix engineering

@aviranm

Page 3: Scaling Wix engineering

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

Page 4: Scaling Wix engineering

From 100 to 1000 in 5 Years

http://indy100.independent.co.uk/image/19112-1y4vb9d.png@aviranm

Page 5: Scaling Wix engineering

http://p1.pichost.me/i/11/1339236.jpg

In the Beginning

Page 6: Scaling Wix engineering

Functional Teams

Client Team

Server Team

TL

TM

TL

TM

TM

TM

TM

TM

Products: 3People: ~100

@aviranm

Page 7: Scaling Wix engineering

Shifting Resources

@aviranm

Page 8: Scaling Wix engineering

Functionalunit model

Businessunit model

Structures for Scalability

There are 2 key common structures in the industry

@aviranm

Page 9: Scaling Wix engineering

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

Page 10: Scaling Wix engineering

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

TM

TM

TM

TL

TM

TM

Business Unit Model

Creates Silos@aviranm

Page 11: Scaling Wix engineering

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

Page 12: Scaling Wix engineering

@aviranm

Page 13: Scaling Wix engineering

Wix’s Gangs & Guilds Model

Products: <10People: ~400

Client Team

Server Team

TL

TM

TL

TM

TM

TM

TM

TM

Page 14: Scaling Wix engineering

Gang GangGang

Wix’s Gangs & Guilds Model

Products: <10People: ~400

A Guild is a group of people that share expertise, knowledge, tools, code and practice

Guild

Guild

GMGL

GL GM

TL TL

TM

TM

TM

TM

TL

TM

TM

A Gang is a group of people that work on related products, composed of all required resources from different disciplines.

Page 15: Scaling Wix engineering

Independence of the product Gang Technical power of the Guild Healthy balance between product and

tech Product features and technical equal in

priorityWhat

Gangs & Guilds – Why?

No Silos

Gang GangGang

Guild

Guild

GMGL

GL GM

TL TL

TM

TM

TM

TM

TL

TM

TM

How

Page 16: Scaling Wix engineering

Wix’s Gangs & Guilds Model

Products: <10People: ~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

TM

TM

TM

TL

TM

TM

Team Lead / Product

Team Members

Guild Lead

Guild Masters

Guild Core Teams

Page 17: Scaling Wix engineering

Guild’s Role

Recruitment (hiring and firing) Assignment to product teams Setting the professional guidelines and methodologies. Training. Setting compensation. Professional development / career.

@aviranm

Page 18: Scaling Wix engineering

Next Step Even Bigger

Products: >10People: >800

Page 19: Scaling Wix engineering

Managing Large Product Segments

Guild

Guild

Gang GangGang Gang

Products: >10People: >800

Page 20: Scaling Wix engineering

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: >10People: >800

SILOS

Page 21: Scaling Wix engineering

Wix’s Company ModelEach 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

Page 22: Scaling Wix engineering

Guild for CompaniesA helping hand

Page 23: Scaling Wix engineering

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

Page 24: Scaling Wix engineering

How?

Page 25: Scaling Wix engineering

Architecture

Page 26: Scaling Wix engineering

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

Page 27: Scaling Wix engineering

How many Engineers can Work on a Single Project ?

http://cdn.wp.sunmotors.co.uk/get/2014/03/cars.28.620x413.jpg

Page 28: Scaling Wix engineering

Microservices = Engineering Scale

https://upload.wikimedia.org/wikipedia/commons/6/67/Broken_glass.jpg

Page 29: Scaling Wix engineering

Minimize Architectural Dependencies Independent product lifecycle Loose coupling Independent scale Grow / build teams as needed

@aviranm

Page 30: Scaling Wix engineering

Polyglotic System?

Page 31: Scaling Wix engineering

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

Page 32: Scaling Wix engineering

Microservices = Small TeamsSmall Teams = Small Rooms

@aviranm

Page 33: Scaling Wix engineering

Culture that ROQS

ROQS

esponsibility

wnership

uality

haring@aviranm

Page 34: Scaling Wix engineering

What Is The Common Denominator? Product manager Project manager QA Operations DBA

Develperscan dothese jobs

@aviranm

Page 35: Scaling Wix engineering

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

Page 36: Scaling Wix engineering

Production State Changes Every 5 min

Page 37: Scaling Wix engineering

@aviranm

Page 38: Scaling Wix engineering

@aviranm

Quality = Better Engineers

Better Engineers = Professional Growth

Professional Growth = Investment in People / Training

Enter the Guilds

Page 39: Scaling Wix engineering

Guild Day

Engineers work 4 days with their company Thursday is Guild day. Developers conduct quality enhancing activities with

the Guild.

@aviranm

Page 40: Scaling Wix engineering

Guild Day Goals Builds cross-team relationships Shares knowledge Assimilate the culture Lesson learned Continuous improvement Promotes innovation Professional development

@aviranm

Page 41: Scaling Wix engineering

Guild Day Schedule 10:00-11:00 Open Space11:00-11:15 Break11:15-11:40 Project spotlight11:45-13:00 Tech talk or Workshop

@aviranm

Page 42: Scaling Wix engineering

Open Space

Page 43: Scaling Wix engineering

Post Mortem• Any production downtime is investigated• Understand the cause• Lesson learned• AI to avoid same issue in the future• Findings are published in dapulse (public forum)

Page 44: Scaling Wix engineering

Guild Week – Games of GangsOne week each quarterPair programming with a person from another company

Enhancing infrastructureBuilding toolsHelping companiesWork on open source

@aviranm

Goal #1 – Improve engineering skills and quality

Page 45: Scaling Wix engineering

Transparency

@aviranm

Page 46: Scaling Wix engineering

Communication Channels

To company wide activities To knowledge centers To key personnel

@aviranm

Page 47: Scaling Wix engineering

Growing New Teams

Page 48: Scaling Wix engineering

It is All About the People@aviranm

Page 49: Scaling Wix engineering

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

Page 50: Scaling Wix engineering

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

Page 51: Scaling Wix engineering

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

Page 52: Scaling Wix engineering

Elements to a Healthy Growth

@aviranm

Transparency

Quality

Trust & CollaborationIndependence

Growth

Page 53: Scaling Wix engineering

@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

FastFeatures

BetterQuality

Page 54: Scaling Wix engineering

Read some more:http://goo.gl/c3WLsz - Building engineering culturehttp://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

Page 55: Scaling Wix engineering

Q&Ahttp://goo.gl/F8yWa3

http://engineering.wix.com@WixEng

Aviran MordoHead of

•www.linkedin.com/in/aviran @aviranm http://www.aviransplace.com