Chapter 1 Introduction to Software Engineering and Process Models.pdf

MeghaGupta952452 330 views 129 slides Jul 12, 2024
Slide 1
Slide 1 of 129
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54
Slide 55
55
Slide 56
56
Slide 57
57
Slide 58
58
Slide 59
59
Slide 60
60
Slide 61
61
Slide 62
62
Slide 63
63
Slide 64
64
Slide 65
65
Slide 66
66
Slide 67
67
Slide 68
68
Slide 69
69
Slide 70
70
Slide 71
71
Slide 72
72
Slide 73
73
Slide 74
74
Slide 75
75
Slide 76
76
Slide 77
77
Slide 78
78
Slide 79
79
Slide 80
80
Slide 81
81
Slide 82
82
Slide 83
83
Slide 84
84
Slide 85
85
Slide 86
86
Slide 87
87
Slide 88
88
Slide 89
89
Slide 90
90
Slide 91
91
Slide 92
92
Slide 93
93
Slide 94
94
Slide 95
95
Slide 96
96
Slide 97
97
Slide 98
98
Slide 99
99
Slide 100
100
Slide 101
101
Slide 102
102
Slide 103
103
Slide 104
104
Slide 105
105
Slide 106
106
Slide 107
107
Slide 108
108
Slide 109
109
Slide 110
110
Slide 111
111
Slide 112
112
Slide 113
113
Slide 114
114
Slide 115
115
Slide 116
116
Slide 117
117
Slide 118
118
Slide 119
119
Slide 120
120
Slide 121
121
Slide 122
122
Slide 123
123
Slide 124
124
Slide 125
125
Slide 126
126
Slide 127
127
Slide 128
128
Slide 129
129

About This Presentation

Chapter 1 Introduction to Software Engineering


Slide Content

Chapter 1
Introduction to Software
Engineeringand Process
Models
Megha V Gupta, NHITM

WhatisSoftwareEngineering?
Softwareismorethanjusta
programcode.Aprogramisan
executablecode,whichserves
somecomputationalpurpose.
Softwareisconsideredtobea
collectionof executable
programmingcode,associated
libraries,anddocumentation.
Software,whenmadefora
specificrequirementiscalleda
softwareproduct
Engineering,ontheotherhand,isall
aboutdevelopingproducts,using
well-defined,scientificprinciplesand
methods.
EngineeringSoftware
2

3
Softwareis:
Softwareis:
(1) instructions (computer programs) that when executed provide desiredfeatures,
function, andperformance
(2) data structures that enable the programs to adequately manipulate information
and
(3) documentation that describes the operation and use of theprograms

Software Engineering -Defined
(IEEE) The application of a systematic, disciplined, quantifiable approach to the
development, operation, and maintenance of software; that is, the application of
engineering to software
(1969)Softwareengineeringistheestablishmentanduseofsoundengineering
principlesinordertoobtaineconomicallysoftwarethatisreliableandworks
efficientlyonrealmachines
Fritz Bauer, a German computer scientist, defines software
engineering as:
Wecandefinesoftwareengineeringasanengineeringbranchassociatedwiththe
developmentofsoftwareproductusingwell-definedscientificprinciples,methodsand
procedures.Theoutcomeofsoftwareengineeringisanefficientandreliablesoftware
product.

NEED OF SOFTWAREENGINEERING
9
1 3 5
642
Largesoftware Cost
Quality
Management
Scalability
DynamicNature Reduce
Complexity

6
Theneedforsoftwareengineeringarisesbecauseofahigherrateofchangeinuser
requirementsandenvironmentinwhichthesoftwareisworking.
❖Largesoftware-Itiseasiertobuildawallthanahouseorbuilding,likewise,asthe
sizeofsoftwarebecomeslarge,engineeringhastosteptogiveitascientificprocess.
❖Scalability-Ifthesoftwareprocesswerenotbasedonscientificandengineering
concepts,itwouldbeeasiertore-createnewsoftwarethantoscaleanexistingone.
❖Cost-Asthehardwareindustryhasshownitsskillsandhugemanufacturinghas
loweredthepriceofcomputerandelectronichardware.Butthecostofthesoftware
remainshighiftheproperprocessisnotadapted.
NEED OF SOFTWAREENGINEERING

❖DynamicNature-Thealwaysgrowingandadaptingnatureofsoftware
hugelydependsupontheenvironmentinwhichtheuserworks.Ifthenatureof
softwareisalwayschanging,newenhancementsneedtobedonetothe
existingone.Thisiswheresoftwareengineeringplaysagoodrole.
❖QualityManagement-Thebetterprocessofsoftwaredevelopmentprovides
betterandqualitysoftwareproducts.
❖ReduceComplexity-Bigsoftwareisalwayscomplicatedandchallengingto
progress.Softwareengineeringhasagreatsolutiontoreducethecomplicationofany
project.Softwareengineeringdividesbigproblemsintovarioussmallissues.And
thenstartsolvingeachsmallissueonebyone.Allthesesmallproblemsaresolved
independentlyofeachother.
NEED OF SOFTWAREENGINEERING

CHARACTERISTICS OF A GOOD
SOFTWARE
Operational
8
TransitionalMaintenance

Operational
9
Budget
Usability
Efficiency
Correctness
Functionality
Dependability
Security
Safety
Inoperationalcategories,thefactorsthatdecidethesoftwareperformancein
operations.Itcanbemeasuredon:

Transitional
10
Portability
Interoperability
Reusability
Adaptability
Whenthesoftwareismovedfromoneplatformtoanother,thefactorsdeciding
thesoftwarequality:

Maintenance
11
Modularity
Maintainability
Flexibility
Scalability
In this category all factors are included that describe how well a software has the
capabilities to maintain itself in the ever-changing environment:

Software Engineering: A Layered Technology
•Any engineering approach must rest on an organizational commitment to quality.
•The bedrock that supports Software Engineering is a quality focus.
•Quality is the “degree of goodness”. It cant be measured directly. It should have the following
characteristics: Correctness, Maintainability, Integrity, and Usability.

Aqualityfocus:
•Itdefinesthecontinuousprocessimprovementprinciplesof
software.
•Itprovidesintegritywhichmeansprovidingsecuritytothe
softwaresothatdatacanbeaccessedbyonlyanauthorized
person,nooutsidercanaccessthedata.
•Italsofocusesonmaintainabilityandusability.
Process:
•Itisthefoundationorbaselayerofsoftwareengineering.
•Itisthekeythatbindsallthelayerstogetherwhichenables
thedevelopmentofsoftwarebeforethedeadlineoron
time.
•Processdefinesaframeworkthatmustbeestablishedfor
theeffectivedeliveryofsoftwareengineeringtechnology.
Thesoftwareprocesscoversalltheactivities,actions,and
tasksrequiredtobecarriedoutforsoftwaredevelopment.
Software Engineering: A Layered Technology

