0% found this document useful (0 votes)
15 views

Notes Unit 3

The document discusses agile software development methods. It provides an overview of agile principles and compares plan-driven and agile development approaches. It also describes extreme programming as an agile technique, focusing on iterative development, customer involvement, and pair programming.

Uploaded by

Viyan Singh
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views

Notes Unit 3

The document discusses agile software development methods. It provides an overview of agile principles and compares plan-driven and agile development approaches. It also describes extreme programming as an agile technique, focusing on iterative development, customer involvement, and pair programming.

Uploaded by

Viyan Singh
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

Contents

Unit 3 Agile Software Development Page No.


3.0 Structure of the Unit 1
3.1 Overview of Agile software development 1
3.2 Agile methods: Principles 1
3.3 Plan-driven and Agile Development 3
3.4 Extreme programming Introduction 4
3.5 Self-Assessment Questions 5
3.6 Self-assessment Activities 5
3.7 Multiple Choice Questions (MCQs) 5
3.8 Keys to MCQs 6
3.9 Summary of the Unit 6
3.10 Keywords 7
3.11 Recommended Reading 7

OMC204 Software Engineering 1


Unit 3
Agile Software Development

3.0 Structure of the Unit


3.1 Unit Outcomes
3.2 Introduction
3.3 Agile methods
3.4 Agile development techniques: extreme programming
3.5 Agile Project Management: Scrum Process
3.6 Self-Assessment Questions
3.7 Self-assessment Activities
3.8 Multiple Choice Questions (MCQs)
3.9 Keys to MCQs
3.10 Summary of the Unit
3.11 Keywords

3.1 Unit Outcomes


After the successful completion of this unit, the student will be able to:
1. Discuss agile methods.
2. Analyze plan-driven and agile development.
3. Explain key features of extreme programming.
4. Discuss the scrum approach in agile project management.
3.2 Introduction
Software has become a part of most businesses and markets on a global level. Software needs to be
updated based on changes, challenges, and opportunities in the market. Thus, quick software
development is now the most important factor. In the changing environment, getting stable
requirements is not possible as customers change their needs, and interaction with the system and the
real requirements are clear with a lot of experience.
If the waterfall model is used for software development, then the clients' changing requirements may
end up in software delivery being outdated. This type of approach is suitable for safety-critical control
systems, where a plan-driven approach is the best choice. But for business and other purposes, rapid
software development is necessary. IBM has introduced an incremental model for rapid software
development. Fourth-generation languages supported rapid software development. But the rapid
software development was strongly supported using the notion of an agile approach that included
dynamic system development method (DSDM), scrum, and extreme programming.
Agile methods are based on an incremental development approach. The product is released after every
two to three weeks. Customers are involved in the development. Based on the customer’s feedback the
software product is released rapidly. The agile methods came into existence in the early days of the

OMC204 Software Engineering Page 1


year 2001. Some of the common characteristics used in rapid software development are as given as
follows:
1. The most important features of the system are identified. The details of the system such as
design, requirements, documentation, coding, etc., are minimized. These steps are executed in
a parallel fashion.
2. Different versions of the system are developed. Clients are involved in the system, if there are
any changes in the requirements, they are included in the later versions.
3. The system interface is developed for client interaction. For example, browser platforms are
used for web interaction.
3.3 Agile Methods
In the early 90s, software development was done using systematic planning
including project planning, quality control, requirement analysis, design,
usage of CASE tools, etc. This software process was suitable for large and
complex projects handled by team members working across the country in
different teams. In this plan-driven approach, there was an overhead of
managing many people, excess documentation, and delays in planning and
designing. This type of approach was not suitable for small and medium-sized
projects, because more time was spent on how the software development
process rather than on actual design and development. The plan-driven
approach was also unsuitable for the system with frequently changing
requirements. The different drawbacks of the heavyweight plan-driven
development approach must lead to the development of agile methods.
Agile methods focus more on software than design, planning, and
documentation. Agile methods are based on an incremental development
approach and are suitable for developing projects with rapidly changing
requirements. Important features of agile methods are as follows:

1) Quick delivery of software products.


2) Long-term software activities and documentation are avoided.
3) Individuals interact over software tools and processes.
4) Focus is on the development of software than documentation.
5) Clients are involved in the process.
6) Responses are given to the changes than following a plan.
The principles of Agile methods are listed in Table 3.1.

Principle Description
Client’s Customers are involved in the software development
Involveme process. New requirements are added based on the
nt client’s feedback
Increment Software is developed using small increments, every
al Delivery new requirement is added in the increment.

OMC204 Software Engineering Page 2


People Instead of a predefined process, the capacities of
and persons are identified, and work is assigned.
Process
Address Changes are accommodated in the ongoing software.
Changes
Simple The software process is less complex, and the focus is
Approach more on the software than the plan.
Table 3.1 Principles of Agile Methods
Agile methods are useful in the following applications.
1) Small and medium software products.
2) Customized software products with fewer rules and regulations.
3) Applications where there is transparency for customers
4) Priorities are flexible.
5) Software delivery and improvement are continuous.

Agile methods are used in small or medium-sized teams, but it is difficult to


expand for large systems. Software systems need safety and security features.
Agile methods require a lot of modification. For critical systems like chemical
plants, security alarms, medical applications, etc. agile methods need to be
scaled. In practice, some of the difficulties faced in agile systems are:
1. Client’s participation in the software process may not be possible due to the
client’s interest and participation. Clients may not be able to spare time with
the development team.
2. Some of the team members may not be able to do intense work in agile
systems. Due to more pressure, they may not be able to interact with other
team members.
3. If the priorities of the work to be done change frequently, then there may be a
delay in the software process.
4. Simplicity requires extra work. Every team member may not be able to
simplify the system.

