Back-end Guild Manifesto
Guild Objectives
• Dev velocity & developer productivity
• Ensure products meet Wix production quality
• Promote code quality and maintainability
• Be the glue between the different groups.
• Teach and promote Wix culture
• Promote transparency
• Enabling the overall alignments
• Knowledge share
• Provide professional guidelines & tool-set
• Responsible for the professional development of the guild members
(training, workshops, conferences etc.)
esponsibility
wnership
uality
haring
• Software architecture
• Data architecture
• Scalability
• Performance
• Availability
• Fallbacks
• Monitoring
• Maintenance
• Deployment
• Networking
• Recovery
Back-end engineer’s responsibilities
Help groups to be more efficient
Understand developer’s time wasters and solve
them.
Provide feedback on infrastructure & dev
experience.
Manage dependencies (system & organization).
Smart use of shared infrastructure and code
base.
Dev velocity
Build tools for developers
Development infrastructure improvements (build
tools, deployment system…)
Platform infrastructure & framework
Looking into the future
Code quality.
Shared lesson learned.
Code maintainability.
Support company growth.
Knowledge share and alignments
1 on 1 mentoring
Develop training courses content
Mentoring
Workshops
Tech talks
Ensure production level quality
Best practices.
Post-mortem.
Peer review.
Production debuging .
Teach and share best practices
Project spotlight
Retrospective
Bug Hunts
Post mortems
Attract & Keep top talent
Build and enhance R&D Brand.
Engineers professional development .
Professional development & R&D brand
Tech talks
Blog posts
Pair programing
Meetups
Open source
When do you meet the guild
Before coming
to Wix
• Attract and recruit talent
When you join
• New employee training (Kickstart /
Pairing)
Daily
• Dedicated “guild masters” working
continuously with the teams
Dedicated time
• Guild day
New Employee Training
Culture
Knowledge gaps (TDD, Scala, Java, Design…)
Production scale (Patterns, Best practices…)
Continuous delivery
DevOps
Guild Masters
• Distribute knowledge cross teams
• Teach best practices
• Help in execution
• Help in education
• Review architecture
Guild masters are the guild’s top engineers dedicated to support
different groups
Guild Day
• Engineers work 4 days for their company
• Thursday is Guild day.
• Developers conduct quality enhancing
activities with the Guild.
Guild Day – Why?
• Builds cross-team relationships
• Shares knowledge
• Assimilate the culture
• Lesson learned cross teams
• Continuous improvement
• Promotes innovation
• Professional development
Weekdays guild activities:
Sun,Tue,Wed 10:15-10:30 – Representatives daily​
Mon 10:15-10:45 - Weekly meeting + Bug hunt
​Thu - Guild day​
​Guild day schedule:
10:00-11:00 Retrospec​tive
11:00-11:15 Break
11:15-11:30 Project spotlight
​11:30-13:00 Tech talk or Workshop
13:00- End of day: Lunch + Guild tasks (Games of
Gangs)
Production Bug Hunt
• Service owner picks a service running on production
• Open the monitoring system
• Explains the service to all Guild’s members
– What the service does
– Exceptions thrown in production
– Performance matrix
– Build warnings
• Get a list of AI from group feedback (sometimes for
dependent services)
Production Bug Hunt - Why?
• Improve service stability
• Teach developers about services they don’t own
• Understand how services behave on production
• Open discussion and ideas from guild members
• Discover unexpected use patterns
• Find bugs on production
• Lessons learned from other teams experience
Retrospective
• Main tool for continuous improvement
• Share lesson learned.
• Solve problems
• Suggestions on how to improve:
– Our team
– Quality of products
– Process
– Effectiveness of the R&D organization.
Retrospective – How ?
• Whenever developers encounter issues /
dilemmas, they are encouraged to post them
on a board (daPulse) for public discussion
• Topics posted on the board during the week
constitute the agenda for the retrospective
Retrospective – Board
Tech Talks
• Developers give a tech talks every week
• People from other departments in the company
• Guest speakers
• Open to anyone from Wix
• Using Meetup http://www.meetup.com/at-wix/
to invite outsiders to our internal talks (if
appropriate)
• Talks videos http://goo.gl/IDqXTi
Tech Talks – Why ?
• Training employees
• Knowledge sharing
• Educating about other activities at Wix
• Professional development
• Recruitment funnel
Project Spotlight
• Team presents an interesting project
• Present the new product
• Present the challenges
• Share interesting patterns / architecture
• Lessons learned
Empower a Company (Group)
• When a company/group needs help it can
request the Guild members to help in:
– Reviews
– Tests
– Infrastructure enhancements
– Training
– Extra manpower
Games of Gangs – Guild Tasks
• Build tools that help developers
• Enhance platform / framework
• Pay legacy technical debt
• Improve tests
• Research something new for your company
• Work on a task for a different group
• Work on an open source project
• 1 on 1 mentoring
Games of Gangs Objectives
• Improve code quality
• Improve developer productivity
• Find repeating patterns across projects - generalize
a solution or improve the infrastructure
• Learn other projects (easier to step in if necessary)
• Unbiased review of other projects
• Learn about problems and solutions other teams
faced and solved that you may also encounter.
• It fun and breaks the day to day routine
How it is Done
• Tasks are being done in pair programing (pair
with a developer from a different group)
• For each task you make you get bragging points
• Tasks are being suggested on a public board by
the developers
• Tasks need to meet one of the following
motivations (Improve quality, productivity, help
on a different project or knowledge sharing).
Games of Gangs Task Board
0pt - Single person task
1pt - Blog post or other branding activities
2pt - Pair with someone in your team
3pts - Pair programming with a person from a different group
3pts - Tech talk for the guild
4pts - Tech talk in dedicated meetups and conferences
4pts - Pair with off-shore developer
Project Rotation within company
• Team usually has more than one project
• Avoid having one developer working on same
service for long period of time
Project Rotation within company– Why?
• There is no single person with a knowledge on
a specific component
• Ongoing review
• Keep it interesting
• Team is the 24/7/365 production focal point
• Everybody owns everything
CFO asks CEO: “What happens if we
invest in developing our people and they
leave us?”
CEO: “What happened if we don’t and
they stay?”
Wix.com Back-end Engineering Guild Manifesto

