Nguyen Vu Hung: Beyond Agile - Practices and Mindset - Agile Tour Vietnam (Hanoi 2014)

45,997 views

Published on

"Beyond Agile: practices and mindset"

At Septeni Technology, we've been trying to apply Agile practices and and its principles for over two years for IT projects as well as web-based services since the beginning of the company. In this session, as a case study, with the purpose of sharing our knowledge, I would like to share our best practices for applying Agile, the tools we are using, the mindset we must have for applying Agile successfully.


About Hung Nguyen

Nguyen Vu Hung is the CTO of Septeni Technology, a development center of Tokyo based Septeni Group that focuses on developing and operating, mostly, web-based online advertisement systems. He has numerous years of IT and software development, project/product management in both Japan and Vietnam. Considering himself as a FOSS and Agile evangelist and being a Agile lover and an CTO, he is also interested in not-so-related domains such as human resource management and (organization) (re)structuring.

References:
https://www.facebook.com/nguyenvuhung
http://www.agiletourvietnam.org/
https://www.facebook.com/groups/agilevietnam/

Published in: Technology

Nguyen Vu Hung: Beyond Agile - Practices and Mindset - Agile Tour Vietnam (Hanoi 2014)

  1. 1. BEYOND & INSIGHTS OF AGILE ADOPTION: MINDSET & PRACTICES Agile Tour 2014 @ Hanoi 2014/11/09 Nguyen Vu Hung, CTO, Septeni Technology
  2. 2. Agenda 1. Introduction 2. The philosophies 3. Case studies (you vote! in random orders) a. Tools b. Processes c. Best practices 4. Closing & Conclusion & Q&A 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  3. 3. About Septeni (Technology) ➔ HQ Septeni Group : 1990/10 ➔ Sep Tech: 2013/03 ➔ 50 staffs ➔ Web service developement 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  4. 4. 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  5. 5. Self Introduction 1. Nguyễn Vũ Hưng, 1978 2. CTO, Septeni Technology 3. POS: a. Agile b. Open Source c. Project Management www.facebook.com/nguyenvuhung vuhung16plus@gmail.com +84-904-28-7878 "Nguyen Vu Hung is the CTO of Septeni Technology, a development center of Tokyo based Septeni Group that focuses on developing and operating, mostly, web-based online advertisement systems. He has numerous years of IT and software development, project/product management in both Japan and Vietnam. Considering himself as a FOSS and Agile evangelist and being a Agile lover and an CTO, he is also interested in not-so-related domains such as human resource management and (organization) (re)structuring." 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  6. 6. Disclaimer What is talked and discussed here is my personal opinion and is NOT the opinion of my employer(s), associations and/or groups I join. 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  7. 7. What (NOT) to Covered? 1. In this session, we share our experiences, tools, practices, 2. We don’t cover basic information, defintion such as “what is Agile?”, “Is this really Agile or scrum-butt?” here, 3. Scrum. We follow Agile principles but not only scrum practices. “At Septeni Technology, we've been trying to apply Agile practices and and its principles for over two years for IT projects as well as web-based services since the beginning of the company. In this session, as a case study, with the purpose of sharing our knowledge, I would like to share our best practices for applying Agile, the tools we are using, the mindset we must have for applying Agile successfully.” 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  8. 8. Who Should Join This Session 1. Basically, everyone can enjoy this session, 2. However, a little experience with software development, Agile/Scrum practices will make you feel more comfortable with this session. 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  9. 9. High Level Vision & Mission Yes, A must-have thing on top of everything, we/you should/do have visions, missions and strategies for short-term, mid-term and long-term. Note: Ask you managers/boss to define one -;) because any company needs one 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  10. 10. Japan-Originated Values 1. Scrum 2. Genba (nơi làm việc) 3. “Ba” (場, nơi, tình huống) 4. Kanban (看板, bảng viết) 5. Kaizen (改善, cải tiến) 6. Kata (型, meaning: dạng thức, trình tự) 7. 3M: Muda, Muri, Mura (無駄, 無理, ムラ) 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  11. 11. The Mindset of Agile 1. Continous learning 2. Focus on result/goal 3. Rythm is important 4. Release often (one-week sprint) 5. Stability and quality Empiricism Note:Thanks Dương Trọng Tấn for the ideas. 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  12. 12. FOSS and Agile - A Great Combo 1. 100% FOSS frameworks adopted in SepTech, 2. With FOSS: a. No vendor lock-in; b. We are only limited by imagination, 3. “Open source improves agile practices and principles”, 4. Encourage the interactions over processes (Agile) and tools (FOSS), 5. FOSS shares principles with Agile manifesto. Eric Steven Raymond The Cathedral and the Bazaar Martin Fowler The New Methodology 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  13. 13. Ngũ Luân Thư (五輪の書) 1. “Cuốn binh pháp kinh điển của người Nhật” 2. Tinh thần chiến binh ở tử địa 3. "Go Rin No Sho mới là sách cho bậc vương" 4. Triết lý chống lưng cho cả một dân tộc Notes: This slide is in Vietnamese; Images taken from wikipedia. 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  14. 14. Cultural Transition Most of the audiences agree that Vietnamese must/should and is more Amerian-like that Japanese. Note: Thanks Kakeya-san for the slide 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  15. 15. Culture Comparation (2) Note: Thanks Kakeya-san for the slide 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  16. 16. Culture Comparation (3) 2014/11/09, Agile TNooutre 2: 0T1h4a n@ks H Kaankoeiy -a N-sgauny efonr Vthue Hsulidneg
  17. 17. Culture Comparation (4) Note: Thanks Kakeya-san for the slide 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  18. 18. TBD: Scaled Agility 1. Scaled Agile Framework ("SAFe") by Dean Leffingwell, 2. Disciplined Agile Development (DAD), by Scott Ambler, 3. Large Scale Scrum (LeSS), by Craig Larman and Bas Vodde. Being agile at team-level is not enough. We should be agile at organizational level. 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  19. 19. (Task) Ownerships 1. Main responsiblity for each process is defined in RACI table 2. Each task/process has ONE person to take ownership on it 3. Team members help each other, but main ownership belongs to only ONE 4. “Trách nhiệm liên đới"/連帯責任 5. "Cha chung không ai khóc"/" bóng ở giữa sân" Project organizational chart 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  20. 20. Rhythms of Agile (Scrum) 1. Asa-kai (朝会=morning meeting) a. All company staffs join 2. Product P a. Daily meeting i. Morning: Task for Yesterday and today, issues ii. Evening: Do we need to work overtime today? b. Teirei meeting (JP/PO/VN) 3. Release weekly on Tuesday 4. Bug statistics at the end of every months 5. zabbix alert statistics at the end of every weeks Regular meeting calendar of a month. Type of reports Type of meetings 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  21. 21. DevOps - The Next Target 1. Japan does business/requirement 2. All engineering thingies done by Vietnamese engineers 3. DEVelopment & OPerationS group becom ONE 4. Involving a. Developer b. Tester c. Sysadmin 5. Be cross-functional 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  22. 22. Let’s Vote for the Next Topics 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  23. 23. Topics in Detail A. Organizational: 1. Organzation structure 2. Technology overview 3. KPIs (Key Performance Indicator) 4. Roles and Responsibilities 5. Report Lines 6. Bridge SE B. Management: 1. Knowledge Management/Transferin g 2. Result-Oriented Management 3. Planning 4. Estimation 5. Review Process F. About the Project: 1. Project P. Overview 2. Agility in project P. D. Important quality practices: 1. TBD: Software Metrics to Measure 2. Quality = Measurement C. Best practices: 1. Jenkins - Continuous Integration 2. Integrated Test Automation 3. Source Code Quality 4. Code Coverage 5. Unit Test - PHPUnit 6. Test Code 7. Test Driven Development 8. Source Code Refactoring 9. Source Code Quality 10. (git) branching model E. Tools: 1. Jira - Ticket Management 2. JQL: Powerful Ticket Queries 3. Collaboration with Confluence 4. Stash - a git Repository 5. Chatwork - Realtime Instant Messenger 6. Google Drive - Realtime Collaboration Tool G. Other 1. Book we read 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  24. 24. WE ARE HIRING 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  25. 25. 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  26. 26. APPENDIX 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  27. 27. Organzation Structure 1. Infrastructure 2. Human Resource/Back Office 3. Developement a. Project P. We will talk about this project 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  28. 28. Technology Overview 1. Infra: Amazon EC, 2. Framework: CakePHP, 3. Database: MySQL RDS, 4. External interface: Facebook API 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  29. 29. Project P Overview 1. Japan side a. 01 Product owner b. 02 facilitators 2. Non-technical a. 01 Project manager b. 03 Project lead c. 01 Quality assurance lead d. 01 Bridge SE 3. Technical a. 10 developers b. 08 testers c. 120 KLOC 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  30. 30. Agility in Project P. 1. Customized scrum practices 2. Big team to run scrum? (~30 persons) 3. 01 PMs, 01 Bridege SE 4. 3 teams a. One project leader in each team b. One scrum master in each time 5. A half is QA 6. A half is developers Note: We are going to make this structure more flat and cross-functional 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  31. 31. Knowledge Management/Transfering 1. Confluence (wiki) 2. Blog labs.septeni-technology.jp 3. Training (external, internal) 4. Pair programming 5. Review processes 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  32. 32. Planning 1. Long-term a. 3-month after the FB API update plan b. (For development) We don’t plan longer than 3 months (the market changes too fast) c. New requirements are queued on the backlog 2. Mid-terms a. Per projects 3. Short-terms a. Weekly, per-sprints b. Daily Product backlog for a quater 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  33. 33. Estimation 1. We have not yet using planning poker 2. Consensus-based estimation 3. Quite buffered by individuals 4. Must follow FB’s deadlines Topic: What is the accuracy of the estimation Estimation by team member, at man-day level, using GDrive Estimation, Gantt chart wth Jira 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  34. 34. Test Code 1. 1534 + 1115 tests / 116 KLOC 2. Using PHPUnit 3. Integrated with Jenkins 4. A part of test automation 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  35. 35. Test Driven Development 1. This is a technical debt we are paying 2. We applied it late, not in the first place 3. We keep updating test cases/test code during development 4. Code coverage is an KPI we measure how good is TDD/test code Failed test cases Stack trace for a failed test case Test result trend: failed test cases over builds 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  36. 36. Source Code Refactoring 1. This is a technical debt we are paying 2. The sooner the better 3. What we (will) do? a. Remove dead code b. Optimization c. Simplify the source code (logic, function) d. Keep all test cases “green” (don’t break TC) 4. Jenkins’ pmd code size rules are the KPI for refactoring PMD evaluation result Duplicated code warning using DRY plugin Notes: Image taken from jenkins-ci.org 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  37. 37. Source Code Quality 1. Source code quality metrics a. Degree of code duplication b. Degree of code complexity c. Number of warnings by code static analysis tools d. Coding conventions (naming rules) 2. Tools a. Jenkins’ plugins (such as pmd, dry…) b. Sonar’s plugins c. <Your tools?> Bonus: Cyclomatic Complexity (CC) 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  38. 38. (git) Branching Model 1. Based on Vincent Driessen’s git branching model, 2. Defined use of earch branches, 3. Mapping betweens (servers’) environments and branches, 4. Defined input/output, definition of done, RACI on each phases, processes, 5. Sample flow for hotfix and single/multiple projects developments SepTech’s custimized process Original git flow Branching for hotfix Branching for multiple projects 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  39. 39. TBD: Software Metrics to Measure (Some) software metrics used for measuring source code quality: Duplicated code Coding standards Unit tests Complex code Potential bugs Comments Design and architecture Lines Lines of code Comment lines Classes Functions Statements Public API Cyclomatic Complexity Note: We are planning to do it with Sonar 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  40. 40. Review Process 1. Basically,we review all output 2. “Cusomters”/PO involves reviewing 3. Review group a. Source code b. Release note 4. Design document reviewed by a. Cross-review b. Project lead c. Japan side 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  41. 41. Roles and Responsibilities 1. As clear as possible. 2. But not so clear to encourage cross-functionality. 3. RaR (RACI) based on output. 4. RaR (RACI) based on steps in software/system development process. RACI matrix for all roles in projects 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  42. 42. Report Lines 1. 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  43. 43. Bridge SE 1. Fill the communication/language gap between Vietnam and Japan, 2. A must-have position when working with Japanese, 3. Communication skill is important, 4. We require BrSE to be good at Vietnamese, Japanese and English. 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  44. 44. Result-Oriented Management 1. Đánh giá bằng kết quả? 2. Hay đánh giá bằng quá trình? 3. Hay đánh giá bằng mục tiêu? 4. Với phần mềm, có thể đánh giá bằng KPI cứng không? Note: This slide is in Vietnamese 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  45. 45. Quality = Measurement 1. Common KPIs to measure a. Product KPIs b. Project KPIs c. Operation KPIs d. Customers’ satisfaction 2. Specific KPIs in our product a. Number of operation bugs after release b. Number of alert emails Number of system monthly bugs after release Number of system monthly alert 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  46. 46. Jenkins - Continuous Integration We are learning about Jenkins, a powerful CI tool. Here is the list of major plugins in we are using 1. PHP messy detector: pmd 2. Code duplication: dry 3. Code coverage: clover 4. Automation test WebDriver 5. Unit test: PHPUnit 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  47. 47. Integrated Test Automation 1. (headless) browsers a. htmlunit, phamtomjs, b. Firefox (runs on a slave machine) 2. 97 test cases (simple and complicated) 3. Integrated with Jenkins 4. Run with cronjob 5. Coding in Java is a little pain 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  48. 48. Source Code Quality We (aim to) measure source code quality 1. Without human being involved 2. Automatically generated by Jenkins’ plugins by ● Degree of code duplication ● PMD (PHP mess detector) 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  49. 49. Code Coverage 1. Source code static analysis 2. Visualized trending 3. Code coverage a. Targeted: i. Minimum: 80%, ii. Better 90% b. Actual: 80% and 61% (for C0 - statement coverage) 4. PHP_CodeCoverage, integrated with Jenkins 5. Clover PHP 6. TODO: Build triggers on commits 7. Run by cronjob Coverage tree map Coverage report Images taken from: jenkins-ci.org 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  50. 50. Unit Test - PHPUnit 1. Training/seminar 2. Integrated with Jenkins 3. Number of test cases a. Batch: 1115 cases b. Web: 1543 cases c. Failure rate: < 1% 4. TODO: Build triggers on commits 5. Run by cronjob
  51. 51. Jira - Ticket Management 1. Jira is the heart of our team a. Ticket (task) management b. Project management 2. Master tasks 3. Gantt chart 4. Text a. Richtext formatting b. Table c. Quoting d. Collaboration: Tagging 5. Watching: update notification by email 6. Dashboard 7. JQL: JIRA query language 8. Scrum board, Kanban, Master ticket Gantt chart Dashboard Note: Images taken from atlassian.com 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  52. 52. JQL: Powerful Ticket Queries My tasks: project = PPP and assignee = currentUser() AND status not in (Closed, Reject) Issues in last 24 hours project = PPP and createdDate > -24h AND parent IN (pyx-669) ORDER BY createdDate ASC Tasks to remind customers project = PPP and createdDate <= -2w AND parent IN (ppp-142,ppp-669, ppp-124) AND status not in (closed, reject) AND assignee in(po1, custumer1, customer2) ORDER BY createdDate ASC Remind us important issues project = PPP and createdDate <= -2w AND parent IN (ppp-142,ppp-669, ppp-124) AND status not in (closed, reject) AND assignee in(po1, custumer1, customer2) and priority in (critical, blocker) 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  53. 53. Collaboration with Confluence 1. Collaboration wiki 2. Tracking changes/history 3. WYSIWYG richtext editor 4. Integrated with JIRA 5. Lots of plugins a. Source code beatifulizer b. Table c. Diagram d. Table of content 6. Process document 7. Detail design 8. Rules & guidelines 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  54. 54. Stash - a git Repository 1. Following git-flow branching model 2. Commit (pull request)/source code review 3. Source code browsing 4. Merging permission 5. Fork, clone, download 6. All in one place a. Everyone b. Everything 7. Integrated with JIRA, Confluence Code Review in Action Branching “network” Note: Images taken from atlassian.com 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  55. 55. Chatwork - Realtime Instant Messenger 1. Realtime 2. Tagging 3. TODO/Scheduling/reminder 4. Text/message quoting 5. Cloud-based webapp 6. TV conference (sucks on Linux) 7. 20+ chat groups for project P 8. RESTful API 9. Suports mobile (iOS, Android) 1. Group chat 2. Mobile support Picture take from http://www.kddi.com/business/cloud/cloud-app/chatwork/ 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  56. 56. Google Drive - Realtime Collaboration 1. (One of) the best real-time collaboration tool 2. Cloud based, only requires a browser 3. Real-time editing my multiple people 4. Review-and-resolve feature 5. Tracking document changes/history 6. Good for Q&A 7. Sharing with permission 8. We mostly use a. Google Sheets b. (and sometimes) Google Docs 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  57. 57. KPIs 1. KPI for an online service a. Number of bugs reported by users b. Numbers of zabbix alerts 2. KPI for (development) projects a. Customer satisfaction survey b. Number of bugs i. On production server ii. Operation/Integration test phase c. Deadline Zabbix: An open-source (network/OS/service) monitoring system 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  58. 58. Books We Read Ngũ Luân Thư (五輪の書) Continuous Delivery Management 3.0 Agile Product Management with Scrum 2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
  59. 59. BEYOND AGILE: PRACTICES and MINDSET Agile Tour 2014 @ Hanoi 2014/11/09 Nguyen Vu Hung, CTO, Septeni Technology

×