In practice, agile and plan-driven development methods can be used in a hybrid


approach.

3.4 Plan-driven and Agile Development


In plan-driven software development, activities are planned, and the stages are linear. At the end
of the requirement analysis, requirement specifications are formed and given as input to the design
and implementation stages. This is shown in Figure 3.1. Plan-driven is used for large complex
projects. The different hardware/software requirements, milestones, and allotment of persons to
work are decided first before the beginning of the process. This approach uses proper
documentation.

OMC204 Software Engineering Page 3


Figure 3.1: Plan-driven Software Development

In an agile process, the activities are done in iterations. It may not include different versions.
In agile methods, these stages are done in a parallel fashion. The focus is on the design and
implementation phases without much documentation. This is shown in Figure 3.2.

Figure 3.2 Agile-driven Development


3.5 Agile Development Technique: Extreme Programming
Extreme programming (XP) is the commonly known agile development method. It was named
extreme because the activities in the agile methods are pushed to an extreme level. The different
phases of XP are shown in Figure 3.3.

Figure 3.3: Extreme Programming


In XP, requirements are represented as scenarios or user stories, and they are implemented as a set of
tasks. These tasks are tested, and software is released. The developed system is evaluated, and user
feedback is taken. In XP, new versions are built many times per day. After every two weeks,
increments are delivered to customers. Important features of the XP are given below.
1. The XP is based on incremental development, user stories are used as a base for a new
function.

OMC204 Software Engineering Page 4


2. Customers are involved in the acceptance test of the developed software parts.
3. People work in a group of two. This is known as pair programming. Here people can
exchange knowledge with each other.
4. Frequent software releases help in fulfilling the client’s requirements.
5. Simplicity is maintained.

3.5.1 Agile Project Management: The Scrum Process


Scrum is a method for software projects, where there is continuous experimentation and response
from the clients. Using Scrum, the software is developed in a series of increments in the
coordination of software engineers and clients. Scrum guide was introduced in 1995 for solving
complex problems. The scrum team consists of a team of developers, scrum masters, and the owner
of the software product. The scrum master organizes and coordinates the scrum. A group of
developers creates a software project. The product owner makes sure that the product is created
properly including all the requirements.

Figure 3.4: Scrum Methodology


Each scrum includes several events and five artifacts as given below.
1) Product Backlog: The product backlog contains the elements needed in a product to reach
its goal. This list gets refined continuously and it is never complete.
2) Sprint Backlog: The sprint backlog is a list of commitments to be achieved. The
development team can only have access to this list.
3) Product Increment: This is a releasable product increment based on agreed-upon
definitions.

Figure 3.5 Artifacts of Scrum

OMC204 Software Engineering Page 5


Important features of the scrum process are as follows:
1. In the scrum process, the product to be developed is divided into parts.
2. Each part can be developed and managed by a team member.
3. Even if the requirements are not defined clearly, the software process is not kept on hold.
4. The entire team can view the software production process and they can communicate with
each other in a better way.
5. Customers can see the delivery of the products during the intermediate stages, and they can
give feedback on how the product is working.
6. Trust is established between clients and the software developers for the successful
completion of the project.
The scrum process is commonly divided into three phases: the initial phase, the sprint cycle, and the
closure phase.

3.6 Self-Assessment Questions


Q1. What are the advantages and drawbacks of agile methods [L2, 5 marks]
Q2. Compare plan-driven and Agile software development [L2, 5 Marks]
Q3. What is a scrum process? Illustrate with a suitable example. [L1, 10 Marks]
Q4. Discuss the principles of agile programming [L3, 10 Marks]
Q5. Identify software applications that are implemented by agile methods [L3, 10 Marks]

3.7 Self-Assessment Activities


1. Discuss the examples of the scrum models used in the present day.
2. Explain how scrum can be used in everyday life.
3. Explore how Amazon uses the scrum model.

3.8 Multiple Choice Questions (MCQs)


Q1. In agile methods, feedback if the client is considered. [L1, 1 Mark]
a) True
b) False
Q2. Agile methodology is suitable for small projects. [L2, 1 Mark]
a) True
b) False
Q3. Agile software development is based on____ [L1, 1 Mark]
a) Prototyping
b) Incremental
c) Rapid
d) None of the above
Q4. The agile method is suitable when the software development is transparent to the user. [L2, 1
Mark]
a) True

OMC204 Software Engineering Page 6


b) False
Q5. The software product developed by a scrum in the shortest time is____ [L2, 1 Mark]
a) Function
b) Module
c) Program
d) Scrum
Q5. ____ of the following is not an agile method [L3,1 Mark]
a) Waterfall
b) Extreme Programming
c) Scrum
d) Sprit
3.9 Keys to MCQs
Q1. True(a)
Q2. False (b)
Q3. Incremental (b)
Q4. True (a)
Q4. Scrum (d)
Q5. Waterfall (a)
3.10 Summary of the Unit
A software development approach where the given project is divided into several phases is known
as agile methodology. The agile method involves clients and other stakeholders in software product
development. The agile method includes a set of cycles or phases. The agile method includes a
scrum process that is a series of software parts and is transparent to the client. The scrum process
includes software developers, scrum masters, and product owners. XP is an example of an agile
method. The five principles of the agile method are client involvement, incremental delivery,
people, and process, addressing changes, and a simple approach.
3.11 Keywords
 Agile Method
 Scrum Process
 Sprint
 Extreme Programming

3.12 Recommended Reading


1. Pressman, Roger S. (2009), Software Engineering: A Practitioner’s Approach, 7th Ed.,
McGraw-Hill.
2. https://nptel.ac.in/courses/106105182

OMC204 Software Engineering Page 7

You might also like