Вы находитесь на странице: 1из 40

Running head: AGILE MODEL IN SOFTWARE ENGINEERING 1

Agile Model In Software Engineering

Thanh Pham

CS - 652

Colorado Technical University


AGILE MODEL IN SOFTWARE ENGINEERING 2

Table Contents

These models of software development life cycle .............................................................. 4

Life cycle of software development ................................................................................ 4

Collect and analyze requirements ............................................................................... 5

Design ......................................................................................................................... 5

Coding ......................................................................................................................... 5

Testing......................................................................................................................... 6

Deployment ................................................................................................................. 6

Maintenance ................................................................................................................ 6

These models of software development .......................................................................... 6

Waterfall model .......................................................................................................... 7

V model ....................................................................................................................... 9

Incremental model .................................................................................................... 11

RAD model ............................................................................................................... 14

Iterative model .......................................................................................................... 17

Spiral model .............................................................................................................. 19

Prototype model ........................................................................................................ 21

Agile Model in Software Development ............................................................................ 22


AGILE MODEL IN SOFTWARE ENGINEERING 3

The overview of Agile model ....................................................................................... 22

The four values of the Agile model .............................................................................. 24

The twelve principles of Agile model ........................................................................... 26

Agile model example .................................................................................................... 27

Compare the Agile model and Non-Agile models ........................................................ 33

Using agile and Non-Agile models ............................................................................... 35

Pros of Agile model ...................................................................................................... 37

Cons of the Agile model ............................................................................................... 38

References ......................................................................................................................... 38

Table of figures

Figure 1: Waterfall Model. ....................................................................................... 8

Figure 2: Vee Model ............................................................................................... 10

Figure 3: Incremental model example. ................................................................... 12

Figure 4: Incremental Model. ................................................................................. 13

Figure 5: RAD model. ............................................................................................ 15

Figure 6: Iterative model example .......................................................................... 17

Figure 7: Iterative model. ....................................................................................... 18

Figure 8: Spiral model. ........................................................................................... 20

Figure 9: Prototyping model. .................................................................................. 21

Figure 10: Agile Model. ......................................................................................... 23


AGILE MODEL IN SOFTWARE ENGINEERING 4

Figure 11: These activities on traditional model. ................................................... 28

Figure 12: These phase in an iteration.................................................................... 30

Figure 13: The iterations of an Agile project ......................................................... 31

Figure 14: Relationship between software and iterations ...................................... 32

These models of software development life cycle

Life cycle of software development

In the process of software development, we can design and employ various

approaches to software development. These approaches of software development are also

known as these models of software development. There are some models like spiral,

waterfall, incremental, V, prototype, RAD, iterative, and Agile model. Each software

development model will follow a specific lifecycle to ensure that the software

development process is successful (ISTQB Exam Certification, 2017a).

The software development process model will describe the stages of the software

development life cycle as well as the order in which these stages are executed. Software

requirements are transformed into designs. Based on the design, the code will be created.

This is called development phase. After the development phase, the test phase will

compare the product with the software requirements. The test team will check with

software testing life cycle to evaluate the software.


AGILE MODEL IN SOFTWARE ENGINEERING 5

A software development life cycle usually has six stages: Collect and analyze

requirements, design, coding, testing, deployment, and maintenance.

Collect and analyze requirements

Software requirements will be collected during this stage. This stage focus on the

job between stakeholders and managers. The discussion between these parties like

stakeholders, custiomers, and managers will be organized to identify requirements

through answering the questions like “Who is the software used by?” “How is the

software used?” “The input of the software” “The output of the software”. These

questions will be answered and recorded throughout this stage. After collecting the

software requirements, they will be analyzed for their ability to incorporate them into the

software.

After completion of the analysis and agreement with the parties, a software

requirements specification document will be created. The purpose of this document is to

guide the next stage. This document will also be used by the testing team for software

testing.

Design

During this stage, software design will be prepared based on the software

requirements specification document that was finalized at the earlier stage. Software

design defines the overall architecture of the software as well as hardware requirements.

A system design specification document will be provided as input to the next stage of the

model.

Coding
AGILE MODEL IN SOFTWARE ENGINEERING 6

After receiving the software design documentation, the job of this stage is to split

the software into smaller modules and execute it. In this stage the code will be created

and this stage will be for the developers. The coding is the longest period in the software

development life cycle.

Testing

After these codes have been developed, it will be re-checked to ensure that the

