Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Wix.com Back-end Engineering Guild Manifesto

2,046 views

Published on

Wix.com back-end engineering guild activities and culture manifesto describes our guild activities and culture that support a highly innovative and renowned engineering group

Published in: Engineering

Wix.com Back-end Engineering Guild Manifesto

  1. 1. Back-end Guild Manifesto
  2. 2. 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.)
  3. 3. esponsibility wnership uality haring
  4. 4. • Software architecture • Data architecture • Scalability • Performance • Availability • Fallbacks • Monitoring • Maintenance • Deployment • Networking • Recovery Back-end engineer’s responsibilities
  5. 5. 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.
  6. 6. Dev velocity Build tools for developers Development infrastructure improvements (build tools, deployment system…) Platform infrastructure & framework
  7. 7. Looking into the future Code quality. Shared lesson learned. Code maintainability. Support company growth.
  8. 8. Knowledge share and alignments 1 on 1 mentoring Develop training courses content Mentoring Workshops Tech talks
  9. 9. Ensure production level quality Best practices. Post-mortem. Peer review. Production debuging .
  10. 10. Teach and share best practices Project spotlight Retrospective Bug Hunts Post mortems
  11. 11. Attract & Keep top talent Build and enhance R&D Brand. Engineers professional development .
  12. 12. Professional development & R&D brand Tech talks Blog posts Pair programing Meetups Open source
  13. 13. 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
  14. 14. New Employee Training Culture Knowledge gaps (TDD, Scala, Java, Design…) Production scale (Patterns, Best practices…) Continuous delivery DevOps
  15. 15. 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
  16. 16. Guild Day • Engineers work 4 days for their company • Thursday is Guild day. • Developers conduct quality enhancing activities with the Guild.
  17. 17. Guild Day – Why? • Builds cross-team relationships • Shares knowledge • Assimilate the culture • Lesson learned cross teams • Continuous improvement • Promotes innovation • Professional development
  18. 18. 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)
  19. 19. 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)
  20. 20. 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
  21. 21. 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.
  22. 22. 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
  23. 23. Retrospective – Board
  24. 24. 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
  25. 25. Tech Talks – Why ? • Training employees • Knowledge sharing • Educating about other activities at Wix • Professional development • Recruitment funnel
  26. 26. Project Spotlight • Team presents an interesting project • Present the new product • Present the challenges • Share interesting patterns / architecture • Lessons learned
  27. 27. 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
  28. 28. 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
  29. 29. 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
  30. 30. 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).
  31. 31. 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
  32. 32. Project Rotation within company • Team usually has more than one project • Avoid having one developer working on same service for long period of time
  33. 33. 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
  34. 34. 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?”

×