Method:
•Duringtheprocessofsoftwaredevelopmenttheanswerstoall
“how-to-do”questionsaregivenbymethod.
•Ithastheinformationonallthetaskswhichinclude
communication,requirementanalysis,designmodeling,program
construction,testing,andsupport.
Tools:
•Softwareengineeringtoolsprovideaself-operatingsystemfor
processesandmethods.
•Toolsareintegratedwhichmeansinformationcreatedbyonetool
canbeusedbyanother.
•Provideautomatedorsemi-automatedsupportfortheprocess
andmethods(i.e.,Computer-aidedsoftwareengineeringCASE
tools)
Software Engineering: A Layered Technology

What is a Process?
(Webster) A system of operations in producing something; a
series of actions, changes, or functions that achieve an end or a
result
(IEEE) A sequence of steps performed for a given purpose
•Aprocessis acollectionofactivities,actions,andtasksthatareperformedwhen some
work product is to becreated
•A process is not a rigid prescription for how to build thesoftware ratheritis an adaptable
approachthatenablesthepeopledoingtheworktopickandchoosethe appropriate
set of work actions andtasks

Software Process/ Software Process
Framework
•A Software Engineering process is the model selected for managing the creation of software from
customer initiation to the release of the finished product.
•Software process models can be prescriptive or agile, complex or simple, all-encompassing or
targeted, but in every case, 5 key activities must occur.
•The framework activities are applicable to all projects and all applications domains, and they are a
template for every process model
The framework is a standard way to build anddeploy applications.
▪It is a foundation of the complete software engineeringprocess.
▪Includes a set ofumbrella activities.
16

Process framework
•Eachframeworkactivityispopulatedbyasetof
softwareengineeringactions
•Eachactionispopulatedwithindividualworktasks
thataccomplishsomepartoftheworkimpliedbythe
action.
•EachSoftwareEngineeringactionisrepresentedby
anumberofdifferenttasksets,eachacollectionof
SoftwareEngineeringworktasks,relatedwork
products,qualityassurancepoints,andproject
milestones.
•Thetasksetthatbestaccommodatestheneedsofthe
projectandthecharacteristicsoftheteamischosen.

Generic Process Framework
18
Thefollowinggenericprocessframeworkisapplicabletothevastmajorityofs/w
projects

A generic process framework encompassesfive
activities which are given below one byone:
1
2 3
19

A generic process framework encompassesfive
activities which are given below one byone:
4
5
20

UmbrellaActivities
•TheframeworkdescribedinthegenericviewofSoftwareEngineering
iscomplementedbyanumberofumbrellaactivities
•Umbrellaactivitiesareasetofproceduresthatthesoftware
engineeringteamfollowstomaintaintheprogress,quality,change
andrisksoftheoveralldevelopmenttasks.
•Thesestepsofumbrellaactivitieswillevolvethroughthephasesofa
genericviewofsoftwaredevelopment.

UmbrellaActivities
1. Software Project Tracking and
Control
2. Formal TechnicalReviews
3. Software QualityAssurance 4. SoftwareConfiguration
Management
5. Document Preparationand
Production
6. Re-usabilityManagement
7.Measurement andMetrics
8.RiskManagement

UmbrellaActivities

Immature Software Organizations
•Softwareprocessesaregenerallyimprovised
•Ifaprocessisspecified,itisnotrigorouslyfollowedor
enforced
•Thesoftwareorganizationisreactionary
•Managersonlyfocusonsolvingimmediate(crisis)problems
•Schedulesandbudgetsareroutinelyexceededbecausethey
arenotbasedonrealisticestimates
•Whenharddeadlinesareimposed,productfunctionalityand
qualityareoftencompromised
•Thereisnobasisforjudgingprocessqualityorforsolving
productorprocessproblems
•Activitiessuchasreviewsandtestingarecurtailedor
eliminatedwhenprojectsfallbehindschedule

What is CMM?
•CMM:CapabilityMaturityModel
•Developedin1987bytheSoftwareEngineeringInstitute(SEI)atCarnegie-
MellonUniversityunderthesponsorshipofDARPA
•Amethodologyusedtodevelopandrefineanorganization’ssoftware
developmentprocess.
•Describesa5-levelevolutionaryimprovementpathforsoftware
organizationsfromanAdhoc,immatureprocesstoamature,disciplinedone.
•TheCapabilityMaturityModel(CMM)wasfirstdefinedin1989inthebook
“ManagingSoftwareProcesses”byWattsHumphrey.
•ItwasoriginallydevelopedbytheUSDepartmentofDefencetogauge
whethergovernmentcontractorswereabletosuccessfullycomplete
softwareprojects.

29
CapabilityMaturityModel(CMM)Overview
❑Itscoretheoryisbasedonthepremisethathigh-qualitysoftwarecanonlybeproducedby
high-qualityprocesses.Intheory,thisallowsdeveloperstorepeattheirsuccessesandavoid
repeatingtheirfailures.
❑Providesguidanceonhowtogaincontrolofprocessesfordevelopingandmaintaining
softwareandhowtoevolvetowardacultureofsoftwareengineeringandmanagement
excellence.
❑Thisconceptofassessinganorganization’smaturityonaspecificcapabilitycanbeapplied
inanyareaofabusinesswhereprocessesarerequiredtomatureovertime.
❑Asanorganizationmatures,thesoftwareprocessbecomesbetterdefinedandmore
consistentlyimplementedthroughouttheorganization
❑Softwareprocessmaturityistheextenttowhichaspecificprocessisexplicitlydefined,
managed,measured,controlled,andeffective

5 Levels of CMM
27
Stage1:
DuringtheInitialstage,processesaread-hoc,
inconsistent,andevenchaotic.Therearevery
fewformalprocessesandsuccessisbasedupon
individualeffort.Thisisthestartingpointof
definingprocesses.
Stage2:
DuringtheRepeatablestage,basicand
consistentprocessesareestablished.The
processesarerepeatedforsimilarprojects.
Stage3:
DuringtheDefinedstage,allprocessesarewell
defined, documented,standardized,and
integratedusuallyintosoftwarefortheentire
organization.Consistentpracticesareinplace.

5 Levels of CMM
Stage4:DuringtheManaged
stage,strategicanalysisis
performedthroughdatacollected
onthequalityofprocesses.
Softwareandprocessesareclearly
quantified.
Stage5:DuringtheOptimizing
stage, pro-active process
improvement isimplemented
throughqualitativefeedback.This
helpsindevelopingnewideasand
technologies.