software meets the requirements described in the software specification document. In this

stage these types of testing such as unit, integration, system, acceptance testing and non-

functional testing will be completed.

Deployment

After the testing process is finished, the product will be delivered to the customer.

If any errors are found, the customer will report back to the technical team. When all

errors are fixed, this phase will be completed.

Maintenance

Maintenance is the process of taking care of the product that has been delivered to

the customer. In the process that customers use the product, the actual problems will be

discovered and these issues need to be overcome over time. The whole process of solving

this will be called maintenance.

These models of software development

These models of software development are methods or processes which are chosen

to develop a project. The choice of the model depends on the objectives of the project.
AGILE MODEL IN SOFTWARE ENGINEERING 7

There are many models of software development life cycle which developed to achieve

the goals. The choice of model will greatly affect the testing process. It will determine

what testing technique will be used.

There are many different models of software development. They are listed below:

Waterfall, V, Incremental, RAD, Iterative, Spiral, Prototype, Agile Model. Using the

appropriate model for developing software applications is very important. Because of the

development and testing process will be based on the selected model.

Different companies will choose different types of development models that match

the company's product type. Currently the agile model is the most commonly used model.

This model breaks the software into small functions, developing and testing these

functions. Create a demo for the customer, the customer can see the function and give

revisions if needed. Waterfall model is a model that has been used for a long time.

Testing is only performed when the whole development process is complete. Because

errors are shown at the end of the process, the cost of repairing is huge.

There are many companies that use “V model” to apply for their product

development. In the V model, the testing process is carried out simultaneously with the

development process. Similarly, models such as “RAD model”, “Spiral model”,

”incremental model” are also used based on customer requirements and product

requirements.

Waterfall model

Waterfall model is a simple model to use and apply. In the waterfall model, a stage

will have to be completed before the next stage is started. This model is also called the
AGILE MODEL IN SOFTWARE ENGINEERING 8

sequential life cycle model. This model is often applied to small project, the requirements

are less varied and clear. In this model the software testing process is only carried out

after the development process has been completed. The stages in this model are

completely independent and do not overlap (ISTQB Exam Certification, 2017i).

Figure 1: Waterfall Model. Adapted from " What is Waterfall model," by Istqb
Exam Certification. Retrieved from http://istqbexamcertification.com/what-is-waterfall-
model-advantages-disadvantages-and-when-to-use-it/

Pros of waterfall model

Waterfall model is simple to understand and apply. It is easy to manage because

the rigidity of the model. Stages are completely independent and do not overlap.This

model applies to small projects where software requirements are simple and less varied.

Cons of waterfall model


AGILE MODEL IN SOFTWARE ENGINEERING 9

When a product is testing, it will be very difficult for the application to change

requirements that is not included at the software requirements gathering stage. Customers

may only see software at the end of the software development life cycle. The risk is quite

high. This model is not suitable for projects where the requirements of the software vary

widely.

Using the waterfall model

The waterfall model is used only if the software requirements are understandable

and fixed. The definition of product is fixed. Technology is well understood. There are no

unclear requirements. Applying for small and short project.

Customers are less likely to interact with the product development process.

Customers will only be exposed to the product when it is finished. Once the product has

been developed, the cost of fixing the defects is high.

V model

The V-shaped is also known as the test and authentication model. Like the

waterfall model, the V-shaped model is a sequential processing model. A stage must be

fully completed before the next stage is started. V-shaped model is one of the many

software development models. The product testing process is carried out in parallel with

the product development process in this model (ISTQB Exam Certification, 2017h).
AGILE MODEL IN SOFTWARE ENGINEERING 10

Figure 2: Vee Model. Adapted from " What is V-model," by Istqb Exam
Certification. Retrieved from http://istqbexamcertification.com/what-is-v-model-
advantages-disadvantages-and-when-to-use-it/

The stages of the V model are listed below:

Software requirements are the first stage of the life cycle model as well as the

waterfall model. In this model before the development phase is started, a system test plan

will be created. The system test plan will focus on the functional requirements that are

specified in the requirements collection process.

The high-level design phase will focus on system architecture design. It provides

an overview of the solution, the system, the platform, the process. An integrated test plan

will be created at this stage to test the interoperability of the components of the software.
AGILE MODEL IN SOFTWARE ENGINEERING 11

The low-level design stage is where the real components of the software are

designed. It defines the real relationships of components in the system. A component

testing plan will be created during this stage.

