AGILE SOFTWARE DEVELOPMENT References: 1. R.S. Pressman & Associates, Inc. Software Engineering: A Practitioner’s Approach, 6/e .copyright © 1996, 2001, 2005. 2. http://www.comp.lancs.ac.uk/computing/resources/IanS/
AGILE SOFTWARE DEVELOPMENT
References:
1. R.S. Pressman & Associates, Inc. Software Engineering: A Practitioners
Approach, 6/e .copyright 1996, 2001, 2005.
2. http://www.comp.lancs.ac.uk/computing/resources/IanS/
Nhu cu Pht trin PM nhanh
C th xc nh tt c cc yu cu ca h thng phn
mm thi im bt u d n khng?
Pht trin v chuyn giao nhanh l nhng yu cu quan
trng ca cc h thng PM hin nay?
Cc yu cu nghip v nhanh thay i
PM phi nhanh chng phn nh c nhu cu thay i
nghip v.
Nhu cu Pht trin PM nhanh
Pht trin PM nhanh
c t, thit k v hin thc l xen k nhau.
H thng c pht trin l mt dy cc phin bn.
Cc bn lin quan tham gia vo qu trnh nh gi cc
phin bn.
GUI thng pht trin dng cc IDE hay cc cng c
ha.
Cc phng php Agile
Chi ph ca nhng PP pht trin PM trong nhng nm 80s, 90s
pht trin cc PP Agile.
Tp trung vo codes hn l thit k.
Da trn tip cn pht trin PM theo phng php lp.
D kin chuyn giao nhanh v tin ha nhanh, p ng thay
i yu cu.
Mc ch cc PP Agile: gim chi ph trong qui trnh pht trin PM
(vd. Hn ch documentation). p ng nhanh nhng thay i yu
cu m khng phi lm li qu nhiu.
Agile l g?
Tip cn ca nhng ngi lm thc t (Practitioners).
Tp cc phng php pht trin PM m yu cu v gii php s tin
ha thng qua tng tc gia cc nhm tham gia. Agile mun thc
y:
Lp k hoch ty bin,
Pht trin tin ha,
Chuyn giao sm,
Ci tin lin tc
Phn hi nhanh i vi cc thay i.
Ref: http://en.wikipedia.org/wiki/Agile_software_development
Tuyn ngn (Manifesto) cho Agile Software Development
We are uncovering better ways of developing software by doing it and
helping others do it. Through this work we have come to value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on the right, we value the
items on the left more.
Ref: http://en.wikipedia.org/wiki/Agile_software_development
Cc nguyn tc ca cc phng php Agile
The Agile Manifesto is based on twelve principles:
1. Customer satisfaction by rapid delivery of useful software
2. Welcome changing requirements, even late in development
3. Working software is delivered frequently (weeks rather than months)
4. Close, daily cooperation between business people and developers
5. Projects are built around motivated individuals, who should be trusted
6. Face-to-face conversation is the best form of communication (co-
location)
Cc nguyn tc ca cc phng php Agile
7. Working software is the principal measure of progress.
8. Sustainable development, able to maintain a constant pace
9. Continuous attention to technical excellence and good design
10. Simplicitythe art of maximizing the amount of work not doneis
essential
11. Self-organizing teams
12. Regular adaptation to changing circumstances
Kh nng ng dng Agile
Pht trin sn phm: mt cng ty PM ang pht trin mt
sn phm qui m nh v va bn.
Pht trin PM theo nhu cu cho mt t chc m t chc
cam kt tham gia vo qu trnh pht trin. T chc khng nn
c qu nhiu qui tc, qui nh nh hng n phn mm.
V tp trung vo nhng team nh, kt hp cht ch nn s c
nhiu vn khi scale nhng phng php agile cho nhng h
thng ln.
Vn vi cc phng php Agile
Kh gi c s quan tm ca khch hng khi tham gia vo qui trnh.
Thnh vin trong team c th khng ph hp vi nhng phng php
agile.
Xc nh u tin cho nhng thay i c th kh v c nhiu bn lin
quan.
Duy tr s n gin ha yu cu thm cng vic.
Vn k kt hp ng?
Pht trin Agile v Pht trin nh hng k hoch
Pht trin hng k hoch (Plan-driven development)
Tip cn hng k hoch cho CNPM da trn nhng bc pht trin
tch bit vi u ra mi bc c lp k hoch trc.
Iteration xut hin trong nhng hat ng (Specification, Design,
Implement, )
Agile Development
Specification, Design, Implementation and Testing l xen k.
u ra t qu trnh pht trin c quyt nh thng qua qu trnh m
phn trong sut qu trnh pht trin.
Pht trin Agile v Pht trin nh hng k hoch
Vn v t chc, con ngi, k thut
Nhiu project kt hp c tip cn agile v nh hng k hoch.
Cn c specification v design chi tit trc khi implementation hay
khng? Nu cn, th dng tip cn nh hng k hoch.
Cn thit chuyn giao tng cng cho khch hng v ly kin phn
hi? Nu cn, th xem xt dng Agile.
Qui m h thng c ln khng? Agile hiu qun khi pht trin vi
team nh, gn nhau. iu ny khng ph hp vi cc h thng ln
i hi team ln. Tip cn nh hng k hoch c th c
dng.
Vn v t chc, con ngi, k thut
Kiu h thng pht trin (Type of system)?
Tip cn nh hng k hoch c th cn cho cc h thng m
i hi nhiu phn tch trc khi hin thc.
Thi gian sng (Lifetime)?
Long-lifetime systems cn nhiu ti liu thit k chuyn giao
nh ban u ca nhng developer cho team h tr.
Development team t chc ntn?
Development team l phn tn hay mt phn l outsourced, cn pht trin
cc ti liu thit k giao tip qua gia cc nhm trong team pht trin.
C vn v t chc & vn ha c th nh hng n pht trin h
thng
Vn v t chc, con ngi, k thut
C vn v t chc & vn ha c th nh hng n pht trin
h thng?
Mt s t chc c vn ha pht trin hng k hoch.
Trnh Developver v Programmer trong team ntn?
Agile thng thng i hi mc k nng cao hn plan-driven. Vi
Plan-driven, i khi programmer ch dch t thit k chi tit qua codes.
Iteration
L heartbeat ca Agile development.
Chuyn giao nhng on m c test, c trong mt khong
thi gian ngn
Thi gian cho mt Iteration: 2 tun?
Thi gian cho mi Iteration nn c nh trong sut qu trnh
i vi cc long Iteration, team c th built mt water-fall
prcocess cho mt Iteration
XP xut 1 4 tun
Scrum xut sprints 30 ngy
RUP xut t 2 6 tun
Iteration
Iteration
Lp k hoch (Iteration planning)
Pht trin (Iteration Execution)
Chuyn giao (Deliver & accept)
Iteration Planning
Xem v xc nh u tin cho tng items trong backblog.
nh ngha v c lng nhng tasks cn thit deliver.
Tho lun, dn xp v chi tit yu cu, c lng.
Tt c team members phi c trch nhim chun b cho Iteration planning
Iteration planning: t hn 1 ngy
Agile team leader/Scrum Master; product owner/business analyst; developer; test, QA, and documentation personnel; and architect.
Iteration Planning
Trch nhim ca Product Owner Trch nhim ca Development team
Review v chp nhn k hoch Iteration, m bo quan im v mc tiu vn thch hp.
Review li cc items c u tin cao trong backblog v chun b cc cu hi
Xem li cc items trong backblog xc nh li u tin trng hp cn thit.
Xem xt cc technical issues, rng buc, ph thuc, v chia s vi team.
Hiu c nhu cu khch hng, gi tr business m mi iteration mang li.
Suy ngh v cc cng vic chun b estimate trong cuc hp
Chun b k lng hn trn chi tit ca cc yu cu
Iteration Execution
Iteration cycle s lp n khi tt c backblog items hon thnh
Iteration Execution
Tng developer hoc pair of developers:
Nhn trch nhim cho mi backblog item.
Develop mi backblog item (design, code, integrate, and test).
Chuyn giao, tch hp tng backblog item vo h thng
Cho bit backblog item lm xong v sn sng cho test.
Accepting Iteration
Hp chp nhp Iteration
Trnh by kt qu
Tho lun, nhn phn hi t customer
Product owners quyt nh trng thi accept cho nhng vic lm v nhng vic cn li, tip theo cho Iteration sau
Daily stand-ups
Have the meeting at the same time every day; the team decides when this should be.
Have the meeting in the same location every day; this avoids the frustration of having to secure a room, find the room, and communicate room shifts to team members.
Make sure everyone stands up; sitting promotes problem solving, discussions that should be held after the stand-up.
Limit the meeting to a 15-minute time box; stick to 1 to 2 minutes per report.
Start on time; late-comers can adversely affect your ability to keep the meeting to 15 minutes.
Participants should include all members of the development team: the folks who have their hands on the keyboards and the folks who understand the details behind the user stories
Daily stand-ups
What I did yesterday
What I am doing today.
What is getting in my way? (Am I blocked?)
Extreme Programming - XP
The most widely used agile process, originally proposed by Kent Beck
XP Planning
Begins with the creation of user stories (Features & Functionalities)
Agile team assesses each story and assigns a cost
Stories are grouped to for a deliverable increment
A commitment is made on delivery date Order the stories (all, riskiest, highest value)
After the first increment project velocity is used to help define subsequent delivery dates for other increments
Extreme Programming - XP
unit t est
cont inuous int egrat ion
accept ance t est ing
pair
programming
Release
user st ories
values
accept ance t est crit eria
it erat ion plan
simple design
CRC cards
spike solut ions
prot ot ypes
refact oring
sof tware increment
project velocity computed
Pair programming
Pair programming
Scrum Process
"Pig" roles: Pigs are the ones committed to the project and the Scrum process
Product Owner
ScrumMaster
Team: A small team of 5-9 people with cross-functional skills to do the actual work (designer, developer etc.).
"Chicken" roles
ideas, needs, desires
planning of each sprint
Review, feedback
Users
Stakeholders (Customers, Vendors)
Managers: people that will set up the environment for the product development organizations.
Scrum Process
Schwaber & Beedle: 1986
Scrum Process
T hc
Xem li bi ging
c thm bi ging ca Ian Sommerville: chapter
3: Agile Software Development.
(http://www.softwareengineering-9.com/)