Agile Methodology in Software Development

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 8

Agile methodology in

software development
Presented by
XXXXXXXXXXXX

Introduction:
Agile stands for swift or versatile. The process of developing software in an

iterative manner is the “Agile process model” [software-engineering-agile-model].

This process involves breaking the tasks into multiple smaller iterations. In terms of

business perspective, the working software will be delivered to the customer with

small developments to the user [Dingsøyr, et al.,2012]. The number of iterations,

spawn of each iteration is clearly mentioned at the beginning of the development of

the process. The advantage of dividing the entire project into many iterations will

help to reduce the time to delivery of the project as well minimize risks involved in

the development phase. The motive of this practice is the flexibility of the teams so

they work at a pace that strengthens their creativity and productivity. The inherent

nature of the Agile process in its principles allows the changes in the requirement of

the project at any stage. In every iteration, feedback is provided by the customers

which will help in improving and actively developing the software according to the

requirements of the customer. The agile process provides guidelines to deliver

software with high-quality in a principled manner. With time, the definition of the Agile

model has gone through changes. The roots of the new definition of the agile model

are mainly from manufacturing and management domains. A definition by

Henderson-sellers is that agility can refine and fine-tune the development process as

per the requirements. Another definition of agility was given by Lee and Xia, ``agility

as the software team's capability to efficiently and effectively respond to and

incorporate user requirement changes during the project life cycle.” A more

comprehensive definition was provided by Conboy, which states that “systematically

examining its various facets and definitions from related disciplines”. Conboy

provided the distinction between agility, flexibility, and leanness. The important thing

is agility was conceptualized to include and go beyond both flexibility and leanness.
2
The ability of the development method to adopt the changes actively, reactively,

proactively in a timely manner is called flexibility. From the customer perspective,

change in the economy because of the software cycles and the simplicity is called

leanness. Another definition by Conboy was, the ability of the development process

to adhere to the changes in the development or implement from the customer’s

perspective is called agility.

Agile Software Development:

Agile manifesto emerged from a meeting for better development of software.

This manifesto was agreed upon by a committee of 17 members [Thakur, et

al.,2013]. The manifesto included four core values, to help in uncovering better ways

of developing software. Individuals and Interactions over Processes and Tools: To

perform better no communication gap should exist among the team to perform better

than the average of the industry. So, agile methodology encourages increased

communication among the peers which helps to increase the performance of the

team. Working Software over Comprehensive Documentation: The Customer should

receive a small piece of working software in every regular interval time, this point

was stressed in the agile manifesto. Customer Collaboration over Contract

Negotiation: Success of software can be efficiently achieved if the customer is

involved in the development of the software process. Responding to change over

following a plan: An important criterion of agile methodology is dynamically changing

the plans of developing the software based on the feedback provided by the

customer.

3
Principles of Agile Manifesto:

Satisfying the customer is the priority of the manifesto. This can be only

achieved by timely delivery of the software. The change in requirements should be

welcomed and the design is in such a way to adapt to the new changes in the

software such that customers can sustain the competitive world. Delivery of the

working software must be regular(weeks) and in pieces, The developers and the

customers must work together to produce an efficient working software. Motivating

the people around the project to build an efficient final product is needed so that their

creativity is applied in a well-planned software design. Communication must be face-

to-face, which helps in passing the information smoothly without any errors. To

measure progress, working software is the major thing. Sustainable development of

the software is the key process in the Agile development cycle. Continuous attention

to technical excellence and good design enhances agility. Simplicity is the key

ingredient of the Agile process. A better team can find the best architectures and find

the best requirements. The Agile model encourages such a team. Adjusting the

working nature is the major component of any developing team, depending on the

team achievement at regular intervals, the team must adapt to the changes that

need to be implemented.

Agile Methods [Thakur et al,2013] [analytics.com]:

Depending on the developing team and requirement the pipeline of development can

be designed. Different Agile methods help in different scenarios. Here we will

discuss a few Agile methods.

4
Extreme Programming (XP):

This is one of the successful methods, it stresses on customer satisfaction

rather than the delivery time of the product. It encourages teamwork, by enabling

group work development. The XP team not only included developers but also

managers and customers as an equal part of a team that works together and

delivers a high-quality product. Five principles of XP are Simplicity, communication,

feedback, courage, and quality work of the team. One of the drawbacks of XP is, the

principle of XP does not suit distributed teams. XP encourages collaborative code

ownership i.e. no module is owned by a single person and that is the advantage of

XP. Because of the principles of XP, it helps to speed up the development process

and also helps in detecting errors and faults at the coding phase which improves the

effectiveness of the software.

Scrum:

In the development of the software scrum is another lightweight method

similar to extreme programming. This is built on practical experiences rather than the

theory of developing software. The projects are divided into work sections which are

compact called sprints. The sprints are provided duration in weeks to implement.

The customers, developers, and stakeholders will meet and discuss the

development of the project at the end of each sprint. There are three major roles in

Scrum, (i) The product owner, who has the responsibility to adequately communicate

with team members to share his/her vision over the product to the development team

and also considers the customer’s interest in the product. (ii) Scrum master, who
5
acts as the mediator between the product owner and the developer. (iii)team

members are responsible for completing the work on time.

Feature Driven Development:

It refers to the delivery of working software which is a small piece of the complete

software but an important feature functionality. For the team which is working on a

big project, this is an iterative process.

Kanban:

Among the lean teams, the workflow of the management approach is represented

more visually. For focussing on continual delivery of the product, this is employed for

visualizing, thoroughly maintaining the making of the products. But it does not make

any key role in keeping stress on the product development cycle. It is a process that

is developed for collaborative teamwork which is similar to Scrum. Similar to scrum it

is also suggested for efficient development of the software with teamwork. It works

with three principles: (i) For Visualizing what to perform today: Visual representation

of the workflow, suggesting what to do each day and by each other. This could be

very informative. (ii). For bounding the quantity of work in progress, in the flow-based

approach, it bounds the quantity of work in progress to maintain harmony among the

team members. It controls the amount of work done by the team. (iii). For boosting

flow, the next priority will start discussing, when the part of in-progress work is about

to complete. However, Kanban encourages steady collaboration and maintains

active, continuous learning and enhancement through describing the best plausible

team workflow.

6
Crystal:

It is a cluster of small agile methodologies that incorporate Crystal Clear, Crystal

Yellow, Crystal Red, and many more. Each small Agile methodology has its own

specific framework. While participating in the writing of the Agile manifesto for

software development, Alistair Cockburn introduced this method. Team size, system

seriousness, project preferences are considered to be the three important factors

that define a project. Here projects are categorized into four levels depending on the

system criticality. Comfort(c), Discretionary Money (D), Essential Money (E), and

Life (L). Depending on the size of the project, the most people can be involved in the

project.

Bibliography

[1]software-engineering-agile-model,https://www.javatpoint.com/software-engineering-agile-
model

[2] Dingsøyr, Torgeir, Sridhar Nerur, VenuGopal Balijepally, and Nils Brede Moe. "A
decade of agile methodologies: Towards explaining agile software development." (2012):
1213-1221.

[3] Thakur, Sonia, and Amandeep Kaur. "Role of agile methodology in software
development." International Journal of Computer Science and Mobile Computing 2, no. 10
(2013): 86-90.

[4] www.analyticssteps.com,https://www.analyticssteps.com/blogs/7-types-agile-
methodologies
7
8

You might also like