Characteristics of Each Level
InitialLevel(Level1)
•Characterizedasadhoc,andoccasionallyevenchaotic
•Fewprocessesaredefined,andsuccessdependsonindividualeffort
Repeatable(Level2)
•Basicprojectmanagementprocessesareestablishedtotrackcost,schedule,andfunctionality
•Thenecessaryprocessdisciplineisinplacetorepeatearliersuccessesonprojectswithsimilar
applications
Defined(Level3)
•Thesoftwareprocessforbothmanagementandengineeringactivitiesisdocumented,
standardized,andintegratedintoastandardsoftwareprocessfortheorganization
•Allprojectsuseanapproved,tailoredversionoftheorganization'sstandardsoftwareprocessfor
developingandmaintainingsoftware
Managed(Level4)
•Detailedmeasuresofthesoftwareprocessandproductqualityarecollected
•Boththesoftwareprocessandproductsarequantitativelyunderstoodandcontrolled
Optimized(Level5)
•Continuousprocessimprovementisenabledbyquantitativefeedbackfromtheprocessandfrom
pilotinginnovativeideasandtechnologies

Key Process Areas

LIMITATIONS OF THECMM
32
Themodelwasdevelopedtoevaluatethecapabilityofgovernment
contractorstodevelopsoftware.Inreallife,however,well-
documentedprocessesandproceduresdonotnecessarilycreate
successfulsoftwareprojects.

Software Process Models
•Tosolveactualproblemsinanindustrysetting,asoftwareengineerora
teamofengineersmustincorporateadevelopmentstrategythat
encompassestheprocess,methods,andtoolslayersandthegeneric
phases.
Thisstrategyisoftenreferredtoasaprocessmodelorasoftware
engineeringparadigm.
•Aprocessmodelforsoftwareengineeringischosenbasedonthenature
oftheprojectandapplication,themethodsandtoolstobeused,andthe
controlsanddeliverablesthatarerequired.
•Asoftwareprocessmodelisanabstractrepresentationofaprocess.It
presentsadescriptionofaprocess.

Process description
•Whenwedescribeanddiscussprocesses,weusuallytalkaboutthe
activitiesintheseprocessessuchasspecifyingadatamodel,designing
auserinterface,etc.,andtheorderingoftheseactivities.
•Processdescriptionsmayalsoinclude:
oProducts,whicharetheoutcomesofaprocessactivity;
oRoles,whichreflecttheresponsibilitiesofthepeopleinvolvedinthe
process;
oPre-andpost-conditions,whicharestatementsthataretruebeforeand
afteraprocessactivityhasbeenenactedoraproductproduced.
oNotation:activities,products

35
Prescriptive Process Models
•Definesadistinctsetofactivities,actions,tasks,milestones,andworkproductsthatare
requiredtoengineerhigh-qualitysoftware.
•PrescriptiveprocessmodelsadvocateanorderlyapproachtoSoftwareEngineering.
1)TheWaterfallmodel
2)Incrementalmodel
3)Evolutionaryprocessmodel
4)Specializedprocessmodel
•Theseprocessmodelsarecalled“prescriptive”becausetheyprescribeasetofprocess
elements—frameworkactivities,softwareengineeringactions,tasks,workproducts,quality
assurance,andchangecontrolmechanismsforeachproject.
•Eachprocessmodelalsoprescribesaprocessflow(alsocalledaworkflow)—thatis,the
mannerinwhichtheprocesselementsareinterrelatedtooneanother.

36
Waterfall Model
(Diagram)
Communication
Project initiation
Requirements
gathering
Planning
Estimating
Scheduling
Tracking Modeling
Analysis
Design
Construction
Code
Test
Deployment
Delivery
Support
Feedback

37
Waterfall Model
(Description)
•Oldestsoftwarelifecyclemodelandbestunderstoodbyupper
management
•Usedwhenrequirementsarewellunderstoodandriskislow
•Workflowisinalinear(i.e.,sequential)fashion
•Usedoftenwithwell-definedadaptationsorenhancementsto
currentsoftware
Manypeopledismissthewaterfallasobsoleteanditcertainlydoeshaveproblems.Butthis
modelcanstillbeusedinsomesituations.

38
Waterfall Model
(Problems)
•Doesn'tsupportiteration,sochangescancauseconfusion
•Difficultforcustomerstostateallrequirementsexplicitlyand
upfront
•Requirescustomerpatiencebecauseaworkingversionof
theprogramdoesn'toccuruntilthefinalphase
•Problemscanbesomewhatalleviatedinthemodelthrough
theadditionoffeedbackloops(seethenextslide)

39
Waterfall Model with Feedback
(Diagram)
Communication
Project initiation
Requirements
gathering
Planning
Estimating
Scheduling
Tracking Modeling
Analysis
Design
Construction
Code
Test
Deployment
Delivery
Support
Feedback