The programming stage is the stage at which the code is generated. Once the code

is completed, the previous test plan will be used. The code generation stage is the bottom

of the V model. The system design is converted into code by the programmer. Unit

testing plans will be executed by programmers on the code that is generated by them.

Pros of V-model

Simple and easy to use. Test plans are planned before code generation. This will

save a lot of time. The success rate is higher than the waterfall model. Errors will be

found in the early stages. Compatible with small projects, the software requirements are

easy to understand.

Cons of V-model

This is a rather rigid and non-flexible model. Software developed during the

implementation phase. If there are changes in the middle of the line, the test document

will have to update

Using the V-model

The V model is used for small and medium projects where software requirements

are clearly defined and fixed. V model is selected when technical resources are available.

Customer confidence is required when choosing a V model. No prototypes are created

and the rate of failure to meet customer expectations is very high.

Incremental model
AGILE MODEL IN SOFTWARE ENGINEERING 12

The entire software requirement will be broken down into smaller requirements in

the incremental model. There are many development cycles that take place in this model.

This model makes the software development life cycle much like a collection of waterfall

models. Software development lifecycles will be broken down into smaller, more

manageable modules. Incremental modeling is also a type of software development

model similar to the V model, the Agile model (ISTQB Exam Certification, 2017c).

In this model, each module must go through stages such as requirements

gathering, design, implementation, testing. A working version of the software will be

created throughout the first module, so we will have a fairly early version of the software

throughout the software development life cycle. Each subsequent version of the module

adds functionality to the previous version. The process will continue until the system

completes..

For example:

Figure 3: Incremental model example. Adapted from “What is Incremental


model," by Istqb Exam Certification. Retrieved from
http://istqbexamcertification.com/what-is-incremental-model-advantages-disadvantages-
and-when-to-use-it/
Diagram of Incremental model:
AGILE MODEL IN SOFTWARE ENGINEERING 13

Figure 4: Incremental Model. Adapted from “What is Incremental model," by


Istqb Exam Certification. Retrieved from http://istqbexamcertification.com/what-is-
incremental-model-advantages-disadvantages-and-when-to-use-it/

Pros of Incremental model

Working software is created early and quickly throughout the software

development life cycle. This model saves money when customers change their

requirements. Testing is easier when performed on small modules. Customers can

interact and respond to each module. Lower transfer costs. Risk management is easier

because the risks of each small module are defined and controlled during the interaction

process

Cons of Incremental model

A good plan and design is needed. The whole system must be fully defined before

it can be broken down and built up step by step. The total cost for selecting this model is

higher than the waterfall model.

Using the Incremental model


AGILE MODEL IN SOFTWARE ENGINEERING 14

This model can be selected when the requirements of the whole system are defined

and understood. Key requirements must be defined. Models are selected for products that

need to be brought early to market. New technology used. Have high risk characteristics

and goals.

RAD model

The rapid application development model is a type of incremental model. In the

RAD model, functions or components are developed simultaneously as they are small

modules. Development is time boxed, transferred, and assembled into an operational

prototype. This can quickly provide the customer with something to look at and use, and

to provide response regarding their requirements (ISTQB Exam Certification, 2017f).

Diagram of rapid application development model


AGILE MODEL IN SOFTWARE ENGINEERING 15

Figure 5: RAD model. Adapted from " What is RAD model," by Istqb Exam
Certification. Retrieved from http://istqbexamcertification.com/what-is-rad-model-
advantages-disadvantages-and-when-to-use-it/

Rapid application development (RAD) model have some stages that are listed

below:

Business Modeling: The flow of information will be identified between different

business functions.
AGILE MODEL IN SOFTWARE ENGINEERING 16

Data Modeling: The information obtained from business modeling will be used to

define these data objects that are needed for the business.

Process Modeling: Data objects defined in data modeling will be transformed into

business information flows to achieve specific business objectives.

Descriptions will be defined and created for the CRUD of data objects.

Application creation: Automated tools will be used to transform the processing

models into the actual system and code.

Test and turnover: All components and interfaces will be tested.

Pros of the RAD model

Development time decreased. The usability of the components increases. Initial

feedback will appear soon. Customer feedback is encouraged. Integration issues will be

resolved due to the integration process taking place soon.

Cons of RAD model

Determining the business requirements depends on the strength of the team and

the capabilities of the individual. Only modularized systems can be built in the RAD

model. Developers and designers require high expertise. This model often applies to

