BEYOND & INSIGHTS OF AGILE ADOPTION:
MINDSET & PRACTICES
Agile Tour 2014 @ Hanoi2014/11/09Nguyen Vu Hung, CTO, Septeni Technology
Agenda
1. Introduction2. The philosophies3. Case studies (you vote! in random orders)
a. Toolsb. Processesc. Best practices
4. Closing & Conclusion & Q&A
2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
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
2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
Self Introduction
1. Nguyễn Vũ Hưng, 19782. CTO, Septeni Technology 3. POS:
a. Agileb. Open Sourcec. Project Management
"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."
www.facebook.com/nguyenvuhung
+84-904-28-7878
2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
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
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
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
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
Japan-Originated Values
1. Scrum2. 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
The Mindset of Agile
1. Continous learning2. Focus on result/goal3. Rythm is important4. 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
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 RaymondThe Cathedral and the Bazaar
Martin Fowler The New Methodology
2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
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
Cultural Transition
Note: Thanks Kakeya-san for the slide
Most of the audiences agree that Vietnamese must/should and is more Amerian-like that Japanese.
2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
Culture Comparation (2)
Note: Thanks Kakeya-san for the slide
2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
Culture Comparation (3)
Note: Thanks Kakeya-san for the slide2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
Culture Comparation (4)
Note: Thanks Kakeya-san for the slide
2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
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
(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
Rhythms of Agile (Scrum)1. Asa-kai (朝会=morning meeting)
a. All company staffs join2. Product P
a. Daily meetingi. Morning: Task for Yesterday and
today, issuesii. Evening: Do we need to work
overtime today?b. Teirei meeting (JP/PO/VN)
3. Release weekly on Tuesday4. Bug statistics at the end of every
months5. 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
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. Developerb. Testerc. Sysadmin
5. Be cross-functional
2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
Let’s Vote for the Next Topics
2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
Topics in DetailA. Organizational:1. Organzation structure2. Technology overview3. KPIs (Key Performance
Indicator)4. Roles and Responsibilities5. Report Lines6. Bridge SE
B. Management:1. Knowledge
Management/Transfering
2. Result-Oriented Management
3. Planning4. Estimation5. Review Process
F. About the Project:1. Project P. Overview2. Agility in project P.
D. Important quality practices:1. TBD: Software Metrics to
Measure2. Quality = Measurement
C. Best practices:1. Jenkins - Continuous
Integration2. Integrated Test Automation3. Source Code Quality4. Code Coverage5. Unit Test - PHPUnit6. Test Code7. Test Driven Development8. Source Code Refactoring9. Source Code Quality
10. (git) branching modelE. Tools:1. Jira - Ticket Management2. JQL: Powerful Ticket Queries3. Collaboration with Confluence4. Stash - a git Repository5. Chatwork - Realtime Instant
Messenger6. Google Drive - Realtime
Collaboration Tool
2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
G. Other1. Book we read
WE ARE HIRING
2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
APPENDIX
2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
Organzation Structure
1. Infrastructure2. Human Resource/Back Office3. Developement
a. Project P. We will talk about this project
2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
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
Project P Overview
1. Japan sidea. 01 Product ownerb. 02 facilitators
2. Non-technicala. 01 Project managerb. 03 Project leadc. 01 Quality assurance leadd. 01 Bridge SE
3. Technicala. 10 developersb. 08 testersc. 120 KLOC
2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
Agility in Project P.
1. Customized scrum practices2. Big team to run scrum? (~30 persons)3. 01 PMs, 01 Bridege SE4. 3 teams
a. One project leader in each teamb. One scrum master in each time
5. A half is QA6. 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
Knowledge Management/Transfering
1. Confluence (wiki)2. Blog labs.septeni-technology.jp3. Training (external, internal)4. Pair programming5. Review processes
2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
Planning
1. Long-terma. 3-month after the FB API update
planb. (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-termsa. Per projects
3. Short-termsa. Weekly, per-sprintsb. Daily Product backlog for a quater
2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
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
Test Code
1. 1534 + 1115 tests / 116 KLOC
2. Using PHPUnit3. Integrated with Jenkins4. A part of test automation
2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
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
2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
Failed test cases
Stack trace for a failed test case
Test result trend: failed test cases over builds
Source Code Refactoring1. This is a technical debt we
are paying 2. The sooner the better3. What we (will) do?
a. Remove dead codeb. Optimizationc. 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
2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
PMD evaluation result
Duplicated code warning using DRY plugin
Notes: Image taken from jenkins-ci.org
Source Code Quality
1. Source code quality metricsa. Degree of code duplicationb. Degree of code complexityc. Number of warnings by code static analysis toolsd. Coding conventions (naming rules)
2. Toolsa. Jenkins’ plugins (such as pmd, dry…)b. Sonar’s pluginsc. <Your tools?>
Bonus: Cyclomatic Complexity (CC)
2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
(git) Branching Model1. 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
2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
Original git flowSepTech’s custimized process
Branching for hotfix Branching for multiple projects
TBD: Software Metrics to Measure
(Some) software metrics used for measuring source code quality:
Duplicated codeCoding standards
Unit testsComplex codePotential bugsCommentsDesign and architectureLines
Lines of codeComment linesClassesFunctionsStatementsPublic API
Cyclomatic Complexity
Note: We are planning to do it with Sonar
2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
Review Process
1. Basically,we review all output2. “Cusomters”/PO involves reviewing3. Review group
a. Source codeb. Release note
4. Design document reviewed bya. Cross-reviewb. Project leadc. Japan side
2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
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
Report Lines
1.
2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
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
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
Quality = Measurement
1. Common KPIs to measurea. Product KPIsb. Project KPIsc. Operation KPIsd. Customers’ satisfaction
2. Specific KPIs in our producta. Number of operation
bugs after releaseb. Number of alert emails
after release Number of system monthly alert
Number of system monthly bugs
2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
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: pmd2. Code duplication: dry3. Code coverage: clover4. Automation test WebDriver5. Unit test: PHPUnit
2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
Integrated Test Automation
1. (headless) browsersa. htmlunit, phamtomjs, b. Firefox (runs on a slave machine)
2. 97 test cases (simple and complicated)3. Integrated with Jenkins4. Run with cronjob5. Coding in Java is a little pain
2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
Source Code Quality
We (aim to) measure source code quality 1. Without human being involved2. Automatically generated by Jenkins’ plugins by
● Degree of code duplication● PMD (PHP mess detector)
2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
Code Coverage1. Source code static analysis2. 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 PHP6. TODO: Build triggers on
commits7. Run by cronjob
Code coverage report for module “Controler”
2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
Coverage tree map
Coverage report
Images taken from: jenkins-ci.org
Unit Test - PHPUnit
1. Training/seminar2. Integrated with Jenkins3. Number of test cases
a. Batch: 1115 casesb. Web: 1543 casesc. Failure rate: < 1%
4. TODO: Build triggers on commits5. Run by cronjob
Jira - Ticket Management1. Jira is the heart of our team
a. Ticket (task) managementb. Project management
2. Master tasks3. Gantt chart4. Text
a. Richtext formattingb. Tablec. Quotingd. Collaboration: Tagging
5. Watching: update notification by email
6. Dashboard7. JQL: JIRA query language8. Scrum board, Kanban,
Master ticket
Gantt chart
Dashboard
2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
Note: Images taken from atlassian.com
JQL: Powerful Ticket Queries
Issues in last 24 hoursproject = PPP and createdDate > -24h AND parent IN (pyx-669) ORDER BY createdDate ASC
Tasks to remind customersproject = 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 issuesproject = 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)
My tasks:project = PPP and assignee = currentUser() AND status not in (Closed, Reject)
2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
Collaboration with Confluence1. Collaboration wiki2. Tracking changes/history3. WYSIWYG richtext editor4. Integrated with JIRA5. Lots of plugins
a. Source code beatifulizerb. Tablec. Diagramd. Table of content
6. Process document7. Detail design8. Rules & guidelines
2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
Stash - a git Repository
1. Following git-flow branching model2. Commit (pull request)/source code
review3. Source code browsing4. Merging permission5. Fork, clone, download6. All in one place
a. Everyoneb. Everything
7. Integrated with JIRA, Confluence
Code Review in Action
Branching “network”
2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
Note: Images taken from atlassian.com
Chatwork - Realtime Instant Messenger
1. Realtime2. Tagging3. TODO/Scheduling/reminder4. Text/message quoting5. Cloud-based webapp6. TV conference (sucks on Linux)7. 20+ chat groups for project P8. RESTful API9. Suports mobile (iOS, Android) 1. Group chat
2. Mobile support
2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
Picture take from http://www.kddi.com/business/cloud/cloud-app/chatwork/
Google Drive - Realtime Collaboration
1. (One of) the best real-time collaboration tool2. Cloud based, only requires a browser3. Real-time editing my multiple people4. Review-and-resolve feature5. Tracking document changes/history6. Good for Q&A7. Sharing with permission8. We mostly use
a. Google Sheetsb. (and sometimes) Google Docs
2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
KPIs
1. KPI for an online servicea. Number of bugs reported by usersb. Numbers of zabbix alerts
2. KPI for (development) projectsa. Customer satisfaction surveyb. Number of bugs
i. On production serverii. 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
Books We Read
2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
Ngũ Luân Thư (五輪の書) Continuous Delivery
Management 3.0 Agile Product Management with Scrum
BEYOND AGILE:
PRACTICES and MINDSET
Agile Tour 2014 @ Hanoi2014/11/09Nguyen Vu Hung, CTO, Septeni Technology
Top Related