IncrementalProcess
Models
40
•Tendtobeamongthemostwidelyused(andeffective)intheindustry.
•Itcombineselementsofthewaterfallmodelappliedinaniterativefashion.Themodel
applieslinearsequencesinastaggeredfashionascalendartimeprogresses.
•Eachlinearsequenceproducesdeliverable“increments”ofthesoftware.(Ex:aWord
Processordeliversbasicfilemgmt.,andediting,inthefirstincrement;more
sophisticatedediting,anddocumentproductioncapabilitiesinthe2
nd
increment;
spellingandgrammarcheckinginthe3
rd
increment.
•Whenanincrementmodelisused,the1
st
incrementisoftenacoreproduct.Thecore
productisusedbythecustomer.
•Asaresultofuseand/orevaluation,aplanisdevelopedforthenextincrement.
•Theplanaddressesthemodificationofthecoreproducttobettermeettheneedsof
thecustomerandthedeliveryofadditionalfeaturesandfunctionality.

41
Incremental Model
(Diagram)
Communication
Planning
Modeling
Construction
Deployment
Communication
Planning
Modeling
Construction
Deployment
Communication
Planning
Modeling
Construction
Deployment
Increment #1
Increment #2
Increment #3

42
Incremental Model
(Description)
•Used when requirements are well understood
•Multiple independent deliveries are identified
•Work flow is in a linear (i.e., sequential) fashion withinan increment
and is staggered betweenincrements
•Iterative in nature; focuses on an operational product with each
increment
•Provides a needed set of functionality sooner while delivering optional
components later
•Useful also when staffing is too short for a full-scale development

IncrementalProcess Model
43
•Theprocessisrepeatedfollowingthedeliveryofeachincrementuntilthe
completeproductisproduced.
•Ifthecustomerdemandsdeliverybyadatethatisimpossibletomeet,suggest
deliveringoneormoreincrementsbythatdateandtherestoftheSoftware
later.

44
IncrementalProcess Model
❖Oncethecustomerassessesthecoreproduct,thereisaplandevelopedforthenextincrement.Thus,
ineveryincrement,theneedsoftheclientarekeptinmind,morefeaturesandfunctionsareadded,and
thecoreproductisupdated.
❖Thisprocesscontinuesuntilthecompleteproductisproduced.
❖Theincrementsearliertothemainincrementarecalled“strippeddown”versionsofthefinalproduct.
Theseincreasesformabaseforcustomerevaluation.Onthisbasis,theclientcansuggestnew
requirementsifrequired.
❖Ifthereareasmallernumberofemployeestoworkontheproject,theIncrementaldevelopmentmodel
isextremelyusefultocompletetheprojectbeforethedeadline.Inaproject,earlyincrementscanbe
donewithasmallernumberofpeople.
❖Incasethecoreproductiswell-definedandunderstood,moreemployeescouldbeaddedifneededin
futureincrements.
❖OneofthebenefitsoftheIncrementalprocessmodelisthatitcanbeplannedtomanage
technicalrisks.

45
AdvantagesofIncrementalModel
❖Initialproductdeliveryisfaster.
❖Lowerinitialdeliverycost.
❖Thecoreproductisdevelopedfirsti.e.mainfunctionalityisaddedin
thefirstincrement.
❖Aftereachiteration,regressiontestingshouldbeconducted.During
thistesting,faultyelementsofthesoftwarecanbequicklyidentified
becausefewchangesaremadewithinanysingleiteration.
❖Itiseasiertotestanddebugthanothermethodsofsoftware
developmentbecausesmallerchangesaremadeduringeachiteration.
Thisallowsformoretargetedandrigoroustestingofeachelement
withintheoverallproduct.
❖Witheachrelease,anewfeatureisaddedtotheproduct.
❖Customerscanrespondtofeaturesandreviewtheproduct.
❖Riskofchangingrequirementsisreduced
❖Theworkloadisless.
DisadvantagesofIncrementalModel
❖Requiresgoodanalysis.
❖Resultingcostmayexceed
thecostoftheorganization.
❖Eachphaseofaniterationis
rigidanddoesnotoverlap
eachother
❖Asadditionalfunctionalityis
addedtotheproduct,problems
mayariserelatedtosystem
architecturewhichwasnot
evidentinearlierprototypes.

What are the advantages of an incrementalmodel?
•Customer feedback is received after the delivery of eachcomponent.
•Risk of requirement changes isreduced
•Moreflexible
•Easy totestanddebug
•Give quickresults
What are the disadvantages of an incrementalmodel?
•Needs a proper plan to integrate thecomponents
•Needs a proper design to integrate thecomponents
•More expansive as compared to the waterfallmodel.
When to use the incrementalmodel?
•Whenmajorrequirementsareunderstoodbutsomerequirementscanevolve
within the passage oftime.
•When product launch in the market is gettinglate.
•Whenacustomerhasnoproblemwiththebudgetbuthedemandsmoreand
morequality insoftware.
46

DifferenceBetweenWaterfallandIncrementalModel
47

RAD Model
•RapidApplicationDevelopment(RAD)isanincremental
softwareprocessmodelthatemphasizesashort
developmentcycle.
•RADisa“high-speed”adaptationofthewaterfallmodel,in
whichrapiddevelopmentisachievedbyusingacomponent-
basedconstructionapproach.
•Ifrequirementsarewellunderstoodandprojectscopeis
constrained,theRADprocessenablesadevelopmentteam
tocreateafullyfunctionalsystemwithinashortperiodof
time.

RAD ModelCommunication
Planning
Modeling
business modeling
data modeling
process modeling
Construction
component reuse
automatic code
generation
testing
Deployment
60 - 90 days
Team # 1
Modeling
business modeling
data modeling
process modeling
Construction
component reuse
automatic code
generation
testing
Modeling
business modeling
data modeling
process modeling
Construction
component reuse
automatic code
generation
testing
Team # 2
Team # n
integration
delivery
feedback

What are the drawbacks of the
RAD model?
•Forlarge,butscalableprojects,RADrequiressufficient
humanresourcestocreatetherightnumberofRADteams.
•Ifdevelopersandcustomersarenotcommittedtotherapid-
fireactivitiesnecessarytocompletethesysteminamuch
abbreviatedtimeframe,theRADprojectwillfail.
•Ifasystemcannotproperlybemodularized,buildingthe
componentsnecessaryforRADwillbeproblematic.

Evolutionary Process Models
•Softwareevolvesoveraperiodoftime;businessandproduct
requirementsoftenchangeasdevelopmentproceeds,making
astraight-linepathtoanendproductunrealistic.
•SoftwareEngineeringneedsaprocessmodelthathasbeen
explicitlydesignedtoaccommodateaproductthatevolves
overtime.
•Evolutionaryprocessmodelsareiterative.Theyproduce
increasinglymorecompleteversionsoftheSoftwarewith
eachiteration

Quiz
RAD stands for
a) Relative Application Development
b) Rapid Application Development
c) Rapid Application Document
d) None of the mentioned

Quiz
If you were a lead developer of a software company and
you are asked to submit a project/product within a
stipulated time-frame with no cost barriers, which model
would you select?
a) Waterfall
b) Spiral
c) RAD
d) Incremental

Quiz
Which of the following activities of a Generic Process
framework provides a feedback report?
a) Communication
b) Planning
c) Modeling & Construction
d) Deployment

Quiz
Which one of the following is not an Umbrella Activity
a) Reusability management
b) Risk management
c) Measurement
d) User Reviews

56
Prototyping Model
(Diagram)
Communication
Quick
Planning
Modeling
Quick Design
Construction
Of Prototype
Deployment,
Delivery,
and Feedback
Start

Prototyping Model
•Customersoftendefineasetofgeneralobjectivesforsoftwarebutdon’tidentifydetailedinput,processing,orinput
requirements.
•PrototypingparadigmassiststheSoftwareengineeringandthecustomertobetterunderstandwhatistobebuilt
whenrequirementsarefuzzy.
•TheprototypingparadigmbeginswithcommunicationwheretherequirementsandgoalsofSoftwarearedefined.
•Prototypingiterationisplannedquicklyandmodelingintheformofquickdesignoccurs.
•Followsanevolutionaryanditerativeapproach
•Usedwhenrequirementsarenotwellunderstood
•Servesasamechanismforidentifyingsoftwarerequirements
•Focusesonthoseaspectsofthesoftwarethatarevisibletothecustomer/user
•Feedbackisusedtorefinetheprototype

58
Prototyping Model (Description)
•The quick design focuses on a representation of
those aspects of the Software that will be visible
to the customer “Human interface”.
•The quick design leads to the Construction of
the Prototype.
•The prototype is deployed and then evaluated
by the customer.
•Feedback is used to refine requirements for the
Software.
•Iteration occurs as the prototype is tuned to
satisfy the needs of the customer while enabling
the developer to better understand what needs
to be done.Communication
Quick plan
Construction
of
prototype
Modeling
Quick design
Delivery
& Feedback
Deployment