projects that have high costs.

Using RAD model

RAD should be used when the system can be modulated in 2-3 months. It should

be chosen if there are many designers available to model and the budget is high enough to

pay for their effort along with the cost of automated code generation tools. The RAD
AGILE MODEL IN SOFTWARE ENGINEERING 17

model should only be chosen if high business intelligence resources are available and

production is required in a short period of time (2-3 months).

Iterative model

The iterative development lifecycle model does not require a full specification of

the software requirements. Instead, the development process begins with specific part of

software, which can be evaluated to determine the next requirements. This process is

repeated, creating a new version of the software for each cycle of the model (ISTQB

Exam Certification, 2017d).

For example

Figure 6: Iterative model example. Adapted from " What is iterative model," by
Istqb Exam Certification. Retrieved from http://istqbexamcertification.com/what-is-
iterative-model-advantages-disadvantages-and-when-to-use-it/

In the example above, the job will be repeated. The original product is only in the

raw form, then it will be reviewed and improved in the next iteration, the same process

continues until the completion.

Diagram of Iterative model:


AGILE MODEL IN SOFTWARE ENGINEERING 18

Figure 7: Iterative model. Adapted from " What is iterative model," by Istqb
Exam Certification. Retrieved from http://istqbexamcertification.com/what-is-iterative-
model-advantages-disadvantages-and-when-to-use-it/

Pros of Iterative model

We will only create high-level design of the application before actually starting to

build the product and define a design solution for the entire product. Then a skeleton of

the product will be designed and constructed. Then the whole design will be based on

what has been built. Products will be improved step by step in this model. Therefore

errors can be tracked at very early stages. Reliable feedback from users will be sent to us.

We can ask them how the product works when we present the design and sketch of the

product to the user. Time to create the document will decrease, the design time will

increase.

Cons of Iterative model

Each stage of an iteration is rigid and non-overlapping. The cost of system

architecture or design issues may increase as not all requirements are collected for the

entire lifecycle.
AGILE MODEL IN SOFTWARE ENGINEERING 19

Using iterative model

The complete system requirements are clearly understood and defined. The project

is big. Main requirements have to be defined.

Spiral model

The spiral model is similar to the incremental model, with an emphasis on the risk

analysis phase. The spiral model has four phases: the planning phase, the risk analysis

phase, the design phase, and the evaluation phase (ISTQB Exam Certification, 2017g).

A software project will be going through these stages in iterations. The basic spiral

is started during the planning phase, the requirements are collected, these risks are taken

into consideration. The next spiral will be based on the basic spiral.

Planning stage: Software requirements are collected during the planning phase.

Risk Analysis stage: A process is performed to define the risks and alternatives. A

prototype will be created at the end of the risk analysis stage. Alternative methods will be

implemented when any risk is found in the risk analysis process.

Design stage: During this stage the software has been developed, along with the

test at the end of the stage. Therefore, in this stage testing and development will be

completed.

Evaluation Stage: This stage allows the client to evaluate the output of the project

before the project continues the next spiral.

Diagram of Spiral model:


AGILE MODEL IN SOFTWARE ENGINEERING 20

Figure 8: Spiral model. Adapted from " What is Spiral model," by Istqb Exam
Certification. Retrieved from http://istqbexamcertification.com/what-is-spiral-model-
advantages-disadvantages-and-when-to-use-it/

Pros of Spiral model

The risks are avoided by a large amount of risk analysis. This model is suitable for

projects with important tasks. Powerful document control. Additional functions may be

added later. Software is created early in the software development life cycle.

Cons of Spiral model


AGILE MODEL IN SOFTWARE ENGINEERING 21

The model is quite costly to use. Risk analysis requires high expertise. The success

of the project depends on the stage of risk analysis. Not suitable for small projects.

Using Spiral model

Models are chosen where cost and risk assessment are important. This model is for

high risk projects. Users do not identify their needs. The requirements are very complex.

The model is applied to the new product line

Prototype model

In the prototype model, prototypes will be developed based on current known

requirements. By using prototypes, customers can get closer to the real-world system, and

customers can better understand the system through interaction with the prototype.

Prototype is an interesting idea to help define software requirements. Prototypes often do

not provide for complex systems that have many details not built into the prototype

(ISTQB Exam Certification, 2017e).

Diagram of Prototype model

Figure 9: Prototyping model. Adapted from " What is Prototyping model," by


