Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

A glance at a scrum team in real software company

2,614 views

Published on

Published in: Technology
  • Be the first to comment

A glance at a scrum team in real software company

  1. 1. A glance at a scrum team in real software company 杜秉穎 dbi1463@gmail.com Senior Software Engineer Mobile Cloud Innovation Division, GASH PLUS
  2. 2. About me • Before the doom, I received the Ph.D. degree – 2000 – 2004, Dept. of Electronic Engineering – 2006, received M.S. degree in CSIE from NTUT – 2012, received Ph.D. degree in CSIE from NTUT • Now, I am a Senior Software Engineer – Mobile Cloud Innovation Division, GASH PLUS 2
  3. 3. The experiences • I often update my profile on Link-in – A distributed wireless communication protocol (WiMAX) simulator and emulator (Project Manager, Aug 2006 – July 2009) – An embedded DVB-H transport stream decoder (Scrum Master, Aug 2009 – July 2011) – A configurable conference management system & A distributed load testing framework (Consultant and test planner, Aug 2011 – July 2012) – An Android game framework for teaching OOP Lab (Major refactoring for release, Jan 2012 – Apr 2012) – Senior Program Analyst, GSS (A two-tier web-based software, Oct 2012 – May 2013) 3
  4. 4. Do you believe? 4 Really? Do you believe that many waterfall teams declare they are agile?
  5. 5. 5
  6. 6. The office & team member overview 6
  7. 7. Sprint timetable • 2 weeks / sprint – Daily scrum held on 11:45 – 12:00 • For better user’s experience – Polish & tuning (debugging) 7 Mon Tue Wed Thu Fri Planning Refinement Planning Refinement Mon The Wed Thu Fri Tuning Review Polish Tuning Retrospective Week 1 Week 2
  8. 8. Refinement meeting • Concept slide, prototype, or documents – Understand what the PO or placeholders want – Feasibility study – Break down the concept to user stories – Define DoD – Estimate the story points 8
  9. 9. Sprint planning meeting • From the product backlog – Points = velocity * % of real working days • About 100 points per sprint – Pick stories from high priority to low priority • Also pick some bugs labeled as fix ASAP – Break down to tasks • Estimate the time in hours for each tasks • Move some stories back to backlog if the total time in hours > real working days * # of persons * 5 – QE involved • DoD -> pass the acceptance tests 9
  10. 10. Task board 10
  11. 11. Burn down chart 11
  12. 12. Daily scrum live show 12
  13. 13. Development • Fully cooperated with each other • Pass all test cases before commit – If the commit failed, a warning alerted – If the commit fixed the failure, a victory sound played • Pair programming – Introduce the program design to the freshmen – One writes tests and one write program to pass the tests 13
  14. 14. Polish & tuning • Every commit -> installable app – Configured with the internal test server – PO can install the latest version anytime • Trigger the build job on the Jenkins – Configured with the real AWS server • All team member install and use the app on the real devices for any use cases – Report bugs or enhancements • Fix bugs and refine the app as soon as possible 14
  15. 15. Sprint review meeting • Trigger the build job on the Jenkins, again – Team member install the app and demonstrate the planned stories one-by-one – PO accept the story -> move the story to done – PO accept the story, but finds some issues not listed in DoD -> move the story to done, and add bugs or enhancements – PO reject the story -> move the story from the ready to verify back to in progress 15
  16. 16. Sprint retrospective meeting • Hold in the meeting room outside the office – No computer – A sheet of paper to write down good things, bad things, and special thanks in the sprint • 10 minutes – Everyone has to talk what he/she wrote down – Scrum master summarize the issues – All team member discuss the methods or solutions to solve the issues • Arrange another meeting for complicated issues 16
  17. 17. The fire support • To deliver an installable iOS app and deployable server every commit and sprint – Continuous integration • Jenkins and Subversion – Unit tests, iOS client as an example • 27k LOC • 2k+ test cases and line coverage near 70% – Acceptance tests • Robot framework – Duplicated code detection • From over 200 duplicates to 0 17
  18. 18. Coverage report 18
  19. 19. Duplicated code trend 19
  20. 20. Build pipeline 20 Unit test Release Each commit Each polish or the end of sprint Client Server Run Acceptance Test Each day Trail Version Deploy Server to AWS Publish Version?
  21. 21. Documentation • Working software over comprehensive documentation – Design decision and result • UML diagrams if necessary • Take a picture from the whiteboard – API (hackpad.com) 21
  22. 22. Hiring interview • The applicant is interviewed by all roles of the team – Programmer, QE, Product manager, Artist, and Scrum master – Experiences • When I involved in A project, the team met a serious B problem, and I used C method or design to solve the problem. • If more than 2 roles don’t like to cooperate with the applicant, the application is rejected – http://goo.gl/soRPnQ 22
  23. 23. Requirement (1/2) • Unit testing is the minimum requirement 23 在 打 倒 臭 蟲 , 寫 出 值 得 上 架 的 產 品 之 前 … 絕 對 不 會 再 偷 懶 不 寫 單 元 測 試 了 !
  24. 24. Requirement (2/2) • Good attitude to learn new technologies – Utilize the technologies, not used by them – Active • OOAD concept – Design patterns • Cooperation – Communication skills 24 你 一 定 會 遇 到 願 意 寫 好 程 式 的 夥 伴
  25. 25. Summary • We are a scrum team – Principled and creative – Like to improve our product, process, and team quality – Welcome good engineers to join us 25

×