SlideShare a Scribd company logo
CUHK CSCI 4140 2016 Spring
Guest Lecture
Life of an Agile Team
PantaRei Design Limited
Wong Hoi Sing, Edison
2016 March 14th
Wong Hoi Sing, Edison
●
CEO, Founder, PantaRei Design
– 2009, PantaRei Design founded
– 2010, HKFYG YBHK applicant
– 2011, ITF SERAP applicant
– 2011, HKSTP Incu-Tech applicant
●
FOSS and Drupal Developer, Contributor and HKDUG Co-founder
– 2000, Debian GNU/Linux 2.2 ('potato')
– 2005, Drupal Developer
– 2008, BarCamp HK Speaker
– 2008, HKDUG Co-founder
– 2011, Drupal 7.x Core Contributor
●
http://hswong3i.net
●
hswong3i@pantarei-design.com
[20160314][CUHK][CSCI4140]Life of an Agile Team]
[20160314][CUHK][CSCI4140]Life of an Agile Team]
[20160314][CUHK][CSCI4140]Life of an Agile Team]
[20160314][CUHK][CSCI4140]Life of an Agile Team]
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
[20160314][CUHK][CSCI4140]Life of an Agile Team]
[20160314][CUHK][CSCI4140]Life of an Agile Team]
[20160314][CUHK][CSCI4140]Life of an Agile Team]
[20160314][CUHK][CSCI4140]Life of an Agile Team]
[20160314][CUHK][CSCI4140]Life of an Agile Team]
Outline
●
What is Agile Development?
●
Why Agile Development?
●
How Agile Team Works Daily?
●
Advanced Topic(s)
What is Agile Development?
●
Agile
●
Scrum
●
Kanban
●
Scrum vs Kanban
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
[20160314][CUHK][CSCI4140]Life of an Agile Team]
Scrum
●
Iterative and incremental
●
Fixed-length iterations (e.g. 2~4 weeks)
●
4 Ceremonies
– Sprint planning
– Daily stand-up
– Sprint demo
– Sprint retrospective
[20160314][CUHK][CSCI4140]Life of an Agile Team]
[20160314][CUHK][CSCI4140]Life of an Agile Team]
Scrum (cont.)
●
Roles
– Product Owner
– Development Team
– Scrum Master
Scrum (cont.)
●
User stories
– Express customer need as a story
– Set user role
– Small amount of work
– Should include notes for needed
[20160314][CUHK][CSCI4140]Life of an Agile Team]
[20160314][CUHK][CSCI4140]Life of an Agile Team]
Scrum (cont.)
●
Task
– For developer
– Get engineer talking with product owner
– Get mutual understanding of the story
– Satift customer needs
[20160314][CUHK][CSCI4140]Life of an Agile Team]
Scrum (cont.)
●
Burndown chart
– Public displayed chart showing remaing work in
the sprint backlog
– Simple view of the sprint progress
– Quick visualization for reference
[20160314][CUHK][CSCI4140]Life of an Agile Team]
[20160314][CUHK][CSCI4140]Life of an Agile Team]
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
[20160314][CUHK][CSCI4140]Life of an Agile Team]
[20160314][CUHK][CSCI4140]Life of an Agile Team]
[20160314][CUHK][CSCI4140]Life of an Agile Team]
[20160314][CUHK][CSCI4140]Life of an Agile Team]
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
Why Agile Development?
●
Waterfall
●
Agile vs Waterfall
Waterfall
●
Usually sucks
●
Planning far in advance
●
Lack of visibility into rate of progress
●
Project fall behind schedule (easily)
[20160314][CUHK][CSCI4140]Life of an Agile Team]
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
How Agile Team Works Daily?
●
Documentation Management
●
Agile Project Management
●
Code Repository Management
●
Continuos Integration
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!
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!
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
[20160314][CUHK][CSCI4140]Life of an Agile Team]
[20160314][CUHK][CSCI4140]Life of an Agile Team]
[20160314][CUHK][CSCI4140]Life of an Agile Team]
[20160314][CUHK][CSCI4140]Life of an Agile Team]
[20160314][CUHK][CSCI4140]Life of an Agile Team]
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
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/
[20160314][CUHK][CSCI4140]Life of an Agile Team]
[20160314][CUHK][CSCI4140]Life of an Agile Team]
[20160314][CUHK][CSCI4140]Life of an Agile Team]
[20160314][CUHK][CSCI4140]Life of an Agile Team]
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
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
[20160314][CUHK][CSCI4140]Life of an Agile Team]
[20160314][CUHK][CSCI4140]Life of an Agile Team]
[20160314][CUHK][CSCI4140]Life of an Agile Team]
[20160314][CUHK][CSCI4140]Life of an Agile Team]
[20160314][CUHK][CSCI4140]Life of an Agile Team]
[20160314][CUHK][CSCI4140]Life of an Agile Team]
[20160314][CUHK][CSCI4140]Life of an Agile Team]
[20160314][CUHK][CSCI4140]Life of an Agile Team]
[20160314][CUHK][CSCI4140]Life of an Agile Team]
[20160314][CUHK][CSCI4140]Life of an Agile Team]
[20160314][CUHK][CSCI4140]Life of an Agile Team]
[20160314][CUHK][CSCI4140]Life of an Agile Team]
[20160314][CUHK][CSCI4140]Life of an Agile Team]
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!
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
/
[20160314][CUHK][CSCI4140]Life of an Agile Team]
[20160314][CUHK][CSCI4140]Life of an Agile Team]
[20160314][CUHK][CSCI4140]Life of an Agile Team]
[20160314][CUHK][CSCI4140]Life of an Agile Team]
Advanced Topic(s)
●
Branching Strategies
●
Code Reviews
●
Continuous Integration (CI)
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
[20160314][CUHK][CSCI4140]Life of an Agile Team]
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
[20160314][CUHK][CSCI4140]Life of an Agile Team]
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
[20160314][CUHK][CSCI4140]Life of an Agile Team]
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
[20160314][CUHK][CSCI4140]Life of an Agile Team]
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!
[20160314][CUHK][CSCI4140]Life of an Agile Team]
[20160314][CUHK][CSCI4140]Life of an Agile Team]
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!
[20160314][CUHK][CSCI4140]Life of an Agile Team]
[20160314][CUHK][CSCI4140]Life of an Agile Team]
Q&A
References
●
http://en.wikipedia.org/wiki/Agile_software
_development
●
http://en.wikipedia.org/wiki/Scrum_%28sof
tware_development%29
●
http://en.wikipedia.org/wiki/Kanban_%28d
evelopment%29
●
https://www.atlassian.com/agile
Thank You
●
Please feel free to contact us:
– PantaRei Design Limited
– Unit 326, 3/F, Building 16W
No.16 Science Park West Avenue
Hong Kong Science Park, Shatin, N.T.
– Phone: +852 2576 3812
– Fax: +852 3753 3663
– Email: sales@pantarei-design.com
– Web: http://pantarei-design.com

