Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Wix.com Back-end Engineering Guild Manifesto

2 136 vues

Publié le

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

Publié dans : Ingénierie

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?”