48
CUHK CSCI 4140 2015 Spring Guest Lecture Agile Development Edison Wong 2015 Mar 2nd

CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development

Embed Size (px)

Citation preview

CUHK CSCI 4140 2015 SpringGuest Lecture

Agile Development

Edison Wong2015 Mar 2nd

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

[email protected]

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

PantaRei Design (cont.)

● History– 2010

● Founded by Edison Wong● Applicant of The Hong Kong Federation of Youth Groups (HKFYG) Youth

Business Hong Kong (YBHK) Programme

– 2011● Applicant of Innovation and Technology Fund (ITF) Small Entrepreneur

Research Assistance Programme (SERAP)● Applicant of Hong Kong Science & Technology Parks (HKSTP) Incu-Tech

Programme

– 2014● Graduate as HKSTP Talent

Outline

● What is Agile Development?● Why Agile Development?● 15 mins Tutorial● 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

Scrum

● Iterative and incremental● Fixed-length iterations (e.g. 2~4 weeks)● 4 Ceremonies

– Sprint planning– Daily stand-up– Sprint demo– Sprint retrospective

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

Scrum (cont.)

● Task– For developer– Get engineer talking with product owner– Get mutual understanding of the story– Satift customer needs

Scrum (cont.)

● Burndown chart– Public displayed chart showing remaing work in

the sprint backlog– Simple view of the sprint progress– Quick visualization for reference

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

Scrum vs KanbanScrum 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)

Agile vs WaterfallAgile 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

15 mins Tutorial

● Atlassian JIRA Agile– Scrum– Kanban

Advanced Topic(s)

● Branching Strategies● Code Reviews● Continuous Integration (CI)

Branching Strategies● Three branching strategies for agile teams

– Release branching– Feature branching– Task branching

● Usually handling by GIT– Github– Atlassian Stash

● Validate, validate, validate

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!

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!

Q&A

Thank You● Please feel free to contact us:

– PantaRei Design Limited– Unit 326, 3/F, Building 16W

No.16 Science Park West AvenueHong Kong Science Park, Shatin, N.T.

– Phone: +852 2576 3812– Fax: +852 3753 3663– Email: [email protected]– Web: http://pantarei-design.com