Upload
vu-hung-nguyen
View
9.960
Download
3
Embed Size (px)
Citation preview
A Case Study at Septeni Technology:
Being Agile in a Cross-Cultural Environment
XP Day 2015 @ Da Nang, Vietnam2015/04/18Nguyen Vu Hung, CTO, Septeni Technology
AGENDA
1. Introduction2. Highlighted Case Studies in Random Order
a. Toolsb. Processesc. Best practices
3. Q&A
2014/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - Nguyen Vu Hung
About Septeni (Technology)
➔ HQ Septeni Group: 1990/10➔ Sep Tech: 2013/03➔ 50 staffs➔ Web service developement
2014/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - Nguyen Vu Hung
Self Introduction
1. Nguyễn Vũ Hưng, 19782. CTO, Septeni Technology 3. POS:
a. Agileb. Open Sourcec. Project Managementd. Bridge SE (!)
"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/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - 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/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - Nguyen Vu Hung
Disclaimer (2)
I am too young to understand XP.And I am here to talk what I think when looking back to XP. And not about XP itself.
2014/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - Nguyen Vu Hung
What (NOT) to Cover?
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. XP and Scrum. We follow Agile principles but not only XP and 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/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - 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,
3. You are in a (offshore/outsourcing) development center in Vietnam.
2014/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - Nguyen Vu Hung
Which came first?
1. Agile,2. Scrum,3. XP?
2014/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - Nguyen Vu Hung
Which is Most Important?
1. People,2. Process (quy trình),3. Tools?
2014/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - Nguyen Vu Hung
People
2014/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - Nguyen Vu Hung
Tool
Process
JapaneseVietnamese
AgileScrumXP
JIRAWikiSkype
The Organizations
1. Septeni Groupa. Based in Tokyob. (Internet) Marketing
2. Two development centersa. Japan/Tokyo (~50 staffs)b. Vietnam/Hanoi (~50 staffs)
3. Operation centersa. (Mainly in) Japanb. U.S.c. EU, Korea, APAC
2014/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - Nguyen Vu Hung
Project::Communication GapO
pera
tor
Pro
duct
Ow
ner
Brid
ge S
E
Dev
elop
men
t Tea
m
Sys
adm
in
2014/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - Nguyen Vu Hung
Gaps in Definition of Done
1. Be proactive2. We define our DoD and defense it3. Clear DoD is a good thing4. Ambiguity for rooms of improvement5. Have an RACI table6. Done when reviewing is finished.
2014/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - Nguyen Vu Hung
Problems of Language Gap
1. 80% understandable2. English, Japanese and Vietnamese3. We are not English native speakers4. Speakings & Writing
a. Criticial cases: Native languagesb. English is OK
5. When to speak and when to write?6. TV Conferences7. Translators/Bridge SE
2014/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - Nguyen Vu Hung
The Importance of Business Analyst
1. We don’t BA officially2. Bridge SE, PM, PO have to act as BA3. Fill the business gaps between business and
technical
2014/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - Nguyen Vu Hung
Getting Things Done is not Enough
1. Japana. More process oriented than,b. Result oriented
2. Vietnama. Which one is more importance? Process or Result?
3. Scrum (as a process) is a (Agile) toolkit or the goal?
4. Balacing the two5. Short-term and long-term goals
2014/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - Nguyen Vu Hung
Seeking for a Standard
1. Does it exist: “Standard” Scrum?2. The Scrum way in Japan,3. The Scrum way that make Vietnamese
happy?4. Customized Septeni Scrum way.
2014/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - Nguyen Vu Hung
Meetings and Reports
1. Do we need 2 daily meetings?a. Morning meetings,b. Afternoon meetingsc. Why?
2. Issues/Progress tracking for all stakeholders3. Managers/PO in Japan and Vietnam can
track easier,4. Prepare for Overtime if needed
2014/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - Nguyen Vu Hung
Test Automation
1. Not directly improve quality2. Types of AT
a. Unit levelb. Function levelc. Integration Test (IT), UAT
3. Toolsa. Selenium/Web Driveb. Cucumberc. Shouldbee (?)
4. The goalsa. +80% coverage for unit testb. +50% coverage for IT, UAT (webapps), by number
of test cases2014/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - Nguyen Vu Hung
Test Automation (Developers)
1. PHP Unit2. Ruby: Rspec3. Scala: Scalatest4. The goals
a. +80% coverage for unit testb. +50% coverage for IT, UAT (webapps), by number
of test cases
2014/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - Nguyen Vu Hung
Test Automation (Manual Testers)
1. Selection criteriaa. No or little programming skills requiredb. Quick learn, low cost to start
2. What to applya. TDD, BDD
3. Shared goals among testers/developersa. +80% coverage for unit testb. +50% coverage for IT, UAT (webapps), by number
of test cases
2014/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - 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/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - Nguyen Vu Hung
Culture Comparation (2)
Note: Thanks Kakeya-san for the slide
2014/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - Nguyen Vu Hung
Culture Comparation (3)
Note: Thanks Kakeya-san for the slide2014/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - Nguyen Vu Hung
Culture Comparation (4)
Note: Thanks Kakeya-san for the slide
2014/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - Nguyen Vu Hung
(Task/Collective) 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/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - 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/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - Nguyen Vu Hung
Platform Team - The Next Target
1. DOsa. Build technical common foundation through our
companyb. Adopt it to application development with
communicating with application development team2. DONTs
a. Develop applications
2014/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - Nguyen Vu Hung
DDD: Domain-Driven Design
1. Ubiquitous language to fill the cutural gaps
2. Business and technical friendly3. New and still immature4. Why not try it?5. Full cycle: from requirements to operation
2014/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - Nguyen Vu Hung
Scala: New Development Stack
1. (Ubuntu)2. Scala 23. JDK/JRE 84. Play Framework
a. backend, application server5. IntelliJ IDEA6. Amazon AIM Linux (server)7. Frontend: AngularJS8. Amazon MySQL RDS9. Specs2
10. Vagrant, VirtualBox2014/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - Nguyen Vu Hung
Kanban
1. Big Backlog2. 4 lanes: Todo, Doing, Resolved,
Done3. “Release” with Jira Kanban4. One-week iteration5. Limit WIP (TBD)6. Mainly for operation and research
tasks
Planning Poker
1. 1, 2, 4 8... vs. 1, 2, 3, 5, 8…2. Qualitative Measure3. Planning poker cards4. 10 months from ideas to
implementation
Typical Vietnamese :)
1. Resistance to change2. Always start with a “NO” statement3. Don’t speak4. Don’t open
DRIVE THEM!
(Some) XP Rules We Follows
1. We follow most of XP Rules2. Test first (TDD)3. Automation Test4. Small Iteration5. Unit test
Topics in DetailA. Organizational:1. Organzation structure2. Technology overview3. KPIs (Key Performance
Indicator)4. Roles and Responsibilities5. Report Lines6. Bridge SE7. (TBD) Scaled Agile
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
G. Other1. Book we read2. What are the gaps?
2014/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - Nguyen Vu Hung
Organzation Structure
1. Infrastructure2. Human Resource/Back Office3. Developement
a. Project P. We will talk about this project
2014/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - Nguyen Vu Hung
Technology Overview
1. Infra: Amazon EC,2. Framework: CakePHP, 3. Database: MySQL RDS, 4. External interface: Facebook API
2014/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - 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/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - 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/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - Nguyen Vu Hung
Knowledge Management/Transfering
1. Confluence (wiki)2. Blog labs.septeni-technology.jp3. Training (external, internal)4. Pair programming5. Review processes
2014/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - 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/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - 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/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - Nguyen Vu Hung
Test Code
1. 1534 + 1115 tests / 116 KLOC
2. Using PHPUnit3. Integrated with Jenkins4. A part of test automation
2014/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - 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
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
PMD evaluation result
Duplicated code warning using DRY plugin
Notes: Image taken from jenkins-ci.org
2014/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - Nguyen Vu Hung
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/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - 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
Original git flowSepTech’s custimized process
Branching for hotfix Branching for multiple projects
2014/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - Nguyen Vu Hung
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/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - 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/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - 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/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - 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/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - 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/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - 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/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - 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/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - 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/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - 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/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - 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/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - 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”
Coverage tree map
Coverage report
Images taken from: jenkins-ci.org
2014/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - Nguyen Vu Hung
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
2014/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - Nguyen Vu Hung
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
Note: Images taken from atlassian.com
2014/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - Nguyen Vu Hung
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/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - 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/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - 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”
Note: Images taken from atlassian.com
2014/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - Nguyen Vu Hung
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
Picture take from http://www.kddi.com/business/cloud/cloud-app/chatwork/
2014/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - Nguyen Vu Hung
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/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - 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/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - Nguyen Vu Hung
Books We Read
Ngũ Luân Thư (五輪の書) Continuous Delivery
Management 3.0
Agile Product Management with Scrum
Programming in ScalaDomain-Driven Design:
Tackling Complexity in the Heart of Software
2014/04/18, XP Day Vietnam 2015 @Da Nang, Vietnam - Nguyen Vu Hung
A case study at Septeni Technology:
Being Agile in a Cross-Cultural Environment
XP Day 2015 @ Da Nang2015/04/18Nguyen Vu Hung, CTO, Septeni Technology
References
http://c2.com/cgi/wiki?ExtremeProgramminghttp://www.extremeprogramming.org/rules.htmlhttp://xpday.vn/https://www.facebook.com/groups/agilevietnam/