Slide 1

Slide 1 text

Scrum Development beyond the sea "GO GLOBAL" meetup #4 (June 24, 2019) Shin Takamatsu (@shimpeiws) Software Engineer @ Chomp

Slide 2

Slide 2 text

HOW GOOD FRIENDS FOOD Hello • Shin Takamatsu (@shimpeiws) • Software Engineer ⚙⚙⚙ - Ruby / Rails, JavaScript / React and more! • Scrum Master - I got Certified ScrumMaster • Fun - Jogging 2

Slide 3

Slide 3 text

HOW GOOD FRIENDS FOOD Certified ScrumMaster • CSM class in San Francisco 3

Slide 4

Slide 4 text

HOW GOOD FRIENDS FOOD Agenda ' • ( Our Product & Team • ) Development Process • * Adapt Scrum to the team • + A day in the life of a chomp developer 4

Slide 5

Slide 5 text

HOW GOOD FRIENDS FOOD 1. Our Product & Team

Slide 6

Slide 6 text

HOW GOOD FRIENDS FOOD 6 https://chomp.app/

Slide 7

Slide 7 text

HOW GOOD FRIENDS FOOD Our Product & Team(1): Product • iOS App and tiny web version • Camera & Filters • Realtime Chat • Timeline & Maps • Released first version ( year ago • stage • 2 weeks interval 7

Slide 8

Slide 8 text

HOW GOOD FRIENDS FOOD Our Product & Team(2): Tech Stacks • Native App • React Native • Apollo • JavaScript + flow type • API • Ruby on Rails • Graph QL • Infrastructure • AWS - ECS - RDS(MySQL) - Cloud Formation with Ansible 8

Slide 9

Slide 9 text

HOW GOOD FRIENDS FOOD Our Product & Team(3): Location • 2 time zones • HQ in San Francisco • Branch in Tokyo • Also Distributed Team • SF / Tokyo / Hokkaido / Saitama etc… • A member worked while traveling 9 Tokyo JST (UTC +09:00) San Francisco PDT (UTC -07:00) PST (UTC -08:00)

Slide 10

Slide 10 text

HOW GOOD FRIENDS FOOD Our Product & Team(4): Team • Product • Product Owner(= CEO) * 1 • Designers * 2~ • Product & Marketing intern * 1 • Development Team • Client Engineers * 4 • Server-side Engineers * 3 10

Slide 11

Slide 11 text

HOW GOOD FRIENDS FOOD Our Product & Team • We are now introducing how we develop 11

Slide 12

Slide 12 text

HOW GOOD FRIENDS FOOD 2. Development Process & Tools

Slide 13

Slide 13 text

HOW GOOD FRIENDS FOOD Adapt Scrum to the team(1): Scrum in Remote Team • Scrum(Agile) in remote team is often mentioned as “Hard Things” 13 Principles behind the Agile Manifesto http://agilemanifesto.org/principles.html Hiring: 38 Scrum Master Interview Questions To Avoid Imposters https://dzone.com/articles/hiring-38-scrum-master-interview-questions-to-avoi

Slide 14

Slide 14 text

HOW GOOD FRIENDS FOOD Development Process(2): Scrum Development • Scrum Development • 2 weeks interval sprint - Development - CI & Beta Distribution - Artifacts - Product Backlog - Sprint Backlog (Kanban) - Scrum Events - Standup (Daily Scrum) - Pre Planning (Product Backlog Refinement) - Sprint Planning - Retrospective 14

Slide 15

Slide 15 text

HOW GOOD FRIENDS FOOD Development Process(3):Tools • Scrum & Communication • Slack (Chat) • Zoom (Video Conference) • Jira (Sprint Backlog and Kanban) • Air Table (Product Backlog) • Figma (Design) • Notion (Note) • Development • GitHub • Circle CI • Test Flight 15

Slide 16

Slide 16 text

HOW GOOD FRIENDS FOOD Development Process(4): CI & Beta Distribution • CI • Unit Testing & Lint • E2E testing • Scheduled Distribution • Distribute Beta app using Test Flight • PO will check Beta app everyday • We don’t have a formal Sprint Review 16

Slide 17

Slide 17 text

HOW GOOD FRIENDS FOOD Development Process(5): Sprint & Product Backlog • Spring Backlog • Jira - Active Sprint as Kanban To Do In Progress Code Review PO Review Done - Jira Pages are too slow • Product Backlog • Airtable 17

Slide 18

Slide 18 text

HOW GOOD FRIENDS FOOD Development Process(6): Standup • From 17:00 PDT(PST) every weekday • Zoom • With sharing Jira screen • Longer than 15 minutes (-30min) • We have extra events - What’s new? - PO shares new Ideas - etc… • Gather communication around standup - Overlap time is precious 18

Slide 19

Slide 19 text

HOW GOOD FRIENDS FOOD Development Process(7): Pre Planning • PO will share plans for next (or more future) sprint • Kind of Product Backlog Refinement (Grooming) in Scrum Events • After it Development Team will … • Divide into sub-tasks • Estimate tasks before Sprint Planning 19

Slide 20

Slide 20 text

HOW GOOD FRIENDS FOOD Development Process(8): Sprint Planning • Fix plans for the next Sprint • Use Zoom and JIRA’s Backlog feature - Checkup story points • Finally development team will commit and the New Sprint will start 20

Slide 21

Slide 21 text

HOW GOOD FRIENDS FOOD Development Process(9): Sprint Retrospective • Zoom & Pointing Poker • KPT style • I miss you “Post-it” • Sprint Retrospective is creative - There are no agenda - The situation is very fluid • “Post-it” is awesome - Very flexible - Grouping, Merge, Vote… - But we are remote team 21 Pointing Poker https://www.pointingpoker.com/

Slide 22

Slide 22 text

HOW GOOD FRIENDS FOOD Development Process • Scrum Process • Zoom and Jira is core tools • CI help us to inspect continuously • We could improve… • Sprint Planning - How we “Done” tasks is still a subject • Sprint Retrospective - I can’t find alternative of Post-it for remote team 22

Slide 23

Slide 23 text

HOW GOOD FRIENDS FOOD 3. Adapt Scrum to our team

Slide 24

Slide 24 text

HOW GOOD FRIENDS FOOD Adapt Scrum to our team(1): Adaption is needed • Do Scrum Events ≠ Successful Scrum Team • “Don’t Do Agile, Be Agile” is a famous slogan • We need to tune our process • Adaption is needed • Introduce very tiny but important practices in our team 24

Slide 25

Slide 25 text

HOW GOOD FRIENDS FOOD Adapt Scrum to our team(2): Common issues in Remote Team • Hard to discuss, especially about highly abstract things • Very quiet, sometimes member feel lonely and can’t feel He/She is in team • Code Review is heating up and hard to land • In short, Communication • Same problems occur even if local office and same timezone • But remote and difference of timezone accelerate these problems 25

Slide 26

Slide 26 text

HOW GOOD FRIENDS FOOD Adapt Scrum to our team(3): Asynchronous OR Synchronous communication • Asynchronous communication is encouraged in successful remote teams • Ex: The Remote Manifesto by GitLab • But chomp team synchronous communication 26 All Remote https://about.gitlab.com/company/culture/all-remote/#the-remote-manifesto

Slide 27

Slide 27 text

HOW GOOD FRIENDS FOOD Adapt Scrum to our team(4):Issues 1 • Engineers had a offsite in Jan 2019 • We started discussion with “Joy, Inc”as the starting point • “Their transparency especially about planning is awesome. But can we reference from them?” • Because many practices are optimized for local office and It looks hard to adapt it in remote team 27

Slide 28

Slide 28 text

HOW GOOD FRIENDS FOOD Adapt Scrum to our team(5): Answer 1 • Let’s call ☎ • Slack call or Zoom • Arrange call via Slack, in standup etc… • 8:00~11:00 JST became communication hot time • Around standup meeting • Synchronous communication are gathered in this time 28

Slide 29

Slide 29 text

HOW GOOD FRIENDS FOOD Adapt Scrum to our team(6): Issue 2 • ☎ help our smooth communication • Communication in1on1 or in small group increased • Everything goes well? NO! • “Are something important decided in call?“ • Same as Direct Message problem happened • Transparency / Openness decreased 29

Slide 30

Slide 30 text

HOW GOOD FRIENDS FOOD Adapt Scrum to our team(7): Answer 2 • Let’s write meeting notes • Writing meeting notes after a call is recommended • Write notes in notion and post link to Slack “#meetingnotes” • Slack “Post” feature or only short message in Slack is OK too 30

Slide 31

Slide 31 text

HOW GOOD FRIENDS FOOD Adapt Scrum to our team • chomp team synchronous communication • Call ☎ & Meeting Notes are key points of our communication • 1on1 or small team communication was increased by ☎ But our transparency / openness are decreased • Writing meeting notes is recommended after ☎. Meeting notes complement our transparency / openness • Mixture of Synchronous and Asynchronous communication is good • I’m not sure that these 2 practices will work in other teams or not. • We found these practice by ourselves and I proud it. Because it means we are a self- organized team. 31

Slide 32

Slide 32 text

HOW GOOD FRIENDS FOOD 4. A day in the life of a chomp developer

Slide 33

Slide 33 text

HOW GOOD FRIENDS FOOD A day in the life of a chomp developer(1): Beginning • PO reported “App crashed several times in my mobile” via Slack 33

Slide 34

Slide 34 text

HOW GOOD FRIENDS FOOD A day in the life of a chomp developer(2): Investigate • I collected logs and pasted it into Jira 34

Slide 35

Slide 35 text

HOW GOOD FRIENDS FOOD A day in the life of a chomp developer(3): Standup • Status was shared in standup 35 • Some types of queries looks slow and it might occur the problem. • Ahh, I know the case. Formerly I encountered it. • Nice, Let’s have a call ☎ after this standup. Backend Engineer Hokkaido - JST

Slide 36

Slide 36 text

HOW GOOD FRIENDS FOOD A day in the life of a chomp developer(4): Call • Online Debugging ☎ ☎ ☎ 36 • This query is tested in here, Let’s output detail logs and look into it. • Some parameters look not work and filter of it not work sane Share logs via Slack • It must be so! Backend Engineer Hokkaido - JST

Slide 37

Slide 37 text

HOW GOOD FRIENDS FOOD A day in the life of a chomp developer(5): Meeting Notes • I wrote a meeting note on notion after the call and post URL of it to Slack 37 • I think what Shin suggested is right • On the client side, I checked this query and it's taking 6-8 secs Client Engineer SF - PDT

Slide 38

Slide 38 text

HOW GOOD FRIENDS FOOD • Implementation ⚒ -> Code Review -> Ship It A day in the life of a chomp developer(6): Implement ~ Release 38

Slide 39

Slide 39 text

HOW GOOD FRIENDS FOOD • This case is a good example of showing our process and practices • Mixture of Synchronous and Asynchronous communication - Synchronous = Standup, Call ☎ - Asynchronous = JIRA, Notion • Synchronous communication accelerates our development speed ⏫ ⏫ ⏫ • Asynchronous communication let us collaborate beyond our timezone A day in the life of a chomp developer 39

Slide 40

Slide 40 text

HOW GOOD FRIENDS FOOD Wrap-up

Slide 41

Slide 41 text

HOW GOOD FRIENDS FOOD Wrap-up • Scrum in remote and distributed team is hard but it is not impossible • Using many tools (Zoom and Jira are important for us) • We have some practices for adapt scrum to our team • Call ☎ & Meeting Notes • Of course, not everything go well in our team • Current hot theme is How we can have a shared understanding about “Done” • We can surely find the good practice for it, because we are a self-organized team 41

Slide 42

Slide 42 text

Thank You