Prototyping Model (Problems and Lessons)
Theprototypecanserveasthe“firstsystem”.Bothcustomersanddeveloperslike
theprototypingparadigmasusersgetafeelfortheactualsystem,anddevelopers
gettobuildSoftwareimmediately.Yet,prototypingcanbeproblematic:
a.Thecustomerseesa"workingversion"ofthesoftware,wantstostopall
development,andthenbuystheprototypeaftera"fewfixes"aremade
b.Developersoftenmakeimplementationcompromisestogetthesoftwarerunning
quickly(e.g.,languagechoice,userinterface,operatingsystemchoice,
inefficientalgorithms)
Lessonlearned
•Definetherulesupfrontonthefinaldispositionoftheprototypebeforeitis
built
•Inmostcircumstances,plantodiscardtheprototypeandengineertheactual
productionsoftwarewithagoalofquality

SpiralModel
60communication
planning
modeling
construction
deployment
delivery
feedback
start
analysis
design
code
test
estimation
scheduling
risk analysis
Thespiralmodelisanevolutionarysoftware
processmodelthatcouplestheiterativenatureof
prototypingwiththecontrolledandsystematic
aspectsofthewaterfallmodel.
Ithastwodistinguishingfeatures:
a.Acyclicapproachforincrementallygrowing
asystem’sdegreeofdefinitionand
implementationwhiledecreasingitsdegree
ofrisk.
b.Asetofanchorpointmilestonesforensuring
stakeholdercommitmenttofeasibleand
mutuallysatisfactorysolutions.
•Anchor-pointmilestones–acombinationofwork
productsandconditionsthatareattainedalongthepath
ofthespiral-arenotedforeachevolutionarypass.

61
Spiral Model (Description)
•InventedbyDr.BarryBoehmin1988
•Followsanevolutionaryapproach
•Usedwhenrequirementsarenotwellunderstoodandrisksarehigh
•Innerspiralsfocusonidentifyingsoftwarerequirementsandprojectrisks;mayalso
incorporateprototyping.Outerspiralstakeonaclassicalwaterfallapproachafter
requirementshavebeendefined,butpermititerativegrowthofthesoftware
•Operatesasarisk-drivenmodel…ago/no-godecisionoccursaftereachcomplete
spiralinordertoreacttoriskdeterminations
•Requiresconsiderableexpertiseinriskassessment
•Servesasarealisticmodelforlarge-scalesoftwaredevelopment

Quiz
__________ is not suitable for accommodating any change?
a) RAD Model
b) Waterfall Model
c) Build & Fix Model
d) Prototyping Model

Quiz
ThemajordrawbackofRADmodelis__________.
1.Itrequireshighlyskilleddevelopers/designers.
2.Itnecessitatescustomerfeedbacks.
3.Itincreasesthecomponentreusability.
4.Both(a)&(c)

Quiz
The spiral model was originally proposed by
a) IBM
b) Barry Boehm
c) Pressman
d) Royce

SpiralModel
•Duringtheearlystages,thereleasemightbea
papermodelorprototype.
•Duringlateriterations,increasinglymore
completeversionsoftheengineeredsystem
areproduced.
•Aspiralmodelisdividedintoasetof
frameworkactivitiesdividedbytheSoftware
engineeringteam.
•Asthisevolutionaryprocessbegins,the
Softwareteamperformsactivitiesthatare
impliedbyacircuitaroundthespiralina
clockwisedirection,beginningatthecenter.
•Riskisconsideredaseachrevolutionismade.

SpiralModel
•Thefirstcircuitaroundthespiralmightresultin
thedevelopmentofaproductspecification;
subsequentpassesaroundthespiralmightbe
usedtodevelopaprototypeandthen
progressivelymoresophisticatedversionsof
theSoftware.
•Eachpassthroughtheplanningregionresultsin
adjustmentstotheprojectplan.Costand
scheduleareadjustedbasedonfeedback
derivedfromthecustomerafterdelivery.
•Unlikeotherprocessmodelsthatendwhen
Softwareisdelivered,thespiralmodelcanbe
adaptedtoapplythroughoutthelifeofthe
Software.communication
planning
modeling
construction
deployment
delivery
feedback
start
analysis
design
code
test
estimation
scheduling
risk analysis

Agile Methodologies
•Theprofessionalgoalofeverysoftwareengineer,andeverydevelopmentteam,isto
deliverthehighestpossiblevaluetoouremployersandcustomers.Andyet,ourprojects
failorfailtodelivervalue,atadismayingrate.
•Thoughwell-intentioned,theupwardspiralofprocessinflationisculpableforatleast
someofthisfailure.
•Theprinciplesandvaluesofagilesoftwaredevelopmentwereformedasawaytohelp
teamsbreakthecycleofprocessinflationandfocusonsimpletechniquesforreaching
theirgoals.
•Atthetimeofthiswritingthereweremanyagileprocessestochoosefrom.These
include
SCRUM,
Crystal,
FeatureDrivenDevelopment(FDD),
AdaptiveSoftwareDevelopment(ADP),andmostsignificantly,
ExtremeProgramming(XP).
Others…

Agile Methodologies
•Aswecametoknowthattraditionalsoftwaredevelopmentapproachesaremore
mechanisticandconcentratemoreonProcesses,tools,contracts,andplans.In
contrasttotraditionalmethods,agilemethodskeeptheemphasisoninteraction,
workingsoftware,embracingchangeatanymomentoftheproject,andcustomer
relationships.
•Themethodcanbeagileifitis:
Incremental
Cooperative
Straightforward
Adaptive
•“Agileviewismorepeople-centricratherthanplan-centric.”Agilemethodsarenot
definedbyasmallsetofprinciples,practices,andtechniques.Itcreatesastrategic
capabilitythathasthecapabilityofrespondingtochange,thecapabilitytobalancethe
structureandflexibility,capabilityofinnovationandcreationthroughdevelopmentteam
anduncertainty.

Agile methods
•Dissatisfactionwiththeoverheadsinvolvedin
softwaredesignmethodsofthe1980sand1990sled
tothecreationofagilemethods.Thesemethods:
•Focusonthecoderatherthanthedesign
•Arebasedonaniterativeapproachtosoftwaredevelopment
•Areintendedtodeliverworkingsoftwarequicklyandevolvethisquickly
tomeetchangingrequirements.
•Theaimofagilemethodsistoreduceoverheadsin
thesoftwareprocess(e.g.bylimitingdocumentation)
andtobeabletorespondquicklytochanging
requirementswithoutexcessiverework.

Agile manifesto
•Weareuncoveringbetterwaysofdeveloping
softwarebydoingitandhelpingothersdoit.
Throughthisworkwehavecometovalue:
•Individualsandinteractionsoverprocessesandtools
•Workingsoftwareovercomprehensivedocumentation
•Customercollaborationovercontractnegotiation
•Respondingtochangeoverfollowingaplan
•Thatis,whilethereisvalueintheitemsonthe
right,wevaluetheitemsontheleftmore.