More Related Content

PPT
The Dark arts of building your own framework (Andrey Glashenko)
PPTX
How to Develop Highly Customizable Off-the-Shelf Software (Aleksey Stukalov)
PDF
Mulesoft Milano Meetup #3 Florence Consulting
PPTX
Batch Processing with Mule 4
PPT
Impact Of A Cms Framework Change - Holland Open Netherlands
PDF
Oracle ADF Task Flows for Beginners
PDF
OpenERP R&D
PDF
Overview and Demonstration of Dimensions CM 14.2 (FUG presentation track 2)
The Dark arts of building your own framework (Andrey Glashenko)
How to Develop Highly Customizable Off-the-Shelf Software (Aleksey Stukalov)
Mulesoft Milano Meetup #3 Florence Consulting
Batch Processing with Mule 4
Impact Of A Cms Framework Change - Holland Open Netherlands
Oracle ADF Task Flows for Beginners
OpenERP R&D
Overview and Demonstration of Dimensions CM 14.2 (FUG presentation track 2)

What's hot (20)

PDF
August OpenNTF Webinar - Git and GitHub Explained
PDF
OpenNTF Webinar, October 2020
PDF
Behavioral driven development with Behat
PPTX
Camunda Day New York 2019: Case Study. Organizing a Camunda Hackathon: Lesson...
PPTX
Acjim acmacs presentation
PDF
FUG Agile software engineering practices
PPTX
mulesoft meetup @ bangalore
PDF
MuleSoft meetup__houston #13
PDF
Nagpur MuleSoft Meetup Group - Working with API Groups in Mulesoft
PPTX
Integrated Requirements Management with Serena Dimensions RM 02-2016
PDF
Activiti v6 UI (Activiti Community Day Paris 2015)
PPTX
Bpm & activiti
PPTX
Acjim acmacs presentation
PPTX
Best Practices For A Successful SOLIDWORKS 2016 Upgrade
PDF
July 2020 OpenNTF Webinar - Hear the Latest from the User Groups!
PDF
Dimensions RM: Agile Requirements Management
PDF
jBPM Overview & Alfresco Workflows
PDF
Launching Activiti v6 (Activiti Community Day Paris 2015)
PPTX
Tips For A Successful SOLIDWORKS Upgrade - 2017
PPT
Bp308 Ibm Lotus Domino Web Facelift Using Ajax And Dxl
August OpenNTF Webinar - Git and GitHub Explained
OpenNTF Webinar, October 2020
Behavioral driven development with Behat
Camunda Day New York 2019: Case Study. Organizing a Camunda Hackathon: Lesson...
Acjim acmacs presentation
FUG Agile software engineering practices
mulesoft meetup @ bangalore
MuleSoft meetup__houston #13
Nagpur MuleSoft Meetup Group - Working with API Groups in Mulesoft
Integrated Requirements Management with Serena Dimensions RM 02-2016
Activiti v6 UI (Activiti Community Day Paris 2015)
Bpm & activiti
Acjim acmacs presentation
Best Practices For A Successful SOLIDWORKS 2016 Upgrade
July 2020 OpenNTF Webinar - Hear the Latest from the User Groups!
Dimensions RM: Agile Requirements Management
jBPM Overview & Alfresco Workflows
Launching Activiti v6 (Activiti Community Day Paris 2015)
Tips For A Successful SOLIDWORKS Upgrade - 2017
Bp308 Ibm Lotus Domino Web Facelift Using Ajax And Dxl
Ad

