6a.agile software development.ppt
TRANSCRIPT
-
8/9/2019 6a.Agile Software Development.ppt
1/33
Agile Software
Development
-
8/9/2019 6a.Agile Software Development.ppt
2/33
I. Agile SoftwareDevelopment
Agile software development is a group of software developmentmethods based on iterative and incremental development, where requirementsand solutions evolve through collaboration between self-organizing, cross-functional teams. Methods Iterative incremental
It promotes adaptive planning, evolutionarydevelopment and delivery, a time-boediterative approach, and encourages rapid and fleible response tochange.
It is a conceptual framewor! that promotes foreseeninteractions throughout
the development cycle.
"heAgile Manifesto#introduced the term in $%%&. '(i!i, $& )ug &$*
+ets ta!e this definition apart.
-
8/9/2019 6a.Agile Software Development.ppt
3/33
a. Software DevelopmentMethod
A software developmentmethodology or systemdevelopment methodology insoftware engineering is a frameworkthat is used to structure, plan, andcontrol the process of developing an
information system.
-
8/9/2019 6a.Agile Software Development.ppt
4/33
b. Software Engineering / SoftwareDevelopment
Software Engineering !I"I# SE# is the applicationof a s$stematic, disciplined, %uanti&able approach tothe design, development, operation, andmaintenance of software, and the stud$ of theseapproaches' that is, the application of engineering to
software.
Software Development, a much used and moregeneric term, does not subsume the engineeringparadigm.
(he &eld)s future looks bright according to Mone$Maga*ine and Salar$.com, which rated +softwareengineer+ as the best ob in the -nited States in 0.
In 1, software engineering was again ranked as thebest ob in the -nited States, this time b$ 2areer2ast.com.
-
8/9/2019 6a.Agile Software Development.ppt
5/33
c. Information S$stem
An information system IS# 3 is an$ combinationof information technolog$ IT# and people)sactivitiesthat support operations, managementand decision making.
In a ver$ broad sense, the term information s$stemis fre%uentl$ used to refer to the interactionbetween people, processes, data and technolog$.
In this sense, the term is used to refer not only to the information and communicationtechnolog$ I2(# that an organi*ation uses,
but also to the wa$ in which peopleinteractwith thistechnolog$ in support of business processes. !iki#
d I i d I l
-
8/9/2019 6a.Agile Software Development.ppt
6/33
d. Iterative and IncrementalDevelopment
Iterative and Incremental development is at the
heart of a c$clic software development processdeveloped in response to the weaknesses of thewaterfall model.
It starts with an initial planning and ends with
deplo$ment with the c$clic interactions in between.
Iterative and incremental development areessential parts of the Rational Uniedrocess, E!treme rogramming andgenerally the various agile softwaredevelopment framewor"s.
It follows a similar process to the 4plan3do3check3act5 c$cle of business rocess im rovement.
-
8/9/2019 6a.Agile Software Development.ppt
7/33
e. (ime36o7ed Approach
In time management, a time box allots a
fixedperiod of timefor an activity.
Timeboxingplans activity by allocatingtime
boes.
http://en.wikipedia.org/wiki/Timehttp://en.wikipedia.org/wiki/Time -
8/9/2019 6a.Agile Software Development.ppt
8/33
. Introductor$ (houghts
8ears regarding software development ledto a number of pioneers / industr$ e7pertsto develop the #gile$anifestobased
up some &rm values and principles.
9ractitioners had become afraid thatrepeated software failures could not be
stopped without some kind of guidingprocess to guide development activities.
-
8/9/2019 6a.Agile Software Development.ppt
9/33
2ommon 8ears
9ractitioners were afraid that
(he proect will produce the wrongproduct
(he proect will produce a product ofinferior %ualit$
(he proect will be late
!e:ll have to work ; hour weeks !e:ll have to break commitments
!e won:t be having fun.
-
8/9/2019 6a.Agile Software Development.ppt
10/33
Agile Alliance Several individuals, The #gile #lliance,
motivated to constrain activities
such that certain outputs and artifacts arepredictablyproduced.
Around , these notables got together toaddress common development problems.
-
8/9/2019 6a.Agile Software Development.ppt
11/33
(hese activities arose in large part to runawayprocesses. 8ailure to achieve certain goals was met with >more
process.: Schedules slipped' budgets bloated, and
processes became even larger.
(he Alliance 1?# created a statement ofvalues= termed the manifestoof the Agile
Alliance.
(he$ then developed the '(rinciples of#gility&
-
8/9/2019 6a.Agile Software Development.ppt
12/33
Manifesto for Agile SoftwareDevelopment
4!e are uncovering better wa$s of developingsoftware b$ doing it and helping others do it. (hroughthis work we have come to the value=
1. Individuals and interactions over processes and tools.!orking software over comprehensive [email protected] collaboration over contract negotiation.Besponding to change over following a plan
(hat is, while there is value in the items on the right,
we value the items on the leftmore.5
Cet:s look at these values to discern e7actl$ what ismeant.
-
8/9/2019 6a.Agile Software Development.ppt
13/33
Interactions over 9rocesses
and (ools Strong players= a must, but can fail if don:t work
together. Strong player) not necessaril$ an >ace': work well
with others 2ommunication and interacting is more importantthan raw
talent. >Right* toolsare vital to smooth functioning of a team. Start small. 8ind a free tool and use until $ou can
demo $ou:ve outgrown it. Don:t assume bigger isbetter. Start with white board' Fat &les before going toa huge database.
+uilding a teammore important than buildingenvironment& Some managers build the environment and e7pect the team to
fall together. Doesn:t work.
Cet the team build the environment on the basis of need.
-
8/9/2019 6a.Agile Software Development.ppt
14/33
over 2omprehensive
Documentation odeG not ideal medium for communicating rationaleand s$stem structure.
(eam needs to produce human readable documentsdescribing s$stem and design decision rationale.
Too much documentation is worse than too little.(ake time' more to keep in s$nc with code' Hot kept
in s$nc it is a lie and misleading.
Short rationale and structure document.
"eep this in s$nc' Jnl$ highest level structure in thes$stem kept.
-
8/9/2019 6a.Agile Software Development.ppt
15/33
over 2omprehensive
Documentation -ow to train newbeesif short K sweet !ork closel$ with them.
(ransfer knowledge b$ sitting with them' make part ofteam via close training and interaction
Two essentialsfor transferring info to new team
members=
odeis the onl$ unambiguous source of information.
Teamholds ever$3changing roadmap of s$stems intheir heads' cannot put on paper.
+est wayto transfer info3 interact with them.
.atal /aw= 9ursue documentation instead of software=
Rule= 9roduce no document unless need is immediateand signi&cant.
-
8/9/2019 6a.Agile Software Development.ppt
16/33
2ollaboration over 2ontract
Hegotiation 1 of #
Hot possible to describe softwarere%uirements up front and leave someoneelse to develop it within cost and on time.
2ustomers cannot ust cite needs and goawa$
Successful proects re%uire customerfeedbac" on a regular and fre%uent basisG and not dependent upon a contract or SJ!.
l @ 2 t
-
8/9/2019 6a.Agile Software Development.ppt
17/33
alue @= 2ustomer2ollaboration over 2ontract
Hegotiation of # +est contracts are 01Tthose specif$ingre%uirements, schedule and cost. 6ecome meaningless shortl$.
.arbetter are contractsthatgovern theway the development team andcustomer will wor" together.
"e$ is intense collaboration with customerand a contract that governed collaboration
rather than details of scope and schedule Details ideall$ notspeci&ed in contract. Bather contracts could pa$ when a block passed
customer:s acceptance tests. !ith fre%uent deliverables and feedback,
acceptance tests never an issue.
-
8/9/2019 6a.Agile Software Development.ppt
18/33
alue = Besponding to2hange over 8ollowing a 9lan
1ur plans and the ability to respond to changes iscritical2
ourse of a pro3ect cannot be predicted far into thefuture& Too many variables4 not many good ways at estimating cost&
Temptingto create a 9EB( or
-
8/9/2019 6a.Agile Software Development.ppt
19/33
alue = Besponding to2hange over 8ollowing a 9lan
+etter planning strategyG ma"e detailedplans for the ne!t few wee"s, very roughplans for the ne!t few months, ande!tremely crude plans beyond that&
Heed to know what we will be working on the ne7tfew weeks' roughl$ for the ne7t few months' avague idea what s$stem will do after a $ear.
1nly invest in a detailed plan for immediatetas"s' once plan is made, diLcult to change dueto momentum and commitment. 6ut rest of plan remains Fe7ible. (he lower resolution
parts of the plan can be changed with relative ease.
-
8/9/2019 6a.Agile Software Development.ppt
20/33
Agile 9rinciples 1#
(he following principles are thosethat dierentiate agile processesfrom others.
-
8/9/2019 6a.Agile Software Development.ppt
21/33
Satisfy the ustomerthrough Earlyand
ontinuousDeliveryof aluable
Software Humber of practices have signi&cant impact upon %ualit$ of &nals$stem=
1. Strong correlationbetween %ualityand early delivery ofa partially functioning system& (he less functional the initial deliver$, the higher the %ualit$ of the
&nal deliver$. . Another strong correlatione7ists between nal %ualityandfre%uently deliveries of increasing functionality. (he more fre%uent the deliveries, the higher the &nal %ualit$.
#gile processes deliver early and often. Budimentar$ s$stem rstfollowed b$ s$stems of increasing
functionality ever$ few weeks. 2ustomers m$ use these s$stems in production, or Ma$ choose to review e7isting functionalit$ and report on changes
to be made. Begardless, the$ must provide meaningful feedbac".
-
8/9/2019 6a.Agile Software Development.ppt
22/33
rinciple () 6elcome hangingRe%uirements, even late in Development.Agile 9rocesses harness change for the2ustomer:s 2ompetitive Advantage. (his is a statement of attitude.
9articipants in an agile process are notafraidofchange.
Be%uirement changes are good'
Mean team has learned more about what it will take tosatisf$ the market.
Agile teams work to keep the softwarestructure/e!ible, so re%uirement change impact is minimal.
Moreso, the principles of ob3ect oriented design
help us to maintain this kind of Fe7ibilit$.
-
8/9/2019 6a.Agile Software Development.ppt
23/33
Principle 3: Deliver Working Software Frequently
(From a couple of weeks to a couple of months with a
preference to the shorter time scale.
!e deliver working software. Deliver early and often.
+e not contentwith delivering bundlesof documents, or plans.
Don:t count those as true deliverables.
(he goalof delivering software thatsatis&es the customer:s needs.
rinciple 7) 6usiness 9eople and
-
8/9/2019 6a.Agile Software Development.ppt
24/33
rinciple 7) 6usiness 9eople andDevelopers Must 6or" Together Daily
throughout the 9roect.
8or agile proects, there must besignicantand fre%uentinteractionbetween the
customers, developers, and
stakeholders.
An agile proect must be continuouslyguided.
rinciple 8) +uild ro3ects around
-
8/9/2019 6a.Agile Software Development.ppt
25/33
rinciple 8) +uild ro3ects around$otivated Individuals.
-
8/9/2019 6a.Agile Software Development.ppt
26/33
rinciple := (he Most ELcient andEective Method of 2onve$ing Informationto and within a Development (eam is face;
to;face ommunications. In agile proects, developers talkto each other.(he primary mode of communication is
conversation.
Documents ma$ be created, but there is no attempt
to capture all proect information in writing. An agile proect team does not demand
writtenspecs, written plans, or written designs.(he$ ma$ create them if the$ perceive an
immediate and signicant need, but the$ are not
the default.(he default is conversation.
-
8/9/2019 6a.Agile Software Development.ppt
27/33
rinciple
-
8/9/2019 6a.Agile Software Development.ppt
28/33
rinciple @) #gile rocesses promotesustainable developmt (he sponsors,developers, and users should be able tomaintain a constant pace inde&nitel$.
An agile proect is not run like a O $ard dash' it is runlike a marathon. (he team does not take o at full speed and tr$ to
maintain that speed for the duration.
Bather the$ run at a fast, but sustainable, pace.
Bunning too fast leads to burnout, shortcuts, anddebacle.
Agile teams pace themselves. (he$ don:t allow themselves to get too tired. (he$ don:t borrow tomorrow:s energ$ to get a bit more
done toda$. (he$ work at a ratethat allows them to maintain the
highest %ualit$ standards for the duration of the proect.
i i l A 2 i A i
-
8/9/2019 6a.Agile Software Development.ppt
29/33
rinciple A) 2ontinuous Attention to(echnical E7cellence and
-
8/9/2019 6a.Agile Software Development.ppt
30/33
9rinciple 1= SimplicityG the art ofma!imiBing the amount of wor"
not done C is essential&
Agile teams take the simplest path thatis consistent with their goals.
(he$ don:t anticipate tomorrow:s problemsand tr$ to defend against them toda$.
Rather they do the simplest andhighest %uality wor" today, condentthat it will be easy to change if andwhen tomorrows problems arise&
-
8/9/2019 6a.Agile Software Development.ppt
31/33
rinciple '') The 6est Architectures,Be%uirements, and Designs emerge from Self;
1rganiBing Teams
An agile team is a self organi*ing team. Besponsibilities are not handed to individual
team membersfrom the outside. Besponsibilities are communicatedto the team
as a whole, and the team determinesthe best
wa$ to ful&ll them.
Agile team members work together on allproect aspects. Each is allowed input into the whole.
Ho single team member is responsible for thearchitecture, or the re%uirements, or the tests, etc.(he team shares those responsibilities and each
team member has inFuence over them.
rinciple '() At regular Intervals the Team
-
8/9/2019 6a.Agile Software Development.ppt
32/33
rinciple '() At regular Intervals, the Teamre/ectson how to become moreeective,
then tunes and ad3usts its behavioraccordingl$.
An agile team continuall$ adusts itsorgani*ation, rules, conventions,
relationships, etc.
An agile team knows that its environment
is continuousl$ changing, and knows thatthe$ must change with that environmentto remain agile.
-
8/9/2019 6a.Agile Software Development.ppt
33/33
2onclusions The professional goal of every software engineer, and every
development team, is to deliver the highest possible value to ouremployers and customers. And yet, our projects fail, or fail to deliver value, at a dismaying rate.
Though well intentioned, the upward spiral of process inflationisculpable for at least some of this failure.
The principles and values of agile software development were
formed as a way to help teams break the cycle of process inflation, and to focus on simple techniques for reaching their goals.
At the time of this writing there were many agile processes tochoose from. These include
!"#$, !rystal, Feature %riven %evelopment (F%%&, Adaptive oftware %evelopment (A%'&, and most significantly, )treme 'rogramming (*'&. +thers