This PDF Contains Software Engineering Notes
This PDF Contains Software Engineering Notes
Sylfabus
A ii . • . development,. Extreme programming,
g e software-· development : Agile methods, Plan-dnven an_d ~g,1e. - 1 , ,,
7. -• : • •-. • • •• ,, r • •
'
'
•. sprints.
ffi
•· · · • -· . ·11 • • • g·eable increments caHed iterations or
e c1ently by breakmg down the development process mto sma er, ~ana _. • •
·., . •
• I
• The core principles of agile ~oftware development are outlined in the Agile Manife5to, whi2h values :
0 Individuals and intera~ons over processes and tools ; It em~hasizes the . i~po~nce. of. ,eff~ctive
I • • •
o Customer coJlaboration over contract negotiation : Agile teams actively invol~e cust~mers or ~nd-users
,· . . • "' . - ...... . ... . . • . ,. ' . •
throughout the development process· to ensure the software ~eets their requirements and expectations. • •
• . - 1 •• • ,, , • - • ' •
• . • I ) ' • . •. ' • •
o Responding to change over following a plan. : Agile· recognizes that requirements and priorities can
!°- changes
• I . . . . . • •
_. change over time. It e~braces flexibility, a,Pd enco~rages teams_ to adapt in requirements
• . I. I
• Here's a brief overview ~fScrum, one of ~e most popular agile methodologies : •••• , • I.
',
' ' . '\ '
Scrum divides the development process into short iterations ca11ed sprints, typically lasting 1-4 weeks. Ea
o
. . . ' . . . - . ' . •
sprint·-begins with a planning session where· th~ team selects .a set of user stories or fea~~es· t~ work 0
\. • • • I • • • • I • •
during that sprint The team th~n creates a sprint backlog, which is a prioritized list of tasks derived
• ' ' • 1.., • '
fro
the selected user stories.
. :, . I ' , . .
o During the sprint, the team holds dai1y stand-up'meetings to discuss progress,:challenges and plan ,or
I
day. The team coJJabor~tes ,;Josely to develop and tes~ the software incrementally, with a focus on de
I ' - ,.. • • •
•
-
Software Engineering
spnnt, a sprint review takes place, where the team demonstrates the completed work to
stakeholders rece· , .
' • Ives •eedback and adjusts the product backlog and plans for future spnnts. The team also
conducts a sprint - .
re._. ospecttve to reflect on the process and identify areas for improvemen t .I
This iterative and incremental approach allows for continuous feedback. earl d . f. d . k
0
y etection o issues an qwc
adaptation to ch.,..:'"ng • If · · d
•&CUlf>• reqwrements or priorities. It promotes transparency, se -orgamzanon an cross-,
functional collaboration among team members. -
• Agile developmen t fosters a dynamic, responsive and customer-centric mindset, enabling software teams to
· •
deliver value quickly, increase customer satisfacnon ·
and embrace change more effectively.
• In tile early days of software development, developer used to plan the project carefully, focus on qu~Jity
assurance and employee the analysis and design methods supported by various CASE tools.
• This was the general practice of the software developer community that was responsible for the development of
larger projects such as government projects etc.
• These larger projects use larger team and the team members may spread geographically across the world and
they worked on the software for-the longer"period of time.
• Therefore, 1:fle development period may extend up to the 10 years from the· initial specification to the final
delivery of the product
• Such a planed-driven approach will involve significant overheads in all the stages of the development processes
like requirement specification, plan-ning, designing, coding and documentation.
• In order to overcome this heavy weight plan-driven appro~ch, the concept of agile methods was proposed. This
methodology mainly focused on the product instead of focusing on the design and documentation part
• All the agile methods trust on the incremental approach instead of the conventional waterfall approach. The
incremental approach is the best approach where the customer requirements and the software requirements
change rapidly or frequently. ,•
• The philosophy beliind agile methods is also qbserved in Agile Manifesto that is accepted by most of the leading
software developers. The Agile Manifesto is discussed in th_e following section.
.,...........
o • • Responding to change after having a good plan".
Publlcatlons
. Software Engineerir:ig Agile Software Development
4-3
• Even though these agile methods are based on the concept of increm 1 ment. quicker delivery a11c1
ental deve op • •
faster deployment, the agile manifesto gives· different processes to
achieve this.
• • agile manifesto are very much
But most of the set of principles used by various experts that
are based on , • .
common.
·. .
1) Satisfy customer through early and continuous delivery.
2) Accommodate changing requirements. _.
3) Deliver the working software frequently i~ shorter time span.
4) The customer, business people . and developers must work
tog~ther on daily basis during·· entire
development.
5) Copiplete the tas·k with motivated developers and facilitate heaithy
and friendl y ·environment
6) Convey the message orally, face-to-face conversation. .
. .
7) Working software is the primary measure of progress.
8) Agile process promotes sustainable development .
9) Achieve technical exc~llence and good design.
10) There must be .simplicity in development
.. .
11) The best architecture, ·requirements and design emerge from . -
: self-organizing teams.
• ,/ ,· _· - • . • • . .
12) Every team should think how to become more effective. It should
review regularly ~nd adjust its behaviour-
accordingly.
.'
, o
I
' ~, '
•
t
To addres s these assumptions of unpredictability, the agile develo • . .
1i
\
50 ftWare Engineering Agile Software Development
4-4
4.2 Plan-Driv en and .
~- -------==~ ----=
Agile Deve
-==.!
lopm
:.:'..:
ent
.::..:. .'.'..:__ _ _ _ _ _----:---_ _
•
_ __
.
Plan-driven and Agile Developrnent .
are two different appro aches to softw are development that offer distinct
methodologies, princi I
p es and proc
esses. Here's an overview of each approac~ :
4.2.1 Plan-Driven Develop·ment
- . . .
Plan-driven devel~prnent l • and sequential approach to
• ' a so known as the Waterfall model, is a traditional
sOftware d evelopme nt It fi0 II ows a well-defined . ements
. d . , linear process with distinct phases such as requir
gath enng, es1gn, develop ment, testin .
g and deployment
•
• Software Engineering Agile Software Develop111
4-S
Developm i . . . h1·1e Plan-driven Development
ent s often favoured for dynamic projects where change ts hke1Y, w .
be more s 'tabl . • It • worth noting that hybrid rnn.1
· w e for projects with well-defined and stable requirements. is . ""
that combin 1 · • . d d. t to specific project needs.
. e e ements from both approaches are also commonly use to a ap . •
• The £xtrem~ Programming is one of the most commonly used agile process ~od~ls. All t:he agile process rnod
•
• • I~s of agility•and the manifesto•of agile software development
obey the p nncip
• J'he XP u~es the concept of object oriented programmi~g. This approach is preferred development paradigm.
• •
As in con~entional approach, a developer focuses on the framework activities· h'ke PIannmg, • codi ng
• d esign,
'' .i
• i . 1• I •.
• '
t . t .;. 1, t ,
. Release
__Testing_
\ I •
a
·, . , . • • r ). / • • : ..., •
• Following are a set of five values that establish foundation for all work performed in context with XP. ,
.., • I ' / •.. ' 4 ' • "I •. • _. ~"4
(4) Courage .
I • • . • . . • .- ' •
• For any de~elopment process, there must be a regular: meeting of developer and the customer: There should be a
· . proper communication for r~quirement gathe~1ng and discussion Qf the conc~pts_. . ,; • , •
In every development project, there is· always a pressure situation.· The courage or the discipline will definl
•
• make the task easy.
In' addition to. all the XP value~,. tlle agile should i~culc~te r~spe·ct· amon~ ·all ~e ~earn members:· between
• . '
J
50 ttware Engineering
-
The XP Process
I
4-6 Agile Software Development
• Agile Proj~ct Management is an iterative and flexible approach to managing projects .that focuses on delivering
value to customers in a collaborative and adaptive manner. It e~erged as a response to traditional project
management method~logies, whi~h often struggled to adapt to changing requirements and ~ustomer needs.
• The Agile Project Management methodology emphasizes close collaboration between cross-functional teams,
regular feedback and c;ontinuous improvement throughout'the project's lifecycle. It encourages teams to.respond
to. charige quickly and effectively, enabling them to deliver high-quality products or services that meet customer
expectations.
1. Iterative and Incremental Approach : Agile projects are divided into small i_terations or time-bound cycles
called sprints. Each sprint typically lasts from one to four weeks, during which a small portion of work is
completed and deliyered. This iterative approa~h allows for. feedback and adjuso:nents to be incorporated
, . . .
throughout the project
2. C~ss-Functional. Teams· : Agile teams are composed of individuals with diverse skill sets necessary to
deliver the project's objectives. The tearn members collaborate closely, communicate frequently and
•collectively share responsibilities. This promotes self-organization and empowers team members to make
' I
decisions.
3. Customer Collaboration : Active involvement of custom~rs or stakeholders is crucial in ~gile _Project
Management Regular customer feedback and input ~re sought throughout the project to ensure the final
product meets their expectations. This iterative feedbac~ loop hel_ps to refine requirements, prioritize
featur~s and address any issues early on.
4. Adaptive Planning : Agile projects embrace changing reqQ~rements and priorities. Instead of creating a
detailed plan upfront, Agile Project Management employs a flexible planning approach. Requirements and
Publications
•
·
• •: .1.
• . •.
Agde ProJect Management frameworks · 'd ecific guidelines and practices fi
such as Scrum and Kanban, prov i e sp ,
·
implementi·~g Agile principles. Scrum, ' • s rum Master and Prod uct Owner
for example, defines roles (such as c
ceremonies · · • i • .
(such as daily stan~~ups and sprint revie
ws) and artefacts (sueh as prod uct backlogs and bum-do
charts) to help teams effectively manage . .· '
'
iheir work.
• .0 verall, Agi.1e ProJ. ect Management offe t
• ' 1
• '
: '
•
t
rs a flexi• ble and customer-ce~tnc app roach to proj ect delivery, enabll•
• '
• '
'
The Agile· Project Management proc
ess is ch~racterized by its iterative and •
specific practices and tools used may incr eme ntal app roac h. While tli
vary based on the chosen ~gile methodol
ogy (such as Sc_rum or Kanban),
Following step s provide a g~neral over .
vie~ of the Agile Project Management
Process : • .
1. Project Initiation I . ,
•
Define the proj ect vision, goals and obje
ctives.
• Iden tify stakeholders and establish effectiv~ com
munication chann~l~ • i ,:: _..
' '
1
. ,.. ,
• Form the Agile project team and ensure thei '
.·.•
2. Product Backlog Creation ,· I
I ' •
a
I
1. '
s. Daily Stand-ups
6. Sprint Revie'!V
7. . Sprint Retrospective •
• Discuss and implem ent change s to enhanc e collaboration, communication and processes.
.
• Document lessons learned and actions to be taken in subsequent sprints.
8. Repeat Iteratively
• Repeat the sprint cycle, starting with a new sprint planning session.
and priorities.
• Continuously refine the produc t backlog based on changing requirements
lders.
• Deliver regular increments of the produc t and gathe_r feedback from stakeho
is conside red complete.
• Iterate on the project until the desired outcomes are achieved or the project
an emphasis on collaboration, frequen t
Throughout the Agile Project Management process, there is
is designed to allow for flexibility and
~ommui1ication, adaptability and continuous improv ement, The process
g that the project delivers value and meets
responsiveness to changing require ments and custom er feedback, ensurin
stakeholder expectati_ons.
•
Publica tions
Agile Software Developrn
Soft.ware Engineering
4-9
• Greater visibility .
Into _the project's progress and potential issues. I
• Continuous fm . .
provement and learning throughout the project hfecycle.
Disadvantages of A. . •
gfle Project Management .
While A .1 • • me potential disadvantages
· gi e Project Management offers numerous benefits, it also has so . ,
b
organizations should eaware of:
1. Lack of p~. .. . • • . nes.s t~ change, which ~an lead
• · •ctabdity : Agile projects prioritize adaptability and responsive
less pred' tab'I' . - . •• nd incremental nature of AgQ
IC I ity In terms of project timelines and outcomes. The- iterative a - .
means th t . .
a requirements may evolve over time, making it challengmg to es m ,
ti ate project completion dates 0
: ,- ·
th_e final product's scope. • •
. .
2. Scope Cre . A -1 . • . d ti uous feedback, which can.- lead
ep • g1 e proJects often rely on customer collaboratton an con n • . ···
scope ere As • • ·. •d • g. th~ _project, there is a risk 0
ep. stakeholders provide new insights and· reqwrements unn . . . ,
e,q,anding the project scope beyond the initial plan. This c~n lea~ to delays, increasep cos~ an~ difficul_ties •
' .. ' ..
meeting project objectives.
,.
3. Li~ited Documen.tatio~ : Agile method~logies prioritize working software or product increments ove
comprehensive documentation. While this can •promote· efficiency~ , it may result in a •lack ~f detail~
' . '
documentation that could be useful for future reference, maintenance, or on_ boarding new team membe~. · ••
4. Dependency on Team Collaboration : Agile projects heavily rely on effoctive collaboration anct communicatio
within the team and with stakeholde~. If ther~ are chal_lenges_' µt. t;a; I dynamics, sue~ a~ connicts 0~ l~c_k. 0
J . . •. •
alignment, it can hinder progress and impact the project's success. Additionally,
' • • >- ...
if -key team members are . •'
•
S. . Learning Curve : Agile methodologies, such as Scrum or Kanban often require a mindset shift arid new practices 1
• • • ' .J ( • ,' • 'l :,• •
that may be unfamiliar to team members and stakeholders. Adapting to Agile methods may require training, time
. ' • ' . . ' - t:- •
and effort to understar:id and implement effectively. This learning curve ~n initially impact productivity until
-. ,..,-/. '
team members become familiar with the Agile principles and practices. . . ...-:_ -, · . . , , ,, ,. •
. .
6. Dependency on Stakeholder Availability: Agiie methodologies ~mphasiie regular customer collaboration and
• , I
I • •
feedback However, if stakeholders are not readily available or have_ limited involvement in _the project, it can
. . . . '
i '
7. Applicability Challenges : Agile may not be suitable for all types of proiects or industries. Projects with fixed
• • 'i I ' ' , \ •
requirements, strict r.~gulations or long-term· planrting, may find it challenging to fully· embrace -~e
....
• meth~dologies. In some cases, a hybrid approach that combines Agile and ~ditional proj~ct mariagemenl .
. .
methods may b~ more appropriate. . .
.. .
.
... •'
.
It is "irnportant to note.that while Agile Project Management has its dra~backs, many of these challenges can
• • . I
mitigated through proper planning, effe~ve team coinmunicatiori and. adapting Agile practices to fit the proj
. . ..
j Ti
Software Engineering. Agile Software Development
4-10
4.5 Scaling Agile Methods
Scrums." Each team has ·its own Scrum Master and representatives from each team participate in regular
meetings to coordinate efforts, share information and address any c-ross-~eam dependencies or issues.
2• SAFe (S~ed Agil~ Framewor~) : S~e is widely adopted framework for scaling Agile m~thods. lt provides a
structured approach to scaling Agile across an organization. SAFe incorporat~s multiple levels of planning and
coo rdination, including the Portfolio, -Value Stream and Team levels. It emphasizes alignment, synchronization
and collaboration acros~ Agile teams and pro.vides guidelines for scaling Agile pn:ctices.
3• LeSS (Large-Scale Scrum): LeSS is a framework for s~aling Scrum in large organizations. It promotes simplicity·
and adaptability whil_e scaling Agile practices. LeSS advocates for f~wer roles, artifacts and events compared to
tradition.al Scrum, simplifying the coordination and communication across teams. Jt encourages decentralized
'
decision-making and self-organization.
4. N exus : Nexus is a framework that builds upon Scrum and focuses on scaling Scrum to larger projects. It
provides guidelines for organizing multiple Scrum teams into an integrated unit Nexus introduces addi~ona1
events and artifacts, such as Nexus Sprint Planning, Nexus Daily Scrum and Nexus Sprint Review, to enhance
coordination and alignment
. . . . I -I
S. DAD (Disciplined Agile Delivery) : DAD is a hybrid fra~ework that combines elements from Agile methods,
including Scrum, Kanban, Lean and others. It offers guidance for sca1i~g Agile in a flexible and custo~izable
manner. DAD incorporates practices for portfolio management,.enterprise architecture and team co1laboration,
enabling Agile adoption at both the project and or~anizational levels.
6. Agile at Scale : Some organizations· choose to dev~lop their own tailored approach to scali1_1g Agile methods
based on their specific needs and context. They adapt and customize Agile principles, practices and frameworks
to suit their organizational structure and project requirements. This approach a1lows for greater flexibility but
requin~s careful consideration and expertise.
When sca1ing agile methods., it .is crucial to maintain the core Agile principles of transparency, collaboration and
adaptabi1ity. Organizations should foster a culture of continuous improvement and provide the necessary support,
training and resources to ensure successful scaling. Additionally,. effective communication, coordination and
alignment across teams are essential to address dependencies, manage risks_ and achieve project objectives in larger
agile initiatives.
I Review Ques_tions I· -
Q. 1 Explain agile process model. What are ·the different agility principles ?
Publlcatlons