Istqb Exam Certification. Retrieved from http://istqbexamcertification.com/what-is-
prototype-model-advantages-disadvantages-and-when-to-use-it/
AGILE MODEL IN SOFTWARE ENGINEERING 22

Pros of Prototype model

Customers are actively involved in the software development process. Customers

can better understand the system through prototypes. Errors can be detected sooner. Early

feedback will lead to better solutions. The error function can be determined soon. Hard or

complex functions can be defined.

Cons of Prototype model

This model can lead to the implementation and then modify the way the system is

built. This model is likely to increase the complexity of the system. The scope of the

system may be wider than originally planned. Incomplete applications may be the reason

the application is not being used as the system is designed.

Using Prototype model

The prototype is suitable for systems that have a lot of interaction with customers.

Web systems that interact with users are highly relevant to this model. This model

ensures that users continually work with the system and provide a response. This model

is great for interactive design between the user and the system.

Agile Model in Software Development

The overview of Agile model

Agile software development model is a software development process similar to

other software development models (Water model, V model, Iterative model, etc.). Agile
AGILE MODEL IN SOFTWARE ENGINEERING 23

means "quick and easy migration" and the ability to respond quickly to changes. This is

also an important aspect in this model (ISTQB Exam Certification, 2017b).

Agile software development thinks that each project needs a different handling

and these methods need to be adapted to suit each project requirement. In this model,

these tasks should be divided into small time boxes to provide a specific feature for a

release.

An iterative approach is chosen and the version of the software delivered to the

user after each iteration. Each version of the software will be enhanced with features. The

final build will have all the functionality required by the client (Quick Scrum, 2016).

Diagram of Agile model:

Figure 10: Agile Model. Adapted from " What is Agile model," by Istqb Exam
Certification. Retrieved from http://istqbexamcertification.com/what-is-agile-model-
advantages-disadvantages-and-when-to-use-it/
AGILE MODEL IN SOFTWARE ENGINEERING 24

In the Agile software development model, the development process is started early

and therefore the model becomes more popular over time because of its adaptability and

flexibility.

The most popular Agile methods include Rational Unified Process (1994), Scrum

(1995), Crystal Clear, Extreme Programming (1996), Adaptive Software Development,

Feature Driven Development, and Dynamic Systems Development Method (DSDM)

(1995). After the Manifesto of Agile was announced in 2001, these above methods were

considered as Agile methods.

In traditional software development models such as the waterfall model, a project

may need several years to complete and final product can’t be shown for customers until

the project is finished. For high level projects that do not use the agile model, they often

have to allocate extended time periods for collecting software requirements, designing,

developing, testing before implementing the project.

On the other hand, projects using the agile model will divide large projects into

shorter development periods (sprints or iterations). These periods usually range from 2

weeks to 2 months. In these periods, the predefined characteristics will be developed and

delivered to the customer for evaluation.

Projects using the Agile model may have one or more small iterations and the

finished product will be fully delivered to the customer in the final iteration.

The four values of the Agile model


AGILE MODEL IN SOFTWARE ENGINEERING 25

The Agile Agenda includes four values and 12 principles to lead the Agile

approach to software development. Each Agile approach applies four values in different

ways, but they must all be based on these values to guide the development and delivery

of quality products (Smart Sheet).

Individuals and interactions

Motivation and self-organization are preferred over delegation and adherence to

seniority in the Agile software development life cycle,. Team members are encouraged to

actively participate in the development and planning process. They can make specific

decisions by themselves. The Agile team must share ideas and collaborate for product

development. A common vision is supported by each member of team.

Working software

The Agile software development model focuses on distributing stable product

releases through increased product cycles over document and operating protocols. The

main objective of this model is to develop and distribute fault-free product functions in a

continuous and stable manner until the entire product is done.

Customer collaboration

At the beginning of the project, all software requirements related to product

development are often unavailable or incomplete due to many reasons. In this model, the

development process takes place immediately and a working product release is shown for

the customer to verify and adjust. Stakeholders and project managers will communicate

to understand all necessary features of the product. Development time is greatly saved
AGILE MODEL IN SOFTWARE ENGINEERING 26

through collaborative processes with customers. The success rate will be higher due to

always consulting and consensus of customers.

Responding to changes

The Agile software development model focuses on incorporating dynamic changes

in the product development cycle. These changes in product features can be made easily

by developing user requirements. User requirements here are product features or

functions that are described in the product records. Changes can be made at any time

