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

    View Slide

  2. Development processes at mercari
    From past 3 years mercari is utilizing
    Agile
    development processes

    View Slide

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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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)

    View Slide

  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

    View Slide

  9. Mercari
    Extensions

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  19. Phase 2: Cross Team Scrum
    Next 6 months, focus was on
    team
    collaboration

    View Slide

  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

    View Slide

  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.

    View Slide

  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

    View Slide

  23. Implementation of Cross Team Scrum
    (focused on team based issues)

    View Slide

  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

    View Slide

  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

    View Slide

  26. Development Tools
    PM Office

    View Slide

  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

    View Slide

  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.

    View Slide

  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

    View Slide

  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:

    View Slide

  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

    View Slide

  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

    View Slide

  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.

    View Slide

  34. Reporting Using (advance) Jira Tools

    View Slide