Analysis of Adaptive Methodologies: XP, UP, Scrum and Recommendation

Verified

Added on  2020/05/01

|14
|2902
|90
Report
AI Summary
This report provides an in-depth analysis of adaptive methodologies, focusing on Extreme Programming (XP), Unified Process (UP), and Scrum. It begins by defining adaptive methodologies and their core characteristics, emphasizing their iterative and client-driven nature, in contrast to traditional predictive approaches. The report then delves into each methodology, detailing the core values, advantages, and disadvantages of XP, including its focus on simplicity, communication, and feedback, while acknowledging its limitations in design and documentation. The Unified Process (UP) is examined, highlighting its incremental and iterative development, documentation emphasis, and suitability for projects with changing requirements, alongside its complexity. Scrum's framework is explored, emphasizing its use of sprints, daily stand-up meetings, and team-based roles, with its suitability for projects lacking clear definitions and its limitations in large teams. The report concludes with a recommendation for the most suitable methodology for a specific project (FFSL), justifying the choice based on the project's needs. It includes an event table, model class diagram, design class diagram, use case diagram, and use case descriptions to illustrate the practical application of these methodologies.
Document Page
COVER PAGE
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
Contents
1 Adaptive methodologies...........................................................................................................................3
1.1 Extreme programming.................................................................................................................4
Advantages..........................................................................................................................................5
Disadvantages......................................................................................................................................5
1.2 Unified process............................................................................................................................5
Advantages..........................................................................................................................................6
Disadvantages......................................................................................................................................6
1.3 Scrum...........................................................................................................................................6
Advantages..........................................................................................................................................6
Disadvantages......................................................................................................................................6
2 Recommended methodology..............................................................................................................7
3 Event table...........................................................................................................................................7
4 Model class diagram............................................................................................................................8
5 Design class diagram............................................................................................................................9
6 Use case diagram...............................................................................................................................10
7 Use case description..........................................................................................................................11
8 References.........................................................................................................................................12
Table of figures
Figure 1: Extreme programming planning and feedback loops...................................................................5
Figure 2: Model class diagram.....................................................................................................................8
Figure 3: Design class diagram.....................................................................................................................9
Figure 4: use case diagram........................................................................................................................10
Document Page
1 Adaptive methodologies
Adaptive methodologies are methodologies that use a structured and a systematic process for a gradual
improvement of the practices and decisions taken by the development team thus enabling the team to
learn from the outcomes of the decisions made in the past stages of project. Adaptive methodologies do
not follow a rigid predefined plan but adapts to the activities and the decisions made throughout the
whole development life cycle (Mrsic, 2015). The main concept followed and used in all adaptive
methodologies is development in iterations thus different adaptive frameworks are able to adapt and
adjust at each iteration. The main characteristics of adaptive methodologies are;
Adaptive methodologies are driven by change.
Adaptive methodologies allows the development team to learn and discover from the
development process.
Adaptive methodologies are client driven.
Adaptive methodologies have become popular than the traditional predictive methodologies because
the fast advancement in technology and high increase of demand for projects have made it more
difficult and dynamic to predict the development team that will be used to develop the project. In
addition new technologies that favor adaptive methodologies including Cloud Computing specifically
Cloud Infrastructures like Platform as a Service. Development teams are also striving towards creating a
team culture by working collaboratively.
There are two types of adaptive methodologies;
Passive adaptive methodologies- This type of adaptive methodology allow the development
team to apply lessons learnt from the previous iteration in the current iteration thus reducing
any uncertainties as the process is ever improving with each iteration that is done.
Active adaptive methodologies- This type of adaptive methodologies enables the development
team to determine the best strategy to be used by experimenting. This is done through the
following steps;
Define a flexible project strategy to make it easy to reverse any decisions made if
necessary and then break up the project plan into phases or iterations.
Create a detailed plan that includes a list of risks and a schedule for the next iteration.
Detailed plans for future iterations are not supposed to be made as it is hard to predict
changes that could occur in the project.
Perform a quantitative risk analysis that will help the development team to know what
happens to the schedule of the project is a risk is encountered.
Execute different scenarios in the project and measure the results from the execution.
Continuously perform quantitative risk analysis to know which risks occur and which
risks don’t occur.
For adaptive methodologies, clients are the major focus of the project and have a big say in which
direction the project will take thus adaptive methodologies follow the following core values;
Client focused- adaptive methodologies focus on the client’s needs provided they fall within the
scope of business practices that are ethical.
Document Page
Client driven- adaptive methodologies allows the development team to include the client in the
project by delivering increments to the client.
Openness- through continuous introspection and questioning the development team is able to
maintain honesty with the client team to facilitate for better decision making and positive
results.
Change- The development team and the client team work with deliverables through all the
stages of the project to get a bigger picture of the necessary changes that be can be put in place
to improve the results.
No speculation on the future- the development should make sure that they do not waste any
resources trying to speculate but should focus on what the client wants and how it will benefit
the client.
There are many types of adaptive methodologies but this report focuses on three types;
Extreme programming (XP)
Unified Process (UP)
Scrum
1.1 Extreme programming
Extreme programming is type of framework designed from adaptive methodology that works by
improving software quality and adapting to the changing needs of the client or the customer. Extreme
programming follows the core values of adaptive methodologies mainly by working in iterations to
deliver the project in small increments to the client (Morse, 2017). Extreme programming is designed on
five fundamental values;
Simplicity- The development team does what is needed and asked for by the client by taking
small and simple steps to achieve the goals set and to mitigate failures and risks as they take
place. The end product should be something the development team is proud of and has been
done on a reasonable cost.
Communication- The development team must maintain constant and effective communication
by holding meetings.
Feedback- The development team has to develop iterations and deliver them to the customer
and work on any changes that the customer will propose.
Respect- Every team member has different abilities thus every team member has something to
bring to the table.
Courage- The development team is supposed to report on the true progress of the project and
adapt to changes if they arise.
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
Figure 1: Extreme programming planning and feedback loops
Advantages
Extreme programming enables the development team to save on time and cost that is required
to realize the project as extreme programming focuses on delivering the product on time.
Extreme programming does not focus on too much documentation thus saving time and
resources for the development team.
Extreme programming is able to incorporate changes introduced at any stage of the
development of the project(Pierce, 2016).
Extreme programming is simple as it emphasizes on code simplicity that are easy to understand
and manage.
Disadvantages
Extreme programming does not focus so much on the design which is a crucial part of the
system.
Extreme programming does not put a lot of emphasis on documentation thus maintenance can
be cumbersome in the future.
Extreme programming is most suitably used where the development team is working on a very strict
timeline in a dynamic client environment where the changes in requirements can take place at any
phase of the project (Price, 2015).
1.2 Unified process
Unified process is an adaptive methodology framework that is designed to follow an incremental and
iterative development process. The project is delivered to the client in increments and architecture of
the system is one of the major focus for the development team. Unified process uses multiple views and
models to model the architecture of the system. There are four phases of the unified process;
Inception In this phase the project kicks off by establishing the cost estimates and the project
schedule while doing feasibility analysis.
Elaboration- requirements engineering phase.
Document Page
Construction- implementation phase
Transition- Deployment of the complete system to the end users.
Advantages
The unified process emphasizes on documentation which can be very useful in the future for
maintenance of the system
The unified process is very useful for projects with a high rate of change in requirements
irrespective of the phase the project is currently in.
The unified process is able to show a clear progress of the project.
The unified process delivers the software in increments thus the customer knows what to
expect.
Disadvantages
The unified process is a complex framework to adapt thus requires a development team where
most team members are experts capable of implementing the methodology.
Too much focus on documentation thus leading to use of a lot of time and resources.
The unified process is suitable for use where the development team is mostly comprised of experts and
where the project requires comprehensive documentation.
1.3 Scrum
Scrum is an adaptive methodology framework designed to follow all the core values of adaptive
methodologies but has specific features that make it unique from other frameworks like extreme
programming and the unified process. Scrum involves splitting up the project into iterations. The
development team work on those iterations in sprints which usually take about one month. The
development team conducts standup meetings every day at the beginning of the day and at the end of
the day. The first meeting is about what is expected for that day and the last day is a reflection of that
day.
Advantages
Scrum is very suitable for projects without a clear definition and understanding where by
changes in the requirements can happen even in the last phases of the development.
Scrum ensures there is a maximum utilization of all the members of the development team by
assigning of roles.
The product is delivered in increments which are fully working thus the customer is involved in
the development process thus they get a deeper insight about the project and thus changes in
requirements can be introduced in the early stages.
Disadvantages
Scrum is not suited for large development teams where most of the team members’ are not
experienced experts.
Scrum does not have a definite project end date and this leads to creeping in the scope of the
project.
Scrum is most suitable for small teams where the most of the team members are experts.
Document Page
2 Recommended methodology
The most suitable method for use for the development of FFSL is the unified Process. This is because UP
emphasizes more on the quality of the documentation thus this will lead to a better project which will
be easier to maintain in the future as they will be all the documentation needed. The fact that the
unified process is architecture-centric means that the project will be well understood.
3 Event table
Event Event
Type
Trigger Source Activity/Use Case System
Response/
Output
Destination
Manager,
customer,
salesperson
external login Salesperson,
staff
login Session
granted
Manager,
Salesperson,
customer
A salesperson
ordering items
external Order
items
Salesperson Order items Order
created
successfully
Salesperson
A salesperson
checking in in a
store
External Check in a
store
salesperson Check in You have
successfully
checked in
store name
salesperson
A salesperson
recording a sale
External Record sale salesperson Record sale Sale
complete.
salesperson
Customer filling
an application
external Send
application
by
customer
customer Fill application Application
sent
Customer
System
validates a
customer
application
Internal Send
application
by
customer
System Fill application customer
Customer
manager
reviews new
customer
application
external Review
application
Customer
manager
Review application Application
reviewed
successfully
Customer
manager
Purchasing
manager
reviewing an
order
External Process
order
Purchasing
manager
Process order Order
processed
successfully
Purchasing
manager
Manager
assigning area
to customer
External Assign area
to a
salesperson
manager Assign salesperson
to an area
Salesperson
assigned
successfully
manager
Manager
generating
reports
external Generate
report
manager Generate report Report
generated
successfully
manager
Notification of internal Low Stock System View stock Items low in manager
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
an item that is
low in stock
reminder stock
4 Model class diagram
Figure 2: Model class diagram
Document Page
5 Design class diagram
Figure 3: Design class diagram
Document Page
6 Use case diagram
Figure 4: use case diagram
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
7 Use case description
Use Case ID: 1
Use Case Name: Review customer application
Created By: Author Last Updated By: Author
Date Created: 10/18/2017 Date Last Updated: 10/18/2017
Actors: Manager in charge of customers
Description: The manager in charge of dealing with customer applications views,
reviews and approves or rejects the application by a customer.
Trigger: Review application
Preconditions: The customer must have sent an application
Postconditions: The application is rejected or approved.
Normal Flow: 1. The customer manager logs in to his account
2. Customer manager views all the new applications sent by
customers
3. Customer manager opens an application
4. System displays all the details of the application.
5. Customer manager reviews the details manually and makes
decision on whether to approve or reject application.
6. Customer manager approves the application
7. System changes the status of the application of the new
customer.
8. System sends a notification to the customer
Alternative Flows: The customer manager rejects the application
Go to step 8
Exceptions:
Includes: None
Priority: High
Frequency of Use: Basic use
Business Rules: A potential customer is supposed to send an application which
must be approved for them to become a customer
Special Requirements: The customer manager makes the decision manually on whether to
reject or approve an application
Assumptions: The system automatically sends an email to the potential customer
on the status of the application
Document Page
Notes and Issues: All applications are reviewed by the manager in charge of
customers.
8 References
Morse, Andrew Powell. “Extreme Programming: What Is It And How Do You Use It?” Airbrake.io, 20 Jan.
2017, airbrake.io/blog/sdlc/extreme-programming. Accessed 18 Oct. 2017.
Mrsic, Maja. “Adaptive Project Management.” ActiveCollab, 2015, activecollab.com/blog/project-
management/adaptive-project-management. Accessed 18 Oct. 2017.
Pierce, William. “Disadvantages and Advantages of Extreme Programming.” Atlaz.io, 21 Mar. 2016,
atlaz.io/blog/disadvantages-and-advantages-of-extreme-programming/. Accessed 18 Oct. 2017.
Price, Larry. “Extreme Programming Explained.” Larry Price and the Endless cup of tea, 2 Aug. 2015,
larry-price.com/blog/2015/08/02/extreme-programming-explained/. Accessed 18 Oct. 2017.
chevron_up_icon
1 out of 14
circle_padding
hide_on_mobile
zoom_out_icon
[object Object]