Viewers also liked (6)

PDF
Hong Kong Drupal User Group - Nov 8th
ODP
Drupal in 5mins + Previewing Drupal 8.x
PPTX
The World We Live In
PDF
[HKDUG] #20160626 - HKOSCon 2015 - Website DIY with Drupal 8
PDF
CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development
PDF
BarCamp Hong Kong 2015 - AuthBucket - Open Source Identity Management System
Hong Kong Drupal User Group - Nov 8th
Drupal in 5mins + Previewing Drupal 8.x
The World We Live In
[HKDUG] #20160626 - HKOSCon 2015 - Website DIY with Drupal 8
CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development
BarCamp Hong Kong 2015 - AuthBucket - Open Source Identity Management System
Ad

Similar to [20160314][CUHK][CSCI4140]Life of an Agile Team] (20)

PDF
Agile & ALM tools
PPTX
Interview preparation devops
PPTX
Continuous Integration and Quality Development
PPTX
Que nos espera a los ALM Dudes para el 2013?
PPTX
Agile vision in IT and Software devlopment
PDF
Applying both Agile and Waterfall in one project
PDF
Git Branching for Agile Teams
PPTX
India Agile Week 2015
PPTX
Choosing the right agile approach for your organization
PPTX
The Agile Mindset
PPT
Agile project management PMI-ACP
PDF
Agile engineering environment 50 minutes or less
PDF
Agile Engineering Environment – 2017
PDF
Agile Engineering Environment – 2017
PPTX
The Agile Drupalist - Methodologies & Techniques for Running Effective Drupal...
PDF
SQL Server DevOps Jumpstart
PPTX
Continuous Integration & the Release Maturity Model
PPTX
Making software development processes to work for you
PPTX
Change & Shift
PPT
Technical writing in an agile development environment
Agile & ALM tools
Interview preparation devops
Continuous Integration and Quality Development
Que nos espera a los ALM Dudes para el 2013?
Agile vision in IT and Software devlopment
Applying both Agile and Waterfall in one project
Git Branching for Agile Teams
India Agile Week 2015
Choosing the right agile approach for your organization
The Agile Mindset
Agile project management PMI-ACP
Agile engineering environment 50 minutes or less
Agile Engineering Environment – 2017
Agile Engineering Environment – 2017
The Agile Drupalist - Methodologies & Techniques for Running Effective Drupal...
SQL Server DevOps Jumpstart
Continuous Integration & the Release Maturity Model
Making software development processes to work for you
Change & Shift
Technical writing in an agile development environment

More from Wong Hoi Sing Edison (20)

