Nguyen Vu Hung, CTO of Septeni Technology, gave a presentation on Agile adoption at Septeni. He discussed Septeni's Agile practices and tools over the past two years for IT projects. The presentation covered Agile mindsets and principles, organizational structures that support Agility, tools used like Jira and Confluence, and best practices around testing, code quality and DevOps. Case studies of specific projects and processes at Septeni were also presented.
Nguyen Vu Hung: Beyond Agile - Practices and Mindset - Agile Tour Vietnam (Hanoi 2014)
1. BEYOND & INSIGHTS OF
AGILE ADOPTION:
MINDSET & PRACTICES
Agile Tour 2014 @ Hanoi
2014/11/09
Nguyen Vu Hung, CTO, Septeni Technology
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. 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
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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Culture Comparation (2)
Note: Thanks Kakeya-san for the slide
2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
16. Culture Comparation (3)
2014/11/09, Agile TNooutre 2: 0T1h4a n@ks H Kaankoeiy -a N-sgauny efonr Vthue Hsulidneg
17. Culture Comparation (4)
Note: Thanks Kakeya-san for the slide
2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
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. (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. 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. 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. Let’s Vote for the Next Topics
2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
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. WE ARE HIRING
2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. (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. 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. 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. 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. Report Lines
1.
2014/11/09, Agile Tour 2014 @ Hanoi - Nguyen Vu Hung
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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. BEYOND AGILE:
PRACTICES and MINDSET
Agile Tour 2014 @ Hanoi
2014/11/09
Nguyen Vu Hung, CTO, Septeni Technology