Slide 1

Slide 1 text

Development processes and Tools at Mercari Fall 2022 Dev Dojo @Ambuj

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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)

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

Mercari Extensions

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

● 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

Slide 21

Slide 21 text

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.

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

Development Tools PM Office

Slide 27

Slide 27 text

- 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

Slide 28

Slide 28 text

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.

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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:

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

- 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.

Slide 34

Slide 34 text

Reporting Using (advance) Jira Tools