7. PantaRei Design
â
Everything Changes and Nothing Remains Still
â
Reinvent Enterprise with Open Source Software and Cloud Computing
â
Hong Kong based FOSS Service Provider
â Content Management System (CMS) with Drupal
â Cloud Hosting Solution with Amazon Web Services (AWS)
â Team Collaborate Solution with Atlassian
â
Business Partner with industry leaders
â 2012, AWS Consulting Partner
â 2013, Acquia Partner
â 2013, Atlassian Experts
â 2014, Rackspace Hosting Partner
â
http://pantarei-design.com
8.
9.
10.
11.
12.
13. Outline
â
What is Agile Development?
â
Why Agile Development?
â
How Agile Team Works Daily?
â
Advanced Topic(s)
14. What is Agile Development?
â
Agile
â
Scrum
â
Kanban
â
Scrum vs Kanban
15. Agile
â
A group of software development methods
â
Requirements and solutions evolve through
collaboration between self-organizing, cross-
functional teams
â
Promotes adaptive planning, evolutionary
development, early delivery, continuous
improvement, and encourages rapid and flexible
response to change
21. Scrum (cont.)
â
User stories
â Express customer need as a story
â Set user role
â Small amount of work
â Should include notes for needed
22.
23.
24. Scrum (cont.)
â
Task
â For developer
â Get engineer talking with product owner
â Get mutual understanding of the story
â Satift customer needs
25.
26. Scrum (cont.)
â
Burndown chart
â Public displayed chart showing remaing work in
the sprint backlog
â Simple view of the sprint progress
â Quick visualization for reference
27.
28.
29. Kanban
â
Just-in-time delivery
â
Only focused on work that's actively in
progress
â
Keep pluck the next work item off the top of
the backlog
â
Keep the most important work items on the
top of the backlog
30.
31.
32.
33.
34. Scrum vs Kanban
Scrum Kanban
Cadence Regular fixed length sprints
(ie, 2 weeks)
Continuous flow
Release methodology At the end of each sprint if
approved by the product
owner
Continuous delivery or at the
team's discretion
Roles Product owner, scrum
master, development team
No existing roles. Some
teams enlist the help of an
agile coach.
Key metrics Velocity Cycle time
Change philosophy Teams should strive to not
make changes to the sprint
forecast during the sprint.
Doing so compromises
learnings around estimation.
Change can happen at any
time
38. Agile vs Waterfall
Agile Waterfall
Planning scale Short Long
Distance with customer Short Very long
Time to discover problem Short Very long
Ability to respond quickly
to change request
Short N/A
39. How Agile Team Works Daily?
â
Documentation Management
â
Agile Project Management
â
Code Repository Management
â
Continuos Integration
40. Documentation Management
â
Product Owner provide the story and requirement
specification, in simple English
â
Project Manager need to covert such simple English
into manageable documentation for Developers
â
Tips: Manage your client! Donât let them manage you!
â
REMEMBER: YOUR CLIENT IS COMING FROM THE
HELL! THEY DONâT UNDERSTAND HOW
DEVELOPMENT WORKS!
41. Documentation Management
(cont.)
â
Split the requirement specification into âpoint formâ
â
Each point should be simple English that client can
understand, and able to describe the âDeliverableâ, e.g.
â Front Page Layout Design in HTML for Mobile Device
â Contact Form with Exportable Result in CSV/XLS
â Support Multilingual Content in ZH/GB/EN
â
DONâT MANAGE REQUIREMENT SPECIFICATION IN
TASK TICKETS! YOU WILL LOSS IT!
42. Documentation Management
(cont.)
â
Atlassian Confluence
â Create a page with âProduct Requirementsâ
template
â Manage âRequirement Specificationâ in point form,
with some detail information
â Link the point to JIRA, so create it as âStoryâ ticket
for Scrum
â
https://www.atlassian.com/software/confluence
43.
44.
45.
46.
47.
48. Agile Project Management
â
Project Manager should create Epic / Story / Task ticket for
Developers, and manage it with Scrum / Kanban
â
Developers being assigned for different duty
â When requirement specification is needed, go back to Document
Management for details
â When need to write code, go to Code Repository Management, create a
branch for this duty, get the job done, create a pull request to Project
Manager
â
Once pull request comes, Project Manager check the quality of
deliverable, accept it, merge to master branch, then set ticket as
done
49. Agile Project Management (cont.)
â
Atlassian JIRA
â Ticket created by Confluence as âStoryâ
â Story goes to Backlog
â Project Manager groups different Story from
Backlog to on going working Sprint
â Sprint start and Developer get the job done
â
https://www.atlassian.com/software/jira/
50.
51.
52.
53.
54. Code Repository Management
â
GIT! GIT! GIT!
â
Write test case for all new code!
â PM should NEVER accept new code without test case
â
Ticket > Branch > Commit > Push
â Push will trigger CI to run your test case
â PM should NEVER accept new code if test case failed
â
Pull Request > Peer Review > Merge
â
Once code merged, duty get done, back to Project
Management and set ticket as done, too
55. Code Repository Management
(cont.)
â
Atlassian BitBucket
â Create branch for ticket
â Clone source code, checkout your branch
â Write new code + test case
â Commit and push
â Create âPull Requestâ
â PM merge code once peer review committed
â
https://www.atlassian.com/software/bitbucket
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69. Continuos Integration
â
Developer write code with test case
â
Once code commit and push to Code
Repository, CI server will be triggered
â
CI clone the code, run the test, and report
test case run successful / fail
â
REMEMBER: IF YOUR TEST CASE LOGIC FAIL,
YOU WILL RESULT AS FALSE POSITIVE!
70. Continuos Integration (cont.)
â
Atlassian Bamboo
â Code commit to BitBucket, so Bamboo being
triggered
â Bamboo clone the code from BitBucket
â Run the defined test procedures
â Return the test result to JIRA/BitBucket
â
https://www.atlassian.com/software/bamboo
/
76. Branching Strategies
â
Centralized Workflow
â Like CVS/SVN, uses a central repository to serve as
the single point-of-entry for all changes to the
project
â Everyone commit all changes and push to âmasterâ
branch
â Need to resolve all conflict before each commit/push
â
https://www.atlassian.com/git/tutorials/compar
ing-workflows/centralized-workflow
77.
78. Branching Strategies (cont.)
â
Feature Branch Workflow
â All feature development should take place in a
dedicated branch instead of the âmasterâ branch
â Feature branches should have descriptive names,
like animated-menu-items or issue-#1061
â Can do peer review with pull request before merge
into âmasterâ branch
â
https://www.atlassian.com/git/tutorials/compar
ing-workflows/feature-branch-workflow
79.
80. Branching Strategies (cont.)
â
Gitflow Workflow
â Gitflow Workflow defines a strict branching model designed
around the project release
â
âmasterâ branch stores the official release history
â
âdevelopâ branch serves as an integration branch for features
â
feature branches use âdevelopâ as their parent branch
â
release branch off of âdevelopâ, prepare for merge into âmasterâ branch
â
âhotfixâ branches are used to quickly patch production releases
â
http://danielkummer.github.io/git-flow-cheatsheet/
â
https://www.atlassian.com/git/tutorials/comparing-workflow
s/gitflow-workflow
81.
82. Branching Strategies (cont.)
â
Forking Workflow
â Instead of using a single server-side repository to act as the âcentralâ
codebase, it gives every developer a server-side repository
â Each contributor has a private local and a public server-side Git
repositories
â Developers push to their own server-side repositories
â Only the project maintainer can push to the official repository
â This allows the maintainer to accept commits from any developer
without giving them write access to the official codebase
â
https://www.atlassian.com/git/tutorials/comparing-workflows/
forking-workflow
83.
84. Code Reviews
â
So, what exactly is a code review?
â When a developer is finished working on an issue, another
developer looks over the code and considers questions
â
Code reviews share knowledge
â
Code reviews make for better estimates
â
Code reviews enable time off
â
Code reviews mentor newer engineers
â
But code reviews take time!
85.
86.
87. Continuous Integration (CI)
â
Merging all develop working copies with a
share mainline several times a day
â
Protect quality in the code base
â Continuous builds
â Test automation (e.g. phpunit)
â
Branching and CI: a match made in Heaven!