while features are growing, including late in the product development cycle.

The twelve principles of Agile model

Here are 12 guidelines for Agile models. They describe the culture in which

change is easily received, customer focus on work (Smart Sheet).

 Satisfying customer requirements through the early and continuous delivery of

quality products is the highest priority of this model.

 Accept all change requests even late in the development process. The Agile model

handles changes for the competitive advantage of the customer.

 In a short time, the stable version of the product is delivered to the customer.

Delivery times are sequential, ranging from a few weeks to a few months.

 Developers and customers must work together on a daily basis throughout the

product development process.

 The project was developed by motivated individuals. These individuals will be

trusted and provided with all the things they need to be able to finish the job.
AGILE MODEL IN SOFTWARE ENGINEERING 27

 The most effective method of exchanging information in a team is face-to-face

meetings.

 The stable version of the software that is delivered to customers is the main

measure of the development process.

 The agile processors promote a stable development. Sponsors, developers, and

users should maintain a steady pace

 Continuously focus on great technology as well as good design to enhance agility.

 Simple is essential.

 The self-organizing groups will provide the best requirements, architecture, and

design.

 Frequently, the team reflects on how to become more efficient, then adjust its

behavior accordingly.

Agile model example

Example: Google is planning to build a product to compete with a product that

was previously built by MS Word. Google's request is a new product that provides all of

the features that Ms Word has to offer, plus new features offered by the marketing team.

The final product should be completed in 10 months. Here are two approaches that will

be used to develop this software. Use Agile model and use traditional model like

waterfall model.

Using waterfall model:


AGILE MODEL IN SOFTWARE ENGINEERING 28

The project team will spend 15% of the project time collecting software

requirements and analyzing them (1.5 months). Time spent on application design is 20%

(2 months). Time for code generation and unit testing is 40% (4 months). The time for

integration testing and system testing is 20% (2 months). This project will have 5% of the

time for user acceptance testing.

Customers will not see the final product until the end of the project. Any change

request will become too late and the cost is huge. Below is an illustration of the activities

on this project as we use the traditional software development model.

Figure 11: These activities on traditional model. Adapted from " What is Agile
methodology" by Istqb Exam Certification. Retrieved from
http://istqbexamcertification.com/what-is-agile-methodology-examples-when-to-use-it-
advantages-and-disadvantages/
AGILE MODEL IN SOFTWARE ENGINEERING 29

Use the Agile development model

When using the Agile model, the project will be broken down into a number of

short periods that we call "iterations." All of these periods will have the same duration

and usually two to eight weeks. At the end of each period, a working product will be

delivered to the customer. In other words, customers will receive 10 releases of the

product when applying the agile approach (assuming that each 4-week short period).

In this approach, the team will not spend 1.5 months collecting and analyzing

software requirements. Instead, they will find the core features of the product that can be

developed in the first iteration. All the features that were not implemented in the first

iteration will be implemented in the next iteration. The selected feature for the next

iteration will be based on the priority of the feature.

Teams will transfer a working software with these features that were selected for

development in the first iteration. There will be 10 versions delivered to customers

corresponding to 10 iteration of development. A later version will be added to the new


AGILE MODEL IN SOFTWARE ENGINEERING 30

features. The iterations of an Agile project is shown as shown below.

Figure 12: These phase in an iteration. Adapted from " What is Agile
methodology" by Istqb Exam Certification. Retrieved from
http://istqbexamcertification.com/what-is-agile-methodology-examples-when-to-use-it-
advantages-and-disadvantages/
AGILE MODEL IN SOFTWARE ENGINEERING 31

Figure 13: The iterations of an Agile project. Adapted from " What is Agile
methodology" by Istqb Exam Certification. Retrieved from
http://istqbexamcertification.com/what-is-agile-methodology-examples-when-to-use-it-
advantages-and-disadvantages/

These customers can interact with the working software at the end of an iteration,

and customers can provide feedback on the release. This approach also allows the team to

receive required changes and easily correct them if needed. In the Agile approach, the

software will be developed and released from ascending in iteration. The relationship

between the software and the iterations is shown in the figure below.
AGILE MODEL IN SOFTWARE ENGINEERING 32

Figure 14: Relationship between software and iterations. Adapted from " What
is Agile methodology" by Istqb Exam Certification. Retrieved from
http://istqbexamcertification.com/what-is-agile-methodology-examples-when-to-use-it-
advantages-and-disadvantages/