Wix.com Back-end Engineering Guild Manifesto

  • 1.
  • 2.
    Guild Objectives • Devvelocity & developer productivity • Ensure products meet Wix production quality • Promote code quality and maintainability • Be the glue between the different groups. • Teach and promote Wix culture • Promote transparency • Enabling the overall alignments • Knowledge share • Provide professional guidelines & tool-set • Responsible for the professional development of the guild members (training, workshops, conferences etc.)
  • 4.
  • 7.
    • Software architecture •Data architecture • Scalability • Performance • Availability • Fallbacks • Monitoring • Maintenance • Deployment • Networking • Recovery Back-end engineer’s responsibilities
  • 9.
    Help groups tobe more efficient Understand developer’s time wasters and solve them. Provide feedback on infrastructure & dev experience. Manage dependencies (system & organization). Smart use of shared infrastructure and code base.
  • 10.
    Dev velocity Build toolsfor developers Development infrastructure improvements (build tools, deployment system…) Platform infrastructure & framework
  • 11.
    Looking into thefuture Code quality. Shared lesson learned. Code maintainability. Support company growth.
  • 12.
    Knowledge share andalignments 1 on 1 mentoring Develop training courses content Mentoring Workshops Tech talks
  • 13.
    Ensure production levelquality Best practices. Post-mortem. Peer review. Production debuging .
  • 14.
    Teach and sharebest practices Project spotlight Retrospective Bug Hunts Post mortems
  • 15.
    Attract & Keeptop talent Build and enhance R&D Brand. Engineers professional development .
  • 16.
    Professional development &R&D brand Tech talks Blog posts Pair programing Meetups Open source
  • 17.
    When do youmeet the guild Before coming to Wix • Attract and recruit talent When you join • New employee training (Kickstart / Pairing) Daily • Dedicated “guild masters” working continuously with the teams Dedicated time • Guild day
  • 18.
    New Employee Training Culture Knowledgegaps (TDD, Scala, Java, Design…) Production scale (Patterns, Best practices…) Continuous delivery DevOps
  • 19.
    Guild Masters • Distributeknowledge cross teams • Teach best practices • Help in execution • Help in education • Review architecture Guild masters are the guild’s top engineers dedicated to support different groups
  • 21.
    Guild Day • Engineerswork 4 days for their company • Thursday is Guild day. • Developers conduct quality enhancing activities with the Guild.
  • 22.
    Guild Day –Why? • Builds cross-team relationships • Shares knowledge • Assimilate the culture • Lesson learned cross teams • Continuous improvement • Promotes innovation • Professional development
  • 23.
    Weekdays guild activities: Sun,Tue,Wed10:15-10:30 – Representatives daily​ Mon 10:15-10:45 - Weekly meeting + Bug hunt ​Thu - Guild day​ ​Guild day schedule: 10:00-11:00 Retrospec​tive 11:00-11:15 Break 11:15-11:30 Project spotlight ​11:30-13:00 Tech talk or Workshop 13:00- End of day: Lunch + Guild tasks (Games of Gangs)
  • 24.
    Production Bug Hunt •Service owner picks a service running on production • Open the monitoring system • Explains the service to all Guild’s members – What the service does – Exceptions thrown in production – Performance matrix – Build warnings • Get a list of AI from group feedback (sometimes for dependent services)
  • 25.
    Production Bug Hunt- Why? • Improve service stability • Teach developers about services they don’t own • Understand how services behave on production • Open discussion and ideas from guild members • Discover unexpected use patterns • Find bugs on production • Lessons learned from other teams experience
  • 26.
    Retrospective • Main toolfor continuous improvement • Share lesson learned. • Solve problems • Suggestions on how to improve: – Our team – Quality of products – Process – Effectiveness of the R&D organization.
  • 27.
    Retrospective – How? • Whenever developers encounter issues / dilemmas, they are encouraged to post them on a board (daPulse) for public discussion • Topics posted on the board during the week constitute the agenda for the retrospective
  • 28.
  • 30.
    Tech Talks • Developersgive a tech talks every week • People from other departments in the company • Guest speakers • Open to anyone from Wix • Using Meetup http://www.meetup.com/at-wix/ to invite outsiders to our internal talks (if appropriate) • Talks videos http://goo.gl/IDqXTi
  • 31.
    Tech Talks –Why ? • Training employees • Knowledge sharing • Educating about other activities at Wix • Professional development • Recruitment funnel
  • 32.
    Project Spotlight • Teampresents an interesting project • Present the new product • Present the challenges • Share interesting patterns / architecture • Lessons learned
  • 33.
    Empower a Company(Group) • When a company/group needs help it can request the Guild members to help in: – Reviews – Tests – Infrastructure enhancements – Training – Extra manpower
  • 34.
    Games of Gangs– Guild Tasks • Build tools that help developers • Enhance platform / framework • Pay legacy technical debt • Improve tests • Research something new for your company • Work on a task for a different group • Work on an open source project • 1 on 1 mentoring
  • 35.
    Games of GangsObjectives • Improve code quality • Improve developer productivity • Find repeating patterns across projects - generalize a solution or improve the infrastructure • Learn other projects (easier to step in if necessary) • Unbiased review of other projects • Learn about problems and solutions other teams faced and solved that you may also encounter. • It fun and breaks the day to day routine
  • 36.
    How it isDone • Tasks are being done in pair programing (pair with a developer from a different group) • For each task you make you get bragging points • Tasks are being suggested on a public board by the developers • Tasks need to meet one of the following motivations (Improve quality, productivity, help on a different project or knowledge sharing).
  • 37.
    Games of GangsTask Board 0pt - Single person task 1pt - Blog post or other branding activities 2pt - Pair with someone in your team 3pts - Pair programming with a person from a different group 3pts - Tech talk for the guild 4pts - Tech talk in dedicated meetups and conferences 4pts - Pair with off-shore developer
  • 38.
    Project Rotation withincompany • Team usually has more than one project • Avoid having one developer working on same service for long period of time
  • 39.
    Project Rotation withincompany– Why? • There is no single person with a knowledge on a specific component • Ongoing review • Keep it interesting • Team is the 24/7/365 production focal point • Everybody owns everything
  • 40.
    CFO asks CEO:“What happens if we invest in developing our people and they leave us?” CEO: “What happened if we don’t and they stay?”

Editor's Notes

  • #5 זה לא מספיק להיות מעורב, התרבות והפעילות חשובות לא פחות
  • #7 It is not just development it is production maintenance