[Agile tour 2014- HN] Nguyen Vu Hung: Beyond Agile - Practices and Mindset - Agile Tour Vietnam...

Post on 08-Aug-2015

30 views 1 download

Tags:

Transcript of [Agile tour 2014- HN] Nguyen Vu Hung: Beyond Agile - Practices and Mindset - Agile Tour Vietnam...

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

vuhung16plus@gmail.com

+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