SoftwareEngineeringModelingandDesign
Unit –III AgileDevelopment
Agile Development: Agile manifesto, agility and cost of change, Agility principles,
myth of planned development.
Extreme Programming: XP values, process, industrial XP
SCRUM: processflow, scrumroles, scrumcycle description, product backlog,
sprint planning meeting, sprint backlog, sprint execution, daily scrum meeting,
maintaining sprint backlog and burn-down chart, sprint review and retrospective.
Agile Practices: test driven development, refactoring, pair programming,
Continuous integration, exploratory testing versus scripted testing.
Introduction to Kanbanand its comparison with SCRUM Process.
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
AgileDevelopment
Agilesoftwareengineeringcombinesa philosophyandasetofdevelopment
guidelines
The philosophy encourages customer satisfaction and early incremental
deliveryofsoftware;small,highlymotivatedprojectteams;informalmethods;
minimal software engineering work products; and overall development
simplicity.
Thedevelopmentguidelinesstressdeliveryoveranalysisanddesign, andactive
andcontinuouscommunication betweendevelopersand customers.
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
What is an AgileProcess?
Anyagilesoftwareprocessis characterizedinamannerthat addressesa numberof
keyassumptionsaboutthe majorityof softwareprojects:
Itisdifficulttopredictinadvancewhichsoftwarerequirementswillpersist
andwhichwillchange.Itisequallydifficulttopredict howcustomerpriorities
will changeastheprojectproceeds.
Formanytypesofsoftware,design andconstructionareinterleaved.That
is, both activities should be performed in tandem so that design models are
proven as they are created. It is difficult to predict how much design is
necessarybeforeconstructionisusedtoprovethe design.
SoftwareEngineeringModelingandDesign
What is an Agile Process?
Anyagilesoftwareprocessis characterizedinamannerthat addressesa numberof
keyassumptionsaboutthe majorityof softwareprojects:
Analysis, design, construction, and testing are not as predictable (from a
planningpointofview)aswe mightlike.
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
What is Agility?
Agility in software engineering refers to the ability of a software development
team to respond quickly and effectively to changes in project requirements or
market demands.
The team works closely with the customer or product owner to prioritize
features and adjust the project scope as needed.
Twelve Principles
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
TheCostofChange
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
AgilePrinciples
Ourhighestpriority istosatisfythecustomerthroughearlyandcontinuous
deliveryofvaluablesoftware.
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
AgilePrinciples
Welcomechangingrequirements,evenlate indevelopment.Agileprocesses
harnesschangefor thecustomer’scompetitiveadvantage.
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
AgilePrinciples
Deliverworkingsoftwarefrequently,fromacoupleofweeksto acoupleof
months,witha preferenceto the shortertimescale.
SoftwareEngineeringModelingandDesign
AgilePrinciples
Businesspeopleanddevelopersmustworktogetherdaily throughoutthe
project
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
AgilePrinciples
Buildprojects aroundmotivatedindividuals.Givethemthe environmentand
supporttheyneed,andtrustthemto getthe job done.
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
AgilePrinciples
Themostefficientandeffectivemethod ofconveyinginformationtoand
withina developmentteamisface-to-faceconversation
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
AgilePrinciples
Workingsoftwareisthe primarymeasure ofprogress
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
AgilePrinciples
Agileprocesses promotesustainabledevelopment.Thesponsors,developers,
andusersshouldbeableto maintainaconstantpaceindefinitely
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
AgilePrinciples
Continuous attention to technical excellence and good design enhances
agility.
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
AgilePrinciples
Simplicity—the artofmaximizingtheamountofworknotdone—isessential.
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
AgilePrinciples
Thebestarchitectures,requirements,anddesignsemerge from self–organizing
teams.
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
AgilePrinciples
At regularintervals,theteamreflectsonhowtobecomemoreeffective,then
tunesandadjustsitsbehavioraccordingly.
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
AgileManifesto
Documentthatidentifiesfourkeyandtwelveprinciples
Fourcorevalues
Individualsandinteractions overprocessesandtools
Workings/wovercomprehensivedocumentation
Customercollaborationovercontractnegotiation
Respondingtochangeoverfollowingplan
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
SummaryAgileDevelopment
FastestDevelopmentMethodology
NoDocumentationOverhead
FocusonCodedevelopment
FrequentlyDelivery
Customersatisfaction
Changeaccepted
Facetofaceconversation
Customerinvolvedin development
Selforganizing,selfmotivatedandhighlyexperienced
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
HumanFactors
Agiledevelopmentfocusesonthetalentsandskillsofindividuals,moldingthe
processto specific peopleandteams
Competence-specific software-related skills, and overall knowledge of the
processthatthe team has chosento apply
Commonfocus-tasksandbringdifferentskills-focusedon onegoal-to
deliver a working software increment to the customer within the time
promised
Collaboration–stakeholders,comps/w& database
Decision-makingability-allowedthefreedomto controlitsowndestiny
Mutualtrust andrespect–amongall
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
ExtremeProgramming(XP)
mostwidely usedapproachto agilesoftwaredevelopment.
XP is lightweight, efficient, low-risk, flexible, predictable and fun way to develop
asoftware
Rapidlychangingrequirements
XPvalues-establishafoundationforallworkperformedaspartof XP
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
XPvalues
Communication
Effective communication betweens/wengg.andstakeholders
Toestablishfeatures andfunctionsforthes/w
Collaborationbetweencustomers&developerscontinuousfeedback,avoid f
voluminous documentation a communication Medium.
Simplicity
Restrictsdevelopersto designonlyfor immediateneeds
Intentistocreateasimpledesign
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
XPvalues
Feedback
Implementeds/witself,thecustomerands/wteammembers
Bydesigningandimplementinganeffectivetestingstrategy
the softwareprovidesthe agileteam withfeedback
Courage
Abetter wordmight bediscipline
“designingfortomorrow”
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
XPvalues
Respect
Respect amongmembers,betweenotherstakeholdersandteammembers and
indirectly,for thes/witself.
Astheyachievesuccessfuldeliveryof softwareincrements,theteamdevelops
growingrespectforthe XPprocess.
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
The XPProcess
SoftwareEngineeringModelingandDesign
The XP Process
Extreme Programming uses an object-oriented approach as its preferred
development paradigm and encompasses a set of rules and practices that
occur within the context of four framework activities: planning, design,
coding, and testing.
The XP process and notes some of the key ideas and tasks that are
associated with each framework activity.
Asimpledesignis alwayspreferredoveramore complexrepresentation
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
Framework Activities
Planning
Theplanningactivitybeginswithlistening,requirementsgathering
creation ofasetof“stories” (alsocalleduserstories)
basic commitment (agreement on stories to be included, delivery date, and
otherprojectmatters)
Design
XPdesignrigorouslyfollowsthe keepitsimpleprinciple
Asimpledesignis alwayspreferredoveramore complexrepresentation
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
Framework Activities
Design
XPdesignrigorouslyfollowsthe keepitsimple
principle
Asimpledesignis alwayspreferredoveramore
complexrepresentation
If a difficult design problem is encountered
as part of the design of a story, XP recommends
the immediate creation of an operational prototype
of that portion of the design. Called a spike
solution,the design prototype is implemented and
evaluated
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
Framework Activities
Coding
Refactoring
Pairprogramming
Continuousintegration
Testing
XPacceptancetests,alsocalledcustomertests
Overallfeatures&functionalitythatarevisible&reviewableby the customer.
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
IndustrialXP
IXPisanorganicevolutionofXP
Its expanded role of customers & its upgraded technical practices
Incorporatesixnewpractices
Readinessassessment
anappropriatedevelopmentenvironmentexists to supportIXP
theteamwillbe populatedby thepropersetofstakeholders
theorganizationhasa distinctqualityprogramandsupportscontinuous
improvement
thebroaderprojectcommunitywillbe populatedappropriately
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
IndustrialXP
Projectcommunity
ClassicXPsuggeststhattheright peoplebeusedtopopulate theagile
teamtoensure success
Theimplicationisthat peopleontheteam mustbewell-trained,
adaptable andskilled,andhavethepropertemperamenttocontributetoa
self-organizingteam
Acommunitymayhaveatechnologist andcustomerswhoare centralto
thesuccessofaprojectaswellasmanyotherstakeholders(e.g.,legal
staff,qualityauditors, manufacturing orsalestypes)
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
IndustrialXP
Project charactering
Project itself to determine whether an appropriate business justification
for the project exists and the project will further overall goal-objectives
of organization.
Charteringalsoexaminesthecontext oftheprojecttodeterminehowit
complements,extends,orreplacesexistingsystemsorprocesses.
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
IndustrialXP
TestDrivenManagement
An IXP project requires measurable criteria for assessing the state of the
projectandthe progressthathas been madetodate.
Test-drivenmanagementestablishesa series of measurable
“destinations”andthen definesmechanismsfordeterminingwhetheror
notthese destinations havebeen reached.
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
IndustrialXP
Retrospectives
An IXP team conducts a specialized technical review after a software
incrementisdelivered.Calledaretrospective,
the review examines “issues, events, and lessons-learned” across a
software incrementand/ortheentiresoftware release.
The intentistoimprovetheIXPprocess.
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
IndustrialXP
ContinuousLearning
Becauselearningisavital partofcontinuousprocessimprovement,
membersofthe XPteamareencouragedtolearnnewmethodsand
techniquesthatcanlead toahigherqualityproduct.
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
OtherAgileProcessModels
ThemostwidelyusedofallagileprocessmodelsisExtremeProgramming
(XP).Butmanyotheragile processmodelshavebeenproposedandarein
useacrossthe industry.
Among themostcommonare:
AdaptiveSoftwareDevelopment (ASD)
Scrum
DynamicSystemsDevelopmentMethod(DSDM)
FeatureDrivenDevelopment (FDD)
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
Scrum
IsanagilesoftwaredevelopmentmethodthatwasconceivedbyJeff
Sutherlandand hisdevelopmentteam intheearly1990s.
Scrumprinciplesareconsistentwiththeagile manifesto
usedtoguidedevelopmentactivitieswithinaprocessthatincorporatesthe
followingframeworkactivities:
requirements
analysis
design
Evolution
delivery
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
Scrum
frameworkactivity,worktasks occurwithin aprocesspatterncalleda
sprint.
Theworkconductedwithin asprintisadaptedtotheproblem athandandis
definedandoften modifiedin realtimebytheScrumteam
Scrumemphasizesthe useofasetofsoftwareprocesspatternsthathave
proven effectiveforprojects withtighttimelines,changingrequirements,
andbusinesscriticality.
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
Scrum
Eachoftheseprocess patternsdefinesasetofdevelopmentactions:
Backlog—aprioritizedlistofprojectrequirementsorfeaturesthatprovide
businessvalue forthecustomer.Itemscanbeaddedtothebacklogat any
time(thisishowchangesare introduced).
The product manager assesses the backlog and updates priorities as
required.
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
Scrum
Sprints—consistofworkunitsthatarerequired toachievearequirement
definedinthebacklogthatmustbefitintoa predefinedtime-box.
Changesarenotintroducedduringthesprint.
Scrummeetings—are shortmeetingsheld daily bytheScrum team.
Threekeyquestionsareaskedandansweredbyallteammembers:
Whatdidyoudosincethelastteam meeting?
What obstaclesareyou encountering?
Whatdoyou plantoaccomplishbythe nextteammeeting?
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
Scrum
A team leader, called a Scrum master, leads the meeting and assesses the
responsesfromeachperson.
The Scrum meeting helps the team to uncover potential problems as early as
possible
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
Scrum
Demos—deliverthesoftwareincrementtothecustomersothat
functionalitythathasbeenimplementedcanbe demonstratedandevaluated
bythecustomer.
Itisimportanttonotethatthedemomaynotcontainallplanned
functionality, butratherthosefunctionsthatcanbedeliveredwithinthe
time-boxthatwasestablished
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
ScrumRole
AScrumteam consistsofthree roles:theScrumMaster,theproduct
owner,andthedevelopmentteam.
Whilethereisonly oneScrumMasterandoneproductowner,thereare
generallyseveraldevelopmentteammembers.
Scrumteamsaresmall.
TheScrumGuiderecommends10orfewertotalmemberstoensure optimal
communicationandproductivity
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
ScrumMaster
AScrumMaster isresponsibleforensuringaScrum team isoperatingas
effectively as possiblewithScrumvalues.
Thismeanstheykeepthe teamontrack,planandleadmeetings,andwork
outanyobstacles theteammightface
ScrumMastersmightalsoworkinalargerrolewithinanorganizationto
helpitincorporateScrumconceptsintotheirwork.
Becausetheyarebothaleaderandabehind-the-scenessupporter,theyare
oftendescribed asthe“servant leader”oftheScrumteam.
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
ScrumMaster
Scrum can look different from organization to organization and team to team,
making the specific tasks of a Scrum Master varied. Broadly, however, a Scrum Master
mighthavethefollowing responsibilities:
FacilitatedailyScrummeetings(alsocalled“dailystandups”)
Leadsprintplanningmeetings
Conduct “retrospective” reviews to see what went well and what can be improved
forthefollowingsprint
Keepapulseon teammembers,throughindividualmeetingsorothermeans of
communication.
Manageobstaclesthat ariseforthe teambycommunicatingwithstakeholders
outsideoftheteam
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
ProductOwner
AproductownerensurestheScrumteamalignswithoverallproduct
goals.
They understand thebusinessneedsoftheproduct,likecustomer
expectationsandmarkettrends.
Becausetheyhaveto understandhowtheScrumteamfitsintobigger
picturegoals,
productownersusuallystayintouchwithproductmanagersandother
stakeholdersoutsidetheteam.
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
ProductOwner
Productownersmightfindthemselveswiththefollowing responsibilities:
Managetheproductbacklogbyordering workbypriority
Settheproductvisionfor theteam
Communicatewithexternal stakeholdersandtranslatetheirneedsto
theteam
Makesuretheteam is focusedonhittingproductneedsthrough
communicationandevaluatingprogress
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
DevelopmentTeam
Adevelopmentteamiscomposedof professionalswhodothehands-on
workofcompletingthetasksinaScrumsprint.
Thismeansdevelopmentteam memberscan becomputerengineers,
designers,writers,dataanalysts,oranyotherroleneededtoreachsprint
goals.
Thedevelopment teamdoesn’tjustwaitfororders; they usuallycollaborate
tomapoutgoalsandplansforachievingthem.
Notall developmentteammemberswillalwayshavethesame
responsibilities
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
DevelopmentTeam
Developmentteamcanbetaskedwith the following:
Help insprint planningandgoalsetting
expertise toprogram,design,orimprove products
Usedatato findbestpracticesfor development
Testproductsandprototypes,plusotherformsofqualityassurance
Self-Organizedscrumsteams
SoftwareEngineeringModelingandDesign–Overview Agile Development Process
Mr. N. L. Shelake
SoftwareEngineeringModelingandDesign
ScrumCycleDescription
A Scrum sprint cycle is a time-boxed period when a team delivers a set
amount of work.
Itistypicallytwotofourweeksindurationandeachsprintstartsthe
momentthepreviousoneiscompleted.
TheScrumsprintcycleisoftenreferredtoas aprocessofcontinuous
development.
Itdeliversaconsistentworktaskforproductreleasesand keepsthe
project’s momentumgoinguntilcomplete.
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
Stages ofthe Scrum sprintcycle
TheofficialScrumGuidementionsfollowingeventsthatrepresentthe
Scrum sprintcycle
Sprintplanning-KickingofftheSprintanddefiningwhatneedstobe
completed
Daily Scrum-Developersmeetfor fifteen minuteseverydayto share
whattheyhaveworkedon, anyissuesblockingthem,andwhattheywill
beworking on next
Sprintreview-Evaluatewhatwasdeliveredanddecidewhatshouldbe
workedonin thenextsprint
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
Stages ofthe Scrum sprintcycle
Sprintretrospective-Areviewoftheprocesstoimprovethenextsprint
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
Sprintplanning
Sprintplanningisaneventinscrumthatdefineswhatcanbedeliveredin
the upcomingsprintandhowthatworkwillbe achieved.
Inscrum,thesprintis aset periodoftime whereallthe workisdone.
Sprintgoal,sprintstart-end,sprintagenda
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
Burndown ChartinScrum
Aburndownchartisagraphicalrepresentationofworklefttodoversus
time
Itisoften usedinagilesoftwaredevelopment methodologiessuchas
Scrum.
burn downchartscanbeappliedtoanyprojectcontainingmeasurable
progressovertime.
Typically,inaburndownchart, theoutstandingworkisoftenonthevertical
axis,withtimealongthe horizontal.
Itisuseful forpredictingwhenalloftheworkwillbecompleted.
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
Burndown ChartinScrum
IntheDailyScrumtheDevelopmentTeamupdates theSprintBurnDown
andplots the remainingworkoftheday.Aburndownchartisalmosta
“must”have toolforaScrumteamforthefollowingmainreasons:
monitoringtheprojectscope
Keepingtheteamrunningonschedule
Comparingthe plannedworkagainstthe teamprogression.
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
Burndown Chart inScrum
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
Sprint Review?
A sprint review is a key event in the Scrum framework for
agile software development.
It is held at the end of each sprint, which is a time-boxed
period of typically two to four weeks during which a
development team works on a set of prioritized user stories
or tasks.
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
Sprint Review?
During Review, demonstrates the work they have
completed during the sprint to the product owner,
stakeholders, and other members of the organization.
goal of the review is to assess the progress of the team,
obtain feedback from stakeholders, and planfor the next
sprint
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
Sprint Review?
typically involves a presentation of the working
software or product increment that the team has developed
during the sprint.
The team walks through the completed user stories or
tasks, highlighting any challenges or accomplishments that
occurred during the sprint
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
Sprint Review?
Stakeholders, including the product owner and other
members of the organization, are invited to provide
feedback on the work completed during the sprint.
They may ask questions or provide suggestions for
improvement. This feedback is then taken into consideration
when planning for the next sprint.
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
Sprint Review?
The sprint review is a critical event in the Scrum framework
that provides an opportunity for the development team to
showcase their work, obtain feedback, and plan for the
next sprint. It is a valuable tool for ensuring that the team is
on track and delivering value to stakeholders
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
Sprint Retrospective?
The development team reflects on the previous Sprint and
examineshow they can improve their processes, teamwork,
and collaboration.
The goal of the retrospective is to identify what went well,
what didn't go well, and what changes the team can make
to become more effective in the next Sprint.
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
Sprint Retrospective?
typically led by the Scrum Master,who facilitates the
discussion and helps the team identify areas for improvement
The team reviews the results of the Sprint, including the
completed user stories or tasks, any issuesthat arose, and
any feedback received from stakeholders during the Sprint
review.
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
Sprint Retrospective?
The team then identifies specific action items that they can
take to improve their processes, teamwork, and
collaboration, documented in a Sprint backlog and become
part of the plan for the next Sprint.
Tool for the development team to continuously improve
their processes and become more effective.
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
AgilePractices-Refactoring
Aconstructiontechniquethatisalsoamethodfordesignoptimization
Refactoring istheprocess ofchanging asoftwaresysteminsuchawaythat
it doesnotaltertheexternalbehavior ofthecodeyetimprovestheinternal
structure.
Refactoring allowsasoftwareengineer toimprovethe internalstructureofa
design (or source code) without changing its external functionality or
behavior.
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
Refactoring
Itisa disciplinedwaytocleanupcode[andmodify/simplifytheinternal
design]thatminimizesthechancesofintroducingbugs.
Inessence,whenyou refactoryouareimprovingthedesignofthecodeafter
ithas been written.
refactoring canbeused toimprovethe efficiency,readability,or
performance ofa design orthecodethatimplementsa design.
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
PairProgramming
XPrecommendsthat twopeopleworktogetheratonecomputerworkstation
to createcodefora story.
This provides a mechanism for realtime problem solving (two heads are
oftenbetterthanone)andreal-timequalityassurance (thecode isreviewed
asit iscreated).
Italsokeepsthedevelopersfocusedon the problemathand.Inpractice,
eachpersontakesonaslightlydifferentrole
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
PairProgramming
Forexample,
one personmightthinkaboutthecodingdetailsofaparticularportionof
the designwhilethe otherensuresthatcodingstandards(arequiredpartof
XP)arebeing followedorthatthecodefor thestorywillsatisfytheunit
testthathasbeendevelopedto validatethecode against thestory
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
PairProgramming+continuousintegration
As pairprogrammerscompletetheirwork,thecodetheydevelop is
integrated withtheworkofothers.Insome casesthisisperformedona
dailybasisbyanintegrationteam.
Inothercases,the pairprogrammershaveintegrationresponsibility.
This“continuousintegration”strategyhelps toavoidcompatibilityand
interfacingproblemsandprovidesa“testing”environmentthathelpsto
uncovererrorsearly
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
PairProgramming
Pairprogrammingcanbecharacterizedasacontinuousdesk check.Rather
thanschedulinga review atsome pointintime,
pairprogrammingencouragescontinuousreviewasaworkproduct(design
orcode)iscreated.
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
Test-DrivenDevelopment
Test Driven Development (TDD) is a software development practice
that focuses on creating unit test cases before developing the
actual code.
It is an iterative approach combining programming, unit test
creation, and refactoring.
The TDD approach originates from the Agile manifesto principles
and Extreme programming.
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
Test-DrivenDevelopment
As the name suggests, the test process drives software development.
Moreover, it’s a structuring practice that enables developers and testers
to obtain optimized code that proves resilientin the long term.
Developerscreatesmalltestcasesforeveryfeaturebasedontheir
initialunderstanding.Theprimaryintentionofthistechniqueisto
modifyorwritenewcodeonlyifthetestsfail.Thisprevents
duplicationoftestscripts.
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
Test-DrivenDevelopment
Requirements drive design,anddesignestablishesafoundation
for construction
Requirements forasoftwarecomponentserveasthe basis forthecreation
of aseriesoftestcasesthatexercisetheinterfaceandattempttofinderrors
in thedatastructuresand functionalitydeliveredbythecomponent
TDDisnotreallyanewtechnologybutratheratrend thatemphasizesthe
designoftestcases before thecreationofsourcecode.
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
Test-DrivenDevelopment
Calculator Function:
Whenbuildingacalculatorfunction,aTDDapproachwouldinvolvewriting
atestcaseforthe“add”functionandthenwritingthecodefortheprocessto
passthattest.
Oncethe“add”functionisworkingcorrectly,additionaltestcaseswouldbe
writtenforotherfunctionssuchas“subtract”,“multiply”and“divide”.
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
Test-DrivenDevelopment
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SoftwareEngineeringModelingandDesign
Agile Development Process Mr. N. L. Shelake Department of Information Technology
SCRIPTED TESTING EXPLORATORY TESTING
The test scripts can be traced back to
the original requirements and
specifications to demonstrate test
coverage.
In this testing no well-documented,
clear, and measurable test coverage.
All test scripts and test cases are
designed and reviewed in advance.
As with scripted testing, in this test
cases cannot be reviewed in advance.
At the end of the testing cycle, testers
can confirm if all the requirements
have been met or not.
As there are no clear and documented
test cases, there is no way to check
and confirm that all the requirements
have been met.
SoftwareEngineeringModelingandDesign
ThankYou
Agile Development Process Mr. N. L. Shelake Department of Information Technology