The Agile model demonstrates the importance of teamwork, collaboration with

customers, feedback on product changes and working product delivery. Due to its

outstanding advantages, the Agile model is popular in the information technology

industry. In a recent survey, more than 52% of respondents said their company was using

the Agile development approach to their projects. Understanding how the Agile

development model works is needed for any position in the team.

In traditional development methods, each function performs its job then moves

over to the next function. The previous function must confirm completed in all aspects

before moving to the next function. Requirements are collected and analyzed complete

and then passed through the design phase. End of the design phase will move through the

development phase and then the test phase. Each major function is a phase in itself.

In the way the Agile model works, each feature is completed in terms of design,

development, code generation, testing before the feature is considered done. This model

does not have separate phases and all work is completed in a single phase.
AGILE MODEL IN SOFTWARE ENGINEERING 33

Compare the Agile model and Non-Agile models

Agile software development model is based on adaptive approach, while

traditional development models such as waterfall model are based on predictive

approach. Teams that work with traditional models often work with detailed plans and a

complete prediction of the tasks and characteristics that are delivered in the next few

months or throughout the product life cycle.

The predictive approach is entirely dependent on required analysis and plans are

completed at the beginning of the cycle. Any changes are strictly controlled. The Agile

model uses an adaptive approach that does not have a detailed plan and only clarifies

what functions need to be developed immediately. This model has developed according

to the features and the team will adapt to the changing requirements of the product.

Products are tested regularly, through releases. This will reduce the risk of future bugs.

Interaction with customers is the backbone of the Agile model. Open

communication with a small amount of documentation is a typical feature of the Agile

approach. The Agile team will work closely together and the members are usually placed

in the same location.

Parameters Agile Model Non-Agile Models

Methodology Approach This model is very This model is less

adjustable and flexible and flexible than the Agile

it can adapt to the project model. It is also difficult to


AGILE MODEL IN SOFTWARE ENGINEERING 34

requirements. adapt to changes in the

project.

Success Measurement The business value Preparation in the

delivered is the measure of planning phase is a

the success of the project. measure of the success of

this method.

Project Size The size of project The size of project

is often small in Agile is large in non- Agile

model. However big models.

projects can also be

handled using the Scaled

Agile Framework (SAF).

Management Style The Agile The non-Agile

management model does management style is

not centralized. It is dictatorial. There is only

distributed among team one decision maker and all

members. will have to follow that

person's decision.

Response to change Software The changes to

requirements change is software requirements are

accepted and adapted easily difficult to accept and


AGILE MODEL IN SOFTWARE ENGINEERING 35

in Agile model. adapt in Non-Agile model.

Documentation The documentation The documentation

required in the Agile model required in the Agile model

is not much. is very much

Importance This is a human- This is a process-

oriented model oriented model.

Iterations This model breaks In the Non-Agile

down the project into lots model the cycles are

of small loops which is also limited.

known as iterations.

Advance Planning Only important A complete plan

features are planned in must be prepared before

advance. development.

Revenue The return on The return on

investment is early in the investment is at the end of

project cycle. the project.

Team Size The team size is The size of team is

usually small and creative. large.

Using agile and Non-Agile models


AGILE MODEL IN SOFTWARE ENGINEERING 36

When changes to software requirements need to be made. The agility to change is

very important. New changes can be made at low cost by the frequency of new

increments that are created. A new feature will only take a few days or a few hours to

analyze and implement.

In the Agile model the plans for starting a project are very limited. This model

assumes that customer requirements are changing. These changes can be discussed and

the features can be refreshed or removed based on feedback. This flexibility will give

customers the final product what they really want.

Project Agile Model Non-Agile Model

Attributes

Project Software requirements Software

Requirement change is accepted upon requirements need to be

request of the customer. clearly defined before

Sometimes these requirements project development. Any

are unclear. change in requirements

will not be easily accepted

in the development

process.

Project Size The size of project is The size of project

small is usually big.


AGILE MODEL IN SOFTWARE ENGINEERING 37

Project Design The design is for The design is for

current specifications that can current specifications as

be changed and flexible in the well as for the future.

future

Customers Type This model is for This model is for

customers who want to be customers who have

cooperative, dedicated, and contract terms.

knowledgeable about the

system.

Developers In the Agile model, In Non-Agile

required developers need to understand, models the developers

analyze, collate and need to be more plan

collaborate. oriented.