PDF
[HKOSCON][20220611][AlviStack: Hong Kong Based Kubernetes Distribution]
PDF
[HKOSCon x COSCUP 2020][20200801][Ansible: From VM to Kubernetes]
PDF
[HKOSCON][20200613][ Ansible: From VM to Kubernetes]
PDF
[HKOSCON][20190615][DevOps with Ansible, From Native to Kubernetes]
PDF
[BarCamp2018][20180915][Tips for Virtual Hosting on Kubernetes]
PDF
[HKOSCON][20180616][Containerized High Availability Virtual Hosting Deploymen...
PDF
[HKDUG] #20180512 - Fix Hacked Drupal with GIT
PDF
[HKDUG] #20161210 - BarCamp Hong Kong 2016 - What's News in PHP?
PDF
[HKDUG] #20151017 - BarCamp 2015 - Drupal 8 is Coming! Are You Ready?
PDF
DruStack- a mobile-friendly web content management system (cms
PDF
drustack a mobile-friendly web content management system (cms)
ODP
Open Innovation Lab (OIL) - 20150227 - GIT Intro Workshop
PDF
IT Entrepreneurship Talk - City University of Hong Kong
PDF
OSS Community Meeting - OSS Community Management for Dummy
PDF
Barcamp Hong Kong 2014 - Introduction to GIT
PDF
Barcamp Hong Kong 2014 - Commercial Use of OSS Web Content Management System
PDF
Entrepreneurship Talk
PDF
Open Source.HK Workshop - 2014 Oct 11th
PDF
Barcamp Macau 2014 - Introduction to GIT
PDF
Barcamp Macau 2014 - Introduction to AWS
[HKOSCON][20220611][AlviStack: Hong Kong Based Kubernetes Distribution]
[HKOSCon x COSCUP 2020][20200801][Ansible: From VM to Kubernetes]
[HKOSCON][20200613][ Ansible: From VM to Kubernetes]
[HKOSCON][20190615][DevOps with Ansible, From Native to Kubernetes]
[BarCamp2018][20180915][Tips for Virtual Hosting on Kubernetes]
[HKOSCON][20180616][Containerized High Availability Virtual Hosting Deploymen...
[HKDUG] #20180512 - Fix Hacked Drupal with GIT
[HKDUG] #20161210 - BarCamp Hong Kong 2016 - What's News in PHP?
[HKDUG] #20151017 - BarCamp 2015 - Drupal 8 is Coming! Are You Ready?
DruStack- a mobile-friendly web content management system (cms
drustack a mobile-friendly web content management system (cms)
Open Innovation Lab (OIL) - 20150227 - GIT Intro Workshop
IT Entrepreneurship Talk - City University of Hong Kong
OSS Community Meeting - OSS Community Management for Dummy
Barcamp Hong Kong 2014 - Introduction to GIT
Barcamp Hong Kong 2014 - Commercial Use of OSS Web Content Management System
Entrepreneurship Talk
Open Source.HK Workshop - 2014 Oct 11th
Barcamp Macau 2014 - Introduction to GIT
Barcamp Macau 2014 - Introduction to AWS

Recently uploaded (20)

PDF
Empathic Computing: Creating Shared Understanding
PDF
cuic standard and advanced reporting.pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Approach and Philosophy of On baking technology
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
Cloud computing and distributed systems.
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
Empathic Computing: Creating Shared Understanding
cuic standard and advanced reporting.pdf
Understanding_Digital_Forensics_Presentation.pptx
NewMind AI Weekly Chronicles - August'25 Week I
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
NewMind AI Monthly Chronicles - July 2025
The Rise and Fall of 3GPP – Time for a Sabbatical?
Approach and Philosophy of On baking technology
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Encapsulation_ Review paper, used for researhc scholars
Cloud computing and distributed systems.
Chapter 3 Spatial Domain Image Processing.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
“AI and Expert System Decision Support & Business Intelligence Systems”

[20160314][CUHK][CSCI4140]Life of an Agile Team]

  • 1. CUHK CSCI 4140 2016 Spring Guest Lecture Life of an Agile Team PantaRei Design Limited Wong Hoi Sing, Edison 2016 March 14th
  • 2. Wong Hoi Sing, Edison ● CEO, Founder, PantaRei Design – 2009, PantaRei Design founded – 2010, HKFYG YBHK applicant – 2011, ITF SERAP applicant – 2011, HKSTP Incu-Tech applicant ● FOSS and Drupal Developer, Contributor and HKDUG Co-founder – 2000, Debian GNU/Linux 2.2 ('potato') – 2005, Drupal Developer – 2008, BarCamp HK Speaker – 2008, HKDUG Co-founder – 2011, Drupal 7.x Core Contributor ● http://hswong3i.net ● hswong3i@pantarei-design.com
  • 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
  • 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
  • 17. Scrum ● Iterative and incremental ● Fixed-length iterations (e.g. 2~4 weeks) ● 4 Ceremonies – Sprint planning – Daily stand-up – Sprint demo – Sprint retrospective
  • 20. Scrum (cont.) ● Roles – Product Owner – Development Team – Scrum Master
  • 21. Scrum (cont.) ● User stories – Express customer need as a story – Set user role – Small amount of work – Should include notes for needed
  • 24. Scrum (cont.) ● Task – For developer – Get engineer talking with product owner – Get mutual understanding of the story – Satift customer needs
  • 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
  • 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
  • 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
  • 36. Waterfall ● Usually sucks ● Planning far in advance ● Lack of visibility into rate of progress ● Project fall behind schedule (easily)
  • 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
  • 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/
  • 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
  • 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 /
  • 75. Advanced Topic(s) ● Branching Strategies ● Code Reviews ● Continuous Integration (CI)
  • 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
  • 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
  • 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
  • 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
  • 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!
  • 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!
  • 90. Q&A
  • 92. Thank You ● Please feel free to contact us: – PantaRei Design Limited – Unit 326, 3/F, Building 16W No.16 Science Park West Avenue Hong Kong Science Park, Shatin, N.T. – Phone: +852 2576 3812 – Fax: +852 3753 3663 – Email: sales@pantarei-design.com – Web: http://pantarei-design.com