Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[DevDojo] Development processes and Tools at Mercari

mercari
PRO
December 23, 2022

[DevDojo] Development processes and Tools at Mercari

In this course, we will explain product development processes in Mercari and how to handle them in JIRA. We will also cover the Agile development process that Mercari has been utilizing for the past three years.

mercari
PRO

December 23, 2022
Tweet

More Decks by mercari

Other Decks in Technology

Transcript

  1. Development processes and Tools at Mercari Fall 2022 Dev Dojo

    @Ambuj
  2. Development processes at mercari From past 3 years mercari is

    utilizing Agile development processes
  3. Agile came a long way... Initial 6 months, focus was

    on the basics of Scrum
  4. Agile came a long way... Initial 6 months, the focus

    was on to clear the basics of Scrum • Classic Scrum • Use of physical boards • Jira (separate session) Daily Scrum Meeting Review Retrospective No Changes Sprint Backlog Sprint Planning Meeting Team selects How much to commit Team Product Owner Scrum Master Input from End-Users and other stakeholders 1 5 2 3 4
  5. Materials Product Backlog - Owner: Product Owner/Manager • Single list

    of requirements, and it shows priority order Sprint Backlog - Owner: Tech lead • Task list to achieve sprint goal Increments • Outcome of the sprint
  6. Ceremonies Product Backlog Prioritization (Backlog Grooming) • Product Managers maintain

    product backlog, remove/add items, update priority order • Also share expected scope to stakeholders right after prioritization for next sprint Sprint Planning Meeting (up to 4 hours for 2 weeks) • Product Manager shares user story(requirements) and solution ideas • The sprint team creates tasks to achieve sprint goal • Estimate tasks, and set scope based on capacity of the team
  7. Ceremonies Daily Scrum (up to 15 min) • Share what

    I did, what I will do and what are blocking issues Sprint Review (Demo) • Demonstrate outcome of the sprint (increments) to stakeholders • Product Owner decides whether increments are release-able or not Retrospective • Look back the sprint, and list good points, bad point and what we will try in the next sprint (KPT)
  8. User Story and Acceptance Criteria Contents/template of User Story (*Check

    notes for details) - *Role, Goal and Benefit - As a [User PERSONA] - - I want to [NEED : Intent, NOT the feature] to - - So that [PURPOSE]- I can xxx - *Definition of Ready (DoR) - PM and Dev Team need to have talked about the story at least once - (Check notes for details) - *Definition of DONE (Acceptance Criteria) - (Check notes for details) - What user stories should not (ideally) include 1. Details of technical implementation. PM should just tell what needs to be built and which end-user (external or internal) is going to be used. PMs or anyone for that matter, can be part of technical discussions and suggest ideas/approaches, but final decisions should be from the Engineering team. 2. More than one requirement in one user story
  9. Mercari Extensions

  10. What should we focus on Agile? • Safe Development period

    ◦ Fix all design and Completed Reviews (Biz, UX, UI, Tech, CS etc) before Sprint Planning/Dev period • Make rhythm for continuous improvement • Create Prioritized Product Backlog ◦ Focus on Prioritization and ‘WHY’ of User Story • Measure your team’s velocity ◦ Story Point
  11. Scrum Life Cycle Dev Sprint Estimation & Refine Design Plan

    Tech Design Release Test Sprint Planning Prioritization Design Scope sharing Draft Drop Solution Sharing Retrospective Release Demo Client Sprint in pure Scrum Definition
  12. Scrum Life Cycle Dev Sprint Estimation & Refine Design Plan

    Tech Design Sprint Planning Prioritization Design Scope sharing Draft Drop Solution Sharing Retrospective Release Demo Backend, Web Sprint in pure Scrum Definition * Web follows Client Release process when release is bigger
  13. Additional Ceremonies, activities Expand Prioritization • Additionally, Technical requirements(Tech Story)

    should be prioritized also with TL Design Sprint • Focus on customer facing design(Product Spec, not tech spec) • Finalize solution design which provides enough information to engineers • Periodically, Product Manager discuss design with engineers and designers
  14. Additional Ceremonies, activities Tech Design • Engineers create design to

    meet solution design which is provided by product manager • The document explains architecture, technical solutions etc
  15. Additional Ceremonies, activities Draft Drop • Product Managers share draft

    solution design to engineers to kick tech design Solution Sharing • Product Managers share solution proposal to the stakeholders which are engineers, QA, Customer Service etc to get feedback • Kick estimations of engineering and QA • Kick review process for CS
  16. Additional Ceremonies, activities Estimation • Engineers, QA create tasks and

    estimate each task to build stories Refinement • Product Manager updates solutions by feedback from engineers, QA and Customer Service
  17. Summary - Rhythm Prioritize stories by PM, TL, QA, Design

    Set scope for design Share draft solution design to TL, QA Share solution proposal to stakeholders Set sprint goal by estimations Analysis, Business negotiations, Create Epic, Story tickets Create Tasks and estimation Refine solution Demonstrate what developed in the sprint Discuss what is good, what is bad and try for next sprint Test for release
  18. Track activities - ticket Create Sprint and put story and

    tasks Create Epic, Story tickets Create Task tickets Change status to ready for release Refine Epic and Story ticket Design-Task ticket Change status to release OK and Done
  19. Phase 2: Cross Team Scrum Next 6 months, focus was

    on team collaboration
  20. • Multiple teams were working together • Sharing dependent tasks

    • Facing challenges to collaborate Status of teams at Mercari (Before camps) Merpay QA ENGINEERING CRE DATA GROWTH
  21. Challenges among teams working together: • Prioritization of tasks can’t

    be done in individual team ◦ Dependent teams have different sprint schedule ◦ Priorities change in the middle of team sprint because of dependent team’s task request • Individual team priorities are not shared with dependent teams ◦ No common platform used to share priorities ◦ Difficult to sync between Jira and physical scrum boards • QA issues of previous sprint needs to be solved in current dev sprint ◦ Sprint scope is limited only to development team ◦ QA starts testing after development is done More details are mentioned here.
  22. Recommended Solutions: # Challenges Solutions 1 Prioritization of tasks can’t

    be done in individual team 1. Sync all the teams to have same sprint schedule 2 Individual team priorities are not shared with dependent teams 1. Map dependent teams 2. Guide teams to create Jira Boards & sync 3. Standardize JIRA usage to communicate priorities among teams 3 QA issues of previous sprint needs to be solved in current dev sprint 1. Merge the sprints of dev team with QA tasks 2. Define sprint timeline structure
  23. Implementation of Cross Team Scrum (focused on team based issues)

  24. Cross Team Scrum Trial flow: Scrum Masters Daily Scrum Team

    Retrospective Conducted Separately Overall Retrospective Product Owner, Manager, All teams Product Owner, Manager, and team Product Owner, Manager, and teams Item 1 Item 2 Item n Product backlog Sprint Planning 2 Sprint Planning 1 Prioritization Product Owner 2-4 weeks Sprint
  25. Inside Camps: Sprint Ceremonies Backlog Grooming • Decide priorities and

    groom the backlog of a camp Sprint Planning # 1 • Decide Sprint backlog and resolve dependencies Mid Sprint sync up • Sync progress of teams in a camp Sprint Review: • Review camp task completion • Demos Sprint Retrospective: • Use of retrium • Retrospective of camp teams PARTICIPANTS: PgM, TPMs, PM head, PMs, EM Head, TLs, & SMs Progress check and support based on Agile Progress Sheet
  26. Development Tools PM Office

  27. - Ticketing - JIRA (This is focus of today session)

    - Documents - Confluence - Google Doc - Brainstorming/Visualization - Miro - Design Tools - not covered today - Sketch/Figma etc Tools in Mercari
  28. Ticketing is critical for current development management • It manages

    Requirements, Tasks, Bugs, Priority, Status, Workflow etc Mercari uses JIRA by Atlassian Ticketing Some teams use Github Issues and Monday for tracking their tasks.
  29. Camp next & New JIRA structure Team 2 Team N

    Team 1 Camp 1 Jira Project Team 2 Team N Team 1 Camp 2 Jira Project T5 T4 Jira 10.2 TN T2 T1 Jira 10.1 T3 1 camp 1 jira project (recommended) 1 camp multiple Jira projects (complexity > flexibility) SWANLY for Release Management, Visualization of Progress and Tracking
  30. Ticket structure is • Epic > Story, Task > Sub-Task

    Epic is a bucket for stories, tasks etc Ticket structure Epic Story Task Sub-Task Bug Ticket Structure:
  31. Epics as centre point • Epics will play major role

    in the new JIRA for tracking progress, priority, and visualization of cross camp projects. • Epic will be unit for prioritization, reviews Analysis, collect ideas and Create Epic Prioritize Epics by Execs for design Share draft solution design to Execs Create Tasks and estimation Refine solution Demonstrate what developed in the sprint Discuss what is good, what is bad and try for next sprint Set sprint goal by estimations Test for release
  32. A board displays issues from one or more projects There

    3 types: • Scrum board • Kanban board • Next-gen board Reporting is based on a specific board Board
  33. - Ticket moves on Workflow - Workflow manages process of

    tickets - Workflow is customizable Ticket Workflow Workflow(Development): Workflow(Non Dev): FYI : Team can modify workflow which is aligned to their DEV process.
  34. Reporting Using (advance) Jira Tools