Refactoring The cost of refactoring The cost of

is very low. refactoring is very high.

Risks involved The risk of unknown is Risks are clearly

high and can have a major understood and the impact

impact on the project. of project risks is minimal.

Pros of Agile model


AGILE MODEL IN SOFTWARE ENGINEERING 38

This is a very practical approach to software development. This method promotes

teamwork and cross-training. The functions are rapidly evolving and illustrated. This

method does not require too much resources. This method can be applied to projects with

fixed or variable requirements. The right solution to the problem is transferred soon. Easy

to deploy documentation with few rules. The original plan was very little or no

requirement. Easy to manage. Provides flexibility for developers (Tutorials Point).

Cons of the Agile model

This method is not suitable for handling complex dependencies. There are many

risks of maintenance and expansion. A master plan, an agile leader is required to be able

to manage the project. This method depends a lot on the understanding of the customer. If

the client is not clear, the team will go in the wrong direction. Dependence on the

individual is very high because only very few materials are created. Transferring projects

to a new team will be difficult because there are not many documents.

References

ISTQB EXAM CERTIFICATION. (2017, 07). What are the Software Development Life Cycle

(SDLC) phases? Retrieved from ISTQB EXAM CERTIFICATION:

http://istqbexamcertification.com/what-are-the-software-development-life-cycle-sdlc-

phases/

ISTQB EXAM CERTIFICATION. (2017). What is Agile methodology? Examples, when to use

it, advantages and disadvantages. Retrieved from ISTQB EXAM CERTIFICATION:


AGILE MODEL IN SOFTWARE ENGINEERING 39

http://istqbexamcertification.com/what-is-agile-methodology-examples-when-to-use-it-

advantages-and-disadvantages/

ISTQB EXAM CERTIFICATION. (2017, 07). What is Incremental model- advantages,

disadvantages and when to use it? Retrieved from ISTQB Exam Certification:

http://istqbexamcertification.com/what-is-incremental-model-advantages-disadvantages-

and-when-to-use-it/

ISTQB EXAM CERTIFICATION. (2017). What is Iterative model- advantages, disadvantages

and when to use it? Retrieved from ISTQB EXAM CERTIFICATION:

http://istqbexamcertification.com/what-is-iterative-model-advantages-disadvantages-and-

when-to-use-it/

ISTQB EXAM CERTIFICATION. (2017). What is Prototype model- advantages, disadvantages

and when to use it? Retrieved from ISTQB EXAM CERTIFICATION:

http://istqbexamcertification.com/what-is-prototype-model-advantages-disadvantages-

and-when-to-use-it/

ISTQB EXAM CERTIFICATION. (2017). What is RAD model- advantages, disadvantages and

when to use it? Retrieved from ISTQB Exam Certification:

http://istqbexamcertification.com/what-is-rad-model-advantages-disadvantages-and-

when-to-use-it/

ISTQB EXAM CERTIFICATION. (2017). What is Spiral model- advantages, disadvantages

and when to use it? Retrieved from ISTQB EXAM CERTIFICATION:

http://istqbexamcertification.com/what-is-spiral-model-advantages-disadvantages-and-

when-to-use-it/
AGILE MODEL IN SOFTWARE ENGINEERING 40

ISTQB EXAM CERTIFICATION. (2017, 03). What is V-model- advantages, disadvantages and

when to use it? Retrieved from ISTQB Exam Certification:

http://istqbexamcertification.com/what-is-v-model-advantages-disadvantages-and-when-

to-use-it/

ISTQB EXAM CERTIFICATION. (2017, 05). What is Waterfall model- advantages,

disadvantages and when to use it? Retrieved from ISTQB Exam Certification:

http://istqbexamcertification.com/what-is-waterfall-model-advantages-disadvantages-

and-when-to-use-it/

Quick Scrum. (2016, 03 28). What Is Agile Software Development Life Cycle? Retrieved from

Quick Scrum: https://www.quickscrum.com/Article/ArticleDetails/2031/3/What-Is-

Agile-Software-Development-Life-Cycle

Smart Sheet. (n.d.). Comprehensive Guide to the Agile Manifesto. Retrieved from Smart Sheet:

https://www.smartsheet.com/comprehensive-guide-values-principles-agile-manifesto

Tutorials Point. (n.d.). SDLC - Agile Model. Retrieved from Tutorials Point:

https://www.tutorialspoint.com/sdlc/sdlc_agile_model.htm