Agile Frameworks

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

MBARARA UNIVERSITY OF SCIENCE AND TECHNOLOGY

FACULTY OF COMPUTING AND INFORMATICS

DEPARTMENT OF INFORMATION TECHNOLOGY

Course unit: Systems Analysis And Design

GROUP I

Group members

1. MUGABE ISAAC2020/BIT/069/PS

2. NONO P STUART 2020/BIT/133/PS

3. NINSIIMA BRENDA 2020/BIT/086/PS

4. NAHURIRA BABRA 2020/BIT/081/PS

5. MUHAMMAD MUSA 2020/BIT/011

6. MWERU BRIAN 2019/BIT/074/PS

7. AGABA EBONS BRANDON 2020/BIT/161/PS

8. KAYESU SHAROT

9. TWINOMUJUNI AMOS

10. TURYAHEBWA BARBRA

Topic of research: Agile modelling methods

Introduction

Agile Modelling

Agile modelling is used for modelling and documentation of software systems, it


involves software values, principles and practices which lead to software
development in a more flexible manner. Agile modelling breaks down tasks into
smaller iterations, each of which lasts for a short time frame( 1 to 4 weeks) in the
overall process model. The phases can be seen below in their order;
1. Requirements gathering.
This phase includes explaining business opportunities and planning the time and
effort required for the project. Once you quantify this information, you can
evaluate the technical and economic feasibility of your project.
2. Design the requirements.
Once you have identified the project parameters, work with the stake holders to
define the requirements.
3. Construction/ Iteration/Development.
After the team defines and designs the requirements, the real work begins.
Product, Design and Developer teams start working on related projects,
ultimately deploying a project or service that is not static.
4. Testing.
The quality assurance team examines and evaluates the products performance,
looking for bugs and other flaws.
5. Deployment.
The team deploys the product in a working environment.
6. Feedback/ Review.
Once the product is released, the team receives feedback about the product and
handles any issues that may have arisen.
Below is an illustration of agile modelling;

Agile modelling methods

Agile methodology is an approach to project management which helps


to respond to the unpredictability of building software through
incremental, iterative work cadencies known as sprints. This
methodology was developed to deal with a situation where the
waterfall model fails.
 Examples of methods or frameworks that fall under the Agile software
development methodology include but are not limited to the following;

1. Extreme programming

2. Scrum

3. Kanban

4. Feature Driven Development

5. Lean software development

6. Agile Unified process

7. Dynamic Systems Development Method

8. Adaptive Software Development

Detailed information on the Agile methods above can be seen below;


1. Dynamic Systems Development Methods (DSDM)

Dynamic Systems Development Method is based on Rapid Application


Development (RAD) and can be used for projects that have tight schedule and
budget. Dynamic Systems Development Method works on a pareto principle-
18/20 rule i.e. 80% of the business benefit comes from 20% of the system
requirements.
Therefore DSDM starts implementing this first 20% of system requirements to
meet 80% of the business needs and then it progresses to cover the rest of the
requirements.
This method consists of five phase life cycles that include;

 Feasibility study
In this phase, the problem is defined and technical feasibility of the desired
application is verified.
 Business study
In this phase the overall business study of the desired system is done. The
business requirements are specified at a high level and the information
requirements out of the system are identified.
 Functional model iteration
The main focus in this phase is on building a prototype iteratively and getting it
reviewed from the users to bring out the requirements of the desired system.
 Design and build iteration
This phase stresses upon ensuring that the prototypes are satisfactory and
properly engineered to suit their operational environment.
 Implementation
This is the last and final development stage in this methodology. In this phase, the
users are trained and the system is actually put into the operational environment.

The figure below shows an illustration of the Dynamic System Development


Method;

2. Feature Driven Development (FDD)


Feature Driven Development (FDD) is an agile framework that organizes software
development around making progress on features.

The main purpose of Feature driven Development is to deliver tangible, working


software repeatedly in a timely manner. The development process involves five
phases that are built largely around discrete feature projects, the phases include ;

1. Develop an overall model


2. Build a features list
3. Plan by feature
4. Design by feature
5. Build by feature

Milestones are identified and progress is tracked on basis of achievement of the


milestone. This framework is widely used particularly in larger organizations.

An illustration of this method can be seen below;

3. Scrum

Scrum is characterized by cycles or stages of development known as sprints, and


by maximization of development time for a software product. It is usually used in
the management of development projects, but it can also be used in a business-
related context. Every day there are small 15-minute meetings, the daily scrum,
that take the role of synchronizing activities and finding the best way to plan the
workday.

In scrum, a list of all the deliverables for the project named backlog is identified
and continuously updated. The project which is divided into small units called
sprints usually last 2-4 weeks generally. Deliverable which is visible and usable
increment is decided for each sprint. Active communication in the team and
follow up using the backlog help and ease the development.

