logo

Agile and Iterative systems development

   

Added on  2023-06-11

13 Pages2483 Words364 Views
Agile Software Dev Methodologies
<Name>
<Institution>
Question 1: Agile and Iterative systems development

1.0 Introduction and Background
Agile and Iterative systems development is a method of managing software projects which
accommodates unplanned changes to the project’s requirements. The methods are highly
interactive, iterative and flexible in gathering the requirements of the system to be developed
(Moran, 2015). Agile methodologies are championed by the agile movement which sets
guidelines on basic requirements and characteristics of an agile methodology; defined in the
twelve principles outlined in the Agile Manifesto (Beck et Al, 2013). Currently, there are a
number of agile methodologies that are commonly used globally, they include; Feature Driven
Development (FDD), Dynamic systems development method (DSDM), Extreme Programming
(XP) and Scrum (Moran, 2015). All the methodologies under the agile umbrella have some
common characteristics such as the encouraging participation of all stakeholders at every phase
of the project, use of objective metrics, accommodation of feedbacks and establishment of
effective control over the project (Moran, 2015). The methods are also characterized by
interactive and incremental development. With this approach, the requirements of a given project
evolves systematically as the project takes shape, through the cooperation between self-
organizing, cross-functional teams (Beck et Al, 2013).
With Agile methodologies, evolutionary development is used, supported by a time-boxed
iterative approach and an adaptive planning; which encourages rapid and flexible adoption of
changes to the project. Interaction between project stakeholders and the requirements helps to
shape the project’s life cycle. Agile Manifesto puts more priority to a customer’s satisfaction,
effective communication, cooperation between stakeholders, iterative development and
flexibility in the development process among others.
A project managed using an Agile methodology has three main stakeholders; the project team,
the owner and the agile project manager (Moran, 2015). The project owner has overall oversight
over the business aspects of the project; this includes assessment of the product being developed
to ensure that it meets the business needs and making decisions on aspects related to the product.
On the other hand, the organization and management of the project team is the prerogative of the
project manager. The manager is tasked with the duty of optimizing the productivity of the team
and deal with issues that may affect the delivery of the project. The role of the project team is to
built the actual deliverables of the project (Moran, 2015).

As stated earlier, under the Agile umbrella are numerous variations of agile methodologies. In
this section we discuss 4 of the methodologies; Feature Driven Development (FDD), Dynamic
systems development method (DSDM), Extreme Programming (XP) and Scrum.
1.2 Extreme Programming (XP)
Extreme Programming falls under the agile development methodologies. XP has all the
characteristics of a convectional agile methodology; such as accommodation of evolving
requirements, incremental and iterative approach to development and a continuous cycle of testing
and revising (Kniberg, 2015). XP is best applied to project with unclear requirements at the start
(Rumpe & Schröder, 2014).
1.2.1 Advantages of Extreme Programming
With XP, a project can experience time and cost savings through elimination of
unproductive activities that are common in convectional software development
methodologies; this leaves the team to only focus on developing the desired product
(Rumpe & Schröder, 2014).
XP adopts simplicity and continuous feedbacks, resulting in a product that is simple and
easy to maintain. Continuous feedbacks from sprints enables the project team to remain
on course to the desired goal.
The team spirit brought through collaboration ensures stakeholders focus and work as a
team, to deliver quality products.
1.2.2 Disadvantages of Extreme Programming
XP puts more emphasis on coding at the expense of designing a good software (Kniberg,
2015).
Software is not adequately documented.
The approach requires developers to work in pair, causing redundancy and code
duplication.
Since planning is not given sufficient time, quality controls may not be adequate.
1.3 Feature-driven development (FDD)
A second agile methodology is Feature-driven development. FDD borrows techniques from a
number of development best practices to create a new approach. FDD focuses on the features of
a system that core to a customer (Firdaus, Ghani, & Jeong, 2014). As such FDD is considered a

pragmatic client and architecture-centric approach (Firdaus, Ghani, & Jeong, 2014). The
approach has a number of core processes, which includes;
Model Development; an object model is developed to model the problem.
Features List: the project team identifies core features of the system and develops a
features list.
Planning by features: a work plan is developed which creates a schedule, resource plan
and risk management (Firdaus, Ghani, & Jeong, 2014).
Design by features: the chief programmer selects the main features and develops the
domain classes.
Building by features; the final step is implementing the design to build the features.
1.3.1 Advantages of Feature Driven Development
FDD is product focused; focusing on main features required by the client, thus it leads to
quality software that meets the client’s needs (Firdaus, Ghani, & Jeong, 2014).
1.3.2 Disadvantage of Feature Driven Development
One disadvantage is that the product may not be in line with market demand, as the
approach does not carry feasibility studies (Firdaus, Ghani, & Jeong, 2014).
1.4 Scrum
The third agile method is Scrum, which is primarily designed for managing smaller projects.
With Scrum a customer puts forward requirements of the software to be developed. The key
stakeholders include the project Team, Scrum Master and the Product Owner.
The requirements are ordered according to their priority and the list is called a “Product
Backlog”.
The project team is divided into smaller teams; all the teams are managed by a Scrum
Master who keeps the project team focused on attaining the goal.
The deliverables are divided into sprints and assigned to different teams; each team
works on a given deliverable from the product backlog.
At the end of each sprint, the outputs of the sprint are sent to the customer, followed by a
review of the print by the project team, before the next sprint starts.
1.4.1 SCRUM advantages
The project deliverables are clear and it is easy to measure the progress of the project
with coverage of the products backlog.
Short sprints make it possible for the project to deal with changes.

End of preview

Want to access all the pages? Upload your documents or become a member.

Related Documents
Adaptive Systems Development Methodology | Assignment
|15
|3071
|105

Effectiveness of Agile Project Management Methodology
|12
|2907
|19

System Analysis and Design | Report
|11
|1826
|72

Australian Electric Supply
|12
|2639
|373

Requirement Analysis and Modelling- Doc
|9
|1457
|89

Agile Methodology
|24
|4465
|310