72
12PrinciplesofAgileManifesto
1.Thefirst principleistotakeacustomer-orientedapproachandkeepthemupdated.
2.Make changes whenever and wherever required, even at the end of the development stage
for any competitivechanges.
3.Delivering the software to customers on time with moreflexibility.
4.Collaboration between Business and developmentteams.
5.Give support and motivation to the team member who shows interest in the project. Give
them that extra work they would like to do, and trust them to get the jobdone.
6.Have a face-to-face interactionwith theteam.
7.Working software is the primary measure ofprogress.
8.Agile processes promote sustainable development forall.
9.Continuous attention to technical excellence and good design enhancesagility.
10.The simplicity of the agileenvironment.
11.The best practices come from self-organizingteams.
12.Work effectively within cross-functionalteams.

75
ImportantAspectsofAgileProjectManagement
TocreateameaningfuliterationaskingwiththeSoftwaredevelopmentcycles.The4major
pointscreatedawaymoretransparencyintheprojectapproachforsuccess.
●TeamInteraction:Inthesoftwaredevelopmentprocess,ratherthanjusttoldand
processes,thereisaneedforteamInteraction.Thatiswhenaprojectcanleadto
successinaveryefficientway.
●SimplifiedApproach:Agilemethodologyisbasedonworkingonchunkscalled
”sprints”.Thisleadstoasimplifiedapproachtocontinuousdevelopment.
●CustomerCollaboration:Thecustomer’sinvolvementintheprojectplaysavery
importantroleinAgilemanagementsothattheprojectiscustomer-oriented.
●RespondtotheImmediateChanges:Ifthereareanychangesmadeduringanyof
thedevelopmentstages.Immediatechangescanbeimplementedinagile.

Extreme Programming
•A very influential agile method, developed in the late 1990s, that
introduced a range of agile development techniques.
•Extreme Programming (XP) takes an ‘extreme’ approach to iterative
development.
New versions may be built several times per day;
Increments are delivered to customers approx. every 2 weeks;
Alltests must be run for every build and the build is only accepted if tests run
successfully.
15

ExtremeProgramming
❖XP is a lightweight, Efficient, Low risk, Flexible, predictable,
scientific, and fun way to develop asoftware
❖Small to a medium team that worksunder vague and rapidly
changingrequirements
❖It follows Object OrientedApproach

Values of extreme programming
XPhassimplerulesthatarebasedon5valuestoguideteamwork:
1.Communication.XPstressestheimportanceoftheappropriatekindof
communication–face-to-facediscussionwiththeaidofawhiteboardorotherdrawing
mechanism.
2.Simplicity.Developersstrivetowritesimplecodebringingmorevaluetoaproduct,as
itsavestimeandeffort.Simplicityalsomeansaddressonlytherequirementsthatyou
knowabout;don’ttrytopredictthefuture.
3.Feedback.Teammembersdeliversoftwarefrequently,getfeedbackaboutit,and
improveaproductaccordingtothenewrequirements.
4.Courage.Programmersobjectivelyevaluatetheirownresultswithoutmakingexcuses
andarealwaysreadytorespondtochanges.Youneedthecouragetoraise
organizationalissuesthatreduceyourteam’seffectiveness.Youneedthecourageto
stopdoingsomethingthatdoesn’tworkandtrysomethingelse.Youneedthecourage
toacceptandactonfeedback,evenwhenit’sdifficulttoaccept.
Respect.Themembersofyourteamneedtorespecteachotherinorderto
communicatewitheachother,provideandacceptfeedbackthathonorsyour
relationship,andworktogethertoidentifysimpledesignsandsolutions.

XP Fundamentals by Kent Beck
•Write unit tests beforeprogramming; keeping all tests running at all times.
•Integrating and testing the whole system--several times a day.
•Producing all software in pairs, two programmers at one screen.
•Starting projects with simple design. A simple design can evolve.
•Putting a minimal system into production quickly and growing it in whatever
directions prove most valuable.

XP and Agile Principles
Incremental development is supported through small, frequent system
releases.
Customer involvement means full-timecustomer engagement with the
team.
People not process through pair programming, collective ownership,
and a processthat avoids long working hours.
Changesupported through regular system releases.
Maintaining simplicity through constant refactoringof code.
16

Influential XP practices
•Extremeprogramminghasatechnicalfocusandisnoteasyto
integratewithmanagementpracticeinmostorganizations.
•Consequently,whileagiledevelopmentusespracticesfromXP,the
methodasoriginallydefinedisnotwidelyused.
•Keypractices
•User stories for specification
•Refactoring
•Test-first development
•Pair programming

1.User stories for requirements
•InXP,acustomeroruserispartoftheXPteamandisresponsible
formakingdecisionsonrequirements.
•Userrequirementsareexpressedasuserstoriesorscenarios.
•Thesearewrittenoncardsandthedevelopmentteambreaksthem
downintoimplementationtasks.Thesetasksarethebasisof
scheduleandcostestimates.
•Thecustomerchoosesthestoriesforinclusioninthenextrelease
basedontheirprioritiesandthescheduleestimates.

2. Refactoring
XPproposesconstantcodeimprovement(refactoring)tomakechanges
easierwhentheyhavetobeimplemented.
Programmingteamlooksforpossiblesoftwareimprovementsandmakes
theseimprovementsevenwherethereisnoimmediateneedforthem.
Thisimprovestheunderstandabilityofthesoftwareandsoreducestheneed
fordocumentation.
Changesareeasiertomakebecausethecodeiswell-structuredandclear.
However,somechangesrequirearchitecturerefactoringandthisismuch
moreexpensive.
RISK:
Changestheuserdoesnottest
Changestoworkingsoftwarebreakit

Examples of refactoring
Re-organization of a class hierarchy to remove duplicate code.
Tidying up and renaming attributes and methods to make them
easier to understand.
The replacement of inline code with calls to methods that have been
included in a program library.

3. Test-first development
Insteadoffollowingthenormalpathof:
developcode->writetests->runtests
ThepracticeofTest-FirstProgrammingfollowsthepathof:
Writefailingautomatedtest->Runfailingtest->developcode
tomaketestpass->runtest->repeat
Test-FirstProgrammingreducesthefeedbackcyclefor
developerstoidentifyandresolveissues,therebydecreasingthe
numberofbugsthatgetintroducedintoproduction.

Problems with test-first development
•Programmerspreferprogrammingtotestingandsometimesthey
takeshortcutswhenwritingtests.ForE.g.theymaywriteincomplete
teststhatdonotcheckforallpossibleexceptionsthatmayoccur.
•Sometestscanbeverydifficulttowriteincrementally.E.g.,ina
complexuserinterface,itisoftendifficulttowriteunittestsforthe
codethatimplementsthe‘displaylogic’andworkflowbetween
screens.
•Itisdifficulttojudgethecompletenessofasetoftests.Althoughyou
mayhavealotofsystemtests,yourtestsetmaynotprovide
completecoverage.