An illustration of phases in the scrum method can be seen below;


4. Kanban

The word Kanban is of Japanese origin and its means is linked to the time concept,
“just in time”. In practice, the Kanban method exists in a board or table (Kanban
board), divided into columns that shows every flow of the software production. As
the development evolves, the information contained in the table changes and
when a new task comes into play, a new “card” is created.

The Kanban method requires communication and transparency so that members


of a team can know exactly at what stage the development is and can see the
status of the project at any time.

Kanban is an eminently visual workflow management approach, famous amidst


lean teams, that can be employed for visualizing and thoroughly maintaining the
making of products, it focuses on continual delivery of the product, but is not
making stress to the entire software development life cycle.
Some advantages of this method include;
 Ability to view all tasks of one project(for example; completed, in process
or in testing)
 It is possible to limit the number of running tasks
 Focus on the duration of a cycle
 Allows continuous deliveries

An illustration of the Kanban method can be seen below;

5. Lean Development

Lean development is a methodology that comes directly from lean manufacturing,


created by Toyota and applied to software development. This method offers a
conceptual framework and follows values, principles and good development
practices that can be applied to an agile development approach. The principles
followed are;

 Eliminate waste i.e. anything that does not add value to the customer.
 Amplify learning by doing and testing things rather than documenting them
and then implementing.
 Decide as early as possible thus keeping all possible options open as long as
possible in the life cycle.
 Deliver as fast as possible. It works on basis of the fact that sooner the end
product is delivered, sooner is the feedback received and sooner it is
implemented in the next iteration.
 Empower the team by keeping people motivated.
 Build integrity in by keeping the code simple and avoiding repetitions.
 Optimise the whole, the development sequence has to be perfected
enough to be able to delete errors in the code in order to create a flow of
true value.

An illustration of the lean development method can be seen below;

6. Extreme programming
Extreme programming works on the principle of simplicity, communication,
feedback, courage and respect. It prioritizes customer satisfaction over everything
else. The application is designed such that it is adaptive to changing requirement
and is simple.

Lots of client interaction and communication in team are key factors which help in
the development of adaptive applications. This methodology offers trust to the
developers by motivating them to accept changes in the customer’s
requirements, even if they arrive in a later stage of the development life cycle.

Team work is extremely important in Extreme programming since when there is a


problem, it is solved by the whole team of managers, developers or customers.

An illustration of the phases in extreme programming can be seen below;

7. Adaptive software development (ASD)

Adaptive software development works on the principle of continuous adaptation.


ASD is used to make teams more adaptable to changing customer demand,
requirements and market needs. It does this by promoting lightweight planning
and on-going learning through a three phase process that is;
 Speculate

This is the initial phase of the project where it is necessary to establish the main
objectives and goals of the project by understanding the limitations with which
the project operates.

 Collaborate

This is the phase where most of the development is centred, maintaining


coordination between teams that ensures what is learned by one team is
communicated to the rest and does not have to be learned again by other teams
from scratch

 Learn

The last stage ends with a series of collaboration cycles, the job is to capture
what has been learned both positive and negative. This stage is critical for the
effectiveness of the project.

The three phases above reflect the dynamic and fluid nature of Adaptive Software
Development which was designed to beyond a mere change in the project
lifecycle to a deeper change in management style. The Adaptive Software
Development phases are non-linear and they overlap:

 You cannot collaborate without learning or learn without collaborating.


 You cannot speculate without learning or learn without speculating.
 You cannot speculate without collaborating or collaborate without
speculating.

So if you feel like you are performing all three phases of Adaptive Software
Development at the same time, you probably are!

An illustration of Adaptive Software Development can be seen below;


8. Crystal agile framework

Crystal agile framework is people-centric and focuses on enhancing the work of


people involved. Crystal recognises that different teams will perform differently
depending on team size, criticality and priority of the project and encourages
users to adapt the framework for their individual situation.

The crystal framework logic is to start with small tasks and the build them up into
larger ones. The overhead activities are reduced and efforts are diverted to work
building. It’s a collaborative process involving tracking and iterations. In crystal
teams are categorized by colour according to the number of people in the project;

• Crystal clear- Teams with less than 8 people


• Crystal Yellow- Teams with between 10 and 20 people
• Crystal orange- Teams with between 20 and 40 people
• Crystal red- Teams with between 40 and 80people
• Crystal maroon-Teams with between 80 and 200 people
Below is an illustration of the crystal framework;

In conclusion, all Agile frameworks have a specified, defined iteration duration, a


lightweight approach that allows self-organized teams to better adapt to business needs
and they all use iterative and incremental development.

You might also like