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

CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development

Jul 25, 2015

Download

Technology

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development

CUHK CSCI 4140 2015 SpringGuest Lecture

Agile Development

Edison Wong2015 Mar 2nd

Page 2: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development

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]

Page 3: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development

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

Page 4: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development

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

Page 5: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development
Page 6: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development
Page 7: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development
Page 8: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development
Page 9: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development
Page 10: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development
Page 11: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development

Outline

● What is Agile Development?● Why Agile Development?● 15 mins Tutorial● Advanced Topic(s)

Page 12: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development

What is Agile Development?

● Agile● Scrum● Kanban● Scrum vs Kanban

Page 13: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development

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

Page 14: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development
Page 15: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development

Scrum

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

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

Page 16: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development
Page 17: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development
Page 18: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development

Scrum (cont.)

● Roles– Product Owner– Development Team– Scrum Master

Page 19: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development

Scrum (cont.)

● User stories– Express customer need as a story– Set user role– Small amount of work– Should include notes for needed

Page 20: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development
Page 21: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development
Page 22: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development

Scrum (cont.)

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

Page 23: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development
Page 24: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development

Scrum (cont.)

● Burndown chart– Public displayed chart showing remaing work in

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

Page 25: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development
Page 26: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development
Page 27: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development

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

Page 28: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development
Page 29: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development
Page 30: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development
Page 31: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development
Page 32: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development

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

Page 33: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development

Why Agile Development?

● Waterfall● Agile vs Waterfall

Page 34: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development

Waterfall

● Usually sucks● Planning far in advance● Lack of visibility into rate of progress● Project fall behind schedule (easily)

Page 35: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development
Page 36: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development

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

Page 37: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development

15 mins Tutorial

● Atlassian JIRA Agile– Scrum– Kanban

Page 38: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development

Advanced Topic(s)

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

Page 39: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development

Branching Strategies● Three branching strategies for agile teams

– Release branching– Feature branching– Task branching

● Usually handling by GIT– Github– Atlassian Stash

● Validate, validate, validate

Page 40: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development

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!

Page 41: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development
Page 42: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development
Page 43: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development

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!

Page 45: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development
Page 46: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development

Q&A

Page 48: CUHK CSCI 4140 2015 Spring Guest Lecture - Agile Development

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