4. Pair programming
•Pair programming involves programmers working in pairs,
and developing code together.
•This helps develop common ownership of code and
spreads knowledge across the team.
•It serves as an informal review process as each line of
code is looked at by more than 1 person.
•It encourages refactoring as the whole team can benefit
from improving the system code.

Pair Programming
Inpairprogramming,programmerssittogetheratthesame
workstationtodevelopthesoftware.
Pairsarecreateddynamicallysothatallteammembersworkwith
eachotherduringthedevelopmentprocess.
Thesharingofknowledgethathappensduringpairprogrammingis
veryimportantasitreducestheoverallriskstoaprojectwhenteam
membersleave.
Pairprogrammingisnotnecessarilyinefficientandthereisevidence
thatapairworkingtogetherismoreefficientthan2programmers
workingseparately.

The extreme programming release cycle

Extreme programming practices (a)
Principleorpractice Description
Incrementalplanning Requirementsarerecordedonstorycardsandthestoriestobe
includedinareleasearedeterminedbythetimeavailableandtheir
relativepriority.Thedevelopersbreakthesestoriesintodevelopment
‘Tasks’.
Smallreleases Theminimalusefulsetoffunctionalitythatprovidesbusinessvalueis
developedfirst.Releasesofthesystemarefrequentandincrementally
addfunctionalitytothefirstrelease.
Simpledesign Enoughdesigniscarriedouttomeetthecurrentrequirementsandno
more.
Test-firstdevelopment Anautomatedunittestframeworkisusedtowritetestsforanewpiece
offunctionalitybeforethatfunctionalityitselfisimplemented.
Refactoring Alldevelopersareexpectedtorefactorthecodecontinuouslyassoon
aspossiblecodeimprovementsarefound.Thiskeepsthecodesimple
andmaintainable.

Extreme programming practices (b)
Pairprogramming Developersworkinpairs,checkingeachother’sworkandprovidingthe
supporttoalwaysdoagoodjob.
Collectiveownership Thepairsofdevelopersworkonallareasofthesystem,sothatnoislands
ofexpertisedevelopandallthedeveloperstakeresponsibilityforallofthe
code.Anyonecanchangeanything.
Continuousintegration Assoonastheworkonataskiscomplete,itisintegratedintothewhole
system.Afteranysuchintegration,alltheunittestsinthesystemmust
pass.
Sustainablepace Largeamountsofovertimearenotconsideredacceptableastheneteffect
isoftentoreducecodequalityandmediumtermproductivity
On-sitecustomer Arepresentativeoftheend-userofthesystem(thecustomer)shouldbe
availablefulltimefortheuseoftheXPteam.Inanextremeprogramming
process,thecustomerisamemberofthedevelopmentteamandis
responsibleforbringingsystemrequirementstotheteamfor
implementation.

Scrum
•Scrumisanagilemethodthatfocusesonmanagingiterativedevelopmentratherthanspecificagile
practices.
•ThreephasesinScrum.
•Theinitialphaseisanoutlineplanningphasewhereyouestablishthegeneralobjectivesforthe
projectanddesignthesoftwarearchitecture.
•Thisisfollowedbyaseriesofsprintcycles,whereeachcycledevelopsanincrementofthesystem.
•Theprojectclosurephasewrapsuptheproject,completesrequireddocumentationsuchassystem
helpframesandusermanuals,andassessesthelessonslearnedfromtheproject.

Thetermscrumisborrowedfromrugby,whereitisaformationofplayers.The
termscrumwaschosenbythepaper'sauthorsbecauseitemphasizes
teamwork.Thesoftwaredevelopmenttermscrumwasfirstusedina1986
papertitled"TheNewNewProductDevelopmentGame"byHirotaka
TakeuchiandIkujiroNonaka.ThepaperwaspublishedintheJan1986issue
ofHarvardBusinessReview.

Scrum
•Scrumisahighlyiterativeagileframeworkthatoperatesin
sprintsof2-4weeks.
•Itdefinesfeaturesandobjectivespriortoeachsprintandis
designedtoreduceriskwhileprovidingvaluetocustomersas
quicklyaspossible.
•Ineachsprint,ateamcommitstocompletingseveraluser
stories–briefdescriptionsofwhatauserneedstobeableto
achievewiththesoftware.

Scrum Framework
Theprimarystagesinthescrumprocessare:
1.Creatingaproductbacklog–aprioritizedlistofdevelopmenttasks,definedasuser
stories.Theworkrequiredforeachuserstoryisestimatedusinghoursorstorypoints.
2.Sprintplanning–creatingasprintbacklog–asubsetoftheproductbacklogplannedfor
aspecificsprint,andestimatedtofitintothefixedtimescopeofthesprint.
3.Sprintwork–developingworkingsoftwarewithinthesprint.Theteamcarriesoutadaily
stand-upmeetingtoshareprogressandresolveproblemsexperiencedbytheteam.
4.Testingandproductdemonstration–towardstheendofasprint,thefocusshiftsto
stabilizingandfinalizingfeatures,andconductingacceptancetestingwithproductowners
andcustomers.
5.Retrospective–attheendofthesprint,sharinglessonslearnedfromtheprevioussprint
andusingittoplanoradjustthebacklogforthenextsprint.

The Scrum sprint cycle
•Thestartingpointforplanningistheproductbacklog,
whichisthelistofworktobedoneontheproject.
•Theselectionphaseinvolvesalloftheprojectteamwho
workwiththecustomertoselectthefeaturesand
functionalityfromtheproductbacklogtobedeveloped
duringthesprint.
•Oncetheseareagreedupon,theteamorganizes
themselvestodevelopthesoftware.

Scrum sprint cycle

The Sprint cycle
•Duringthisstagetheteamisisolatedfromthecustomerandthe
organization,withallcommunicationschanneledthroughthe‘Scrum
master’.
•TheroleoftheScrummasteristoprotectthedevelopmentteam
fromexternaldistractions.
•Attheendofthesprint,theworkdoneisreviewedandpresentedto
stakeholders.Thenextsprintcyclethenbegins.

Teamwork in Scrum
•The‘Scrummaster’isafacilitatorwhoarrangesdailymeetings,tracksthe
backlogofworktobedone,recordsdecisionsmeasuresprogressagainst
thebacklog,andcommunicateswithcustomersandmanagementoutsideof
theteam.
•Thewholeteamattendsshortdailymeetings(Scrums)whereallteam
membersshareinformation,describetheirprogresssincethelastmeeting,
problemsthathavearisen,andwhatisplannedforthefollowingday.
•Thismeansthateveryoneontheteamknowswhatis
goingonand,ifproblemsarise,canre-planshort-term
worktocopewiththem.

Sprint Retrospective
Thisexerciseallowsyouto
reallocatetimeandresources
towhereitmattersthemost.

Scrum benefits
Theproductisbrokendownintoasetofmanageableandunderstandable
chunks.
Unstablerequirementsdonotholdupprogress.
Thewholeteamhasvisibilityofeverythingandconsequentlyteam
communicationisimproved.
Customersseeon-timedeliveryofincrementsandgainfeedbackonhow
theproductworks.
Trustbetweencustomersanddevelopersisestablishedandapositive
cultureiscreatedinwhicheveryoneexpectstheprojecttosucceed.

Scrum terminology (a)
Scrum term Definition
Development team Aself-organizinggroupofsoftwaredevelopers,whichshouldbenomorethan7
people.Theyareresponsiblefordevelopingthesoftwareandotheressential
projectdocuments.
Potentially shippable
product increment
Thesoftwareincrementthatisdeliveredfromasprint.Theideaisthatthisshould
be‘potentiallyshippable’whichmeansthatitisinafinishedstateandnofurther
work,suchastesting,isneededtoincorporateitintothefinalproduct.In
practice,thisisnotalwaysachievable.
Product backlog Thisisalistof‘to-do’itemsthattheScrumteammusttackle.Theymaybe
featuredefinitionsforthesoftware,softwarerequirements,userstories,or
descriptionsofsupplementarytasksthatareneeded,suchasarchitecture
definitionoruserdocumentation.
Product owner Anindividual(orpossiblyasmallgroup)whosejobistoidentifyproductfeatures
orrequirements,prioritizethesefordevelopmentandcontinuouslyreviewthe
productbacklogtoensurethattheprojectcontinuestomeetcriticalbusiness
needs.TheProductOwnercanbeacustomerbutmightalsobeaproduct
managerinasoftwarecompanyorotherstakeholderrepresentative.

Scrum terminology (b)
Scrumterm Definition
Scrum AdailymeetingoftheScrumteamthatreviewsprogressandprioritizesworktobe
donethatday.Ideally,thisshouldbeashortface-to-facemeetingthatincludesthe
wholeteam.
ScrumMaster TheScrumMasterisresponsibleforensuringthattheScrumprocessisfollowed
andguidestheteamintheeffectiveuseofScrum.Heorsheisresponsiblefor
interfacingwiththerestofthecompanyandforensuringthattheScrumTeamisnot
divertedbyoutsideinterference.TheScrumdevelopersareadamantthatthe
ScrumMastershouldnotbethoughtofasaprojectmanager.Others,however,may
notalwaysfinditeasytoseethedifference.
Sprint Adevelopmentiteration.Sprintsareusually2-4weekslong.
Velocity Anestimateofhowmuchproductbacklogeffortthatateamcancoverinasingle
sprint.Understandingateam’svelocityhelpsthemestimatewhatcanbecoveredin
asprintandprovidesabasisformeasuringimprovingperformance.

Quiz
2. According to Agile manifesto –
A Individuals and interactions over people and technique
B Individuals and interactions over projects and tools
C Individuals and interactions over processes and tools.
D Individuals and interactions over products and tools

Quiz
Which of the following is not an Agile methodology?
A.Scrum
B.PMBOK® 3
C.Crystal Clear
D.Extreme programming (XP)

Quiz
There are ........... phases in Scrum
A.2
B.3
C.4
D.5

Quiz
Which of the following is responsible for sprint meeting?
A.Scrum team
B.Scrum master
C.Product Owner
D.None of the above

Kanban
•TheJapaneseword“kanban”,meaning“visualboard”ora“sign”,hasbeen
usedinthesenseofaprocessdefinitionsincethe1950s.Itwasfirst
developedandappliedbyToyotaasaschedulingsystemforjust-in-time
manufacturing.Theapproachrepresentsapullsystem.Thismeansthat
productionisbasedoncustomerdemandratherthanthestandardpush
practicetoproducegoodsandpushthemtothemarket.
•Kanbanisconsidereda“leanproduction”technique,oronethateliminates
laborandinventorywaste.
•OneofthewaysKanbanreduceswasteisthroughthe“pullproduction”model
thatregulatesitemproductionbasedonconsumersupplyanddemand.

Kanban
•Itisalargeto-dolist,whichhelpsmanageworkaccordingtopriority.
•AcentralprincipleofKanbanisthatthetasksandtheirstatusare
visualizedascardsonaboard,visibletoallprojectstaff.
•InKanban,whenadeveloper,tester,orotherteammemberisready
formorework,theypullataskontheboardbymovingitto“Doing”
oraspecificworkstatuslike“Testing”.

Stages of Kanban
1.VisualizeWork–definetheprocessfollowedbytheproject
team(forexample,NotStarted>Development>DevTesting
>AcceptanceTesting>Done).Setupaboardwithacolumn
foreachprocessstage,andpostthetasksontheboardas
stickynotes.
2.LimitWorkinProgress(WIP)–akeyprincipleoflean
manufacturing,Kanbanenforcesalimitonthenumberof
taskstheteamworksonconcurrently–usuallynomorethan
2-3.
3.PullDon’tPush–eachteammemberfinishestheircurrent
taskandthen“pulls”anadditionalassignmentfromthe
board.Thispreventsbottleneckswhenonepartoftheteam
hasahigherthroughputthananother.
4.MonitorandImprove–visualizationslikethecumulative
flowchartbelowhelpunderstandhowworkisprogressing
andidentifybottlenecksintheprocess.

11
3
Kanban
●Kanbanisanincrementalprocess.Itfulfillsallthe12different
principlesofagilemethodologies.ThemainaspectofKanbanisthe
transparencyinthesoftwaredevelopmentcycle.Kanbanboardsand
toolsareusedforprojecttraceability.Thisboardisusedina3step
process:
❑Todo
❑InProgress
❑Done
●Totrackanyworkinaproject,thecardsareusedontheboardto
representthestateofeverywork.Thisgivesaclearpictureofthe
workflowandprogressofateam.

TheKanbanMethodology
dependsonvarious
principles,suchas:
❖VisualizeWork
❖Limit Work inProgress
❖Pulling NewWork
❖Measure and Learn
❖Manage theWorkflow
❖Processimprovement
❖Working Together
❖Deliver with newIdeas
❖Just in TimeDevelopment
❖Welcome to Incremental
Change

AdvantagesOfKanbanMethodology
❖It increases the Productivity of theteam.
❖It provides a flexibility and sustainable development.
❖It deals with continous process improvement anddelivery.
❖Kanban methodology eradicates the bugs from theprocess.
❖Increase the efficiency of deliver a high qualityproduct.
❖It depends on just in timedevelopment.
❖It limits the work in progress, so enhance theoutput.
❖It focuses on one task attime.
❖It provides the status of project in Kanban Board, its open forall.
❖It improves the workflow and limits the timecycle.
❖It maintains workflow status, collaboration on the team and sustainabledevelopment.
Tags