Adaptive Systems Development Methodology: Analysis and Recommendations

Verified

Added on  2020/03/28

|15
|3071
|105
Report
AI Summary
This report provides an in-depth analysis of adaptive systems development methodologies, focusing on Agile, Extreme Programming (XP), Feature-Driven Development (FDD), and Scrum. It explores the core principles of Agile project management, emphasizing iterative and incremental development, stakeholder cooperation, and adaptability to change. The report delves into the specifics of each methodology, outlining their advantages and disadvantages, and suitability for different project scenarios. XP is highlighted for its focus on software quality and customer requirements, FDD for its client-centric approach, and Scrum for its iterative and flexible nature. The report also includes an appendix that discusses Human-Computer Interaction (HCI) and its importance in ensuring user acceptance of new systems, particularly in the context of an organization's automation efforts. The analysis concludes with a recommendation for the most appropriate methodology for a specific case study, emphasizing the benefits of Scrum for projects with evolving requirements.
tabler-icon-diamond-filled.svg

Contribute Materials

Your contribution can guide someone’s learning journey. Share your documents today.
Document Page
Adaptive systems development methodology
<Name>
<Institution>
Question 1: Adaptive systems development methodology
tabler-icon-diamond-filled.svg

Secure Best Marks with AI Grader

Need help grading? Try our AI Grader for instant feedback on your assignments.
Document Page
Adaptive or Agile System Development Methodology is an approach to managing a software
project that embraces unpredictable changes to a project. Adaptive methodologies are highly
flexible, iterative and interactive techniques of establishing project requirements in Information
Technology (IT) and engineering. Agile project management entails application of agile
methodologies in managing projects. These methodologies include Scrum, Extreme
Programming (XP), DSDM and Feature Driven Development (FDD). These techniques promote
project management process; that encourages the participation of all stakeholders, effective
control, feedbacks and objective metrics (Moran, 2015). APM employs ideas from Agile
software development in project management. The core characteristics of Agile techniques is
that they all support iterative and incremental development. The project requirements and
proposed solutions evolve systematically through cooperation between self-organizing, cross-
functional teams.
Agile Project Management endorses adaptive planning, time-boxed iterative approach, and
evolutionary development while promoting quick and flexible responses to change. The
technique is based on the promotion of foreseen interactions between the stakeholders
throughout the project life cycle (Beck et Al, 2013). The processes involved in the Agile project
management are in line with the twelve principles of Agile Manifesto as put forward by Beck et
al. (2013). The manifesto prioritizes customer satisfaction, flexibility in the development
process, iterative development, cooperation between stakeholders, and effective communication
among others.
There are three key plays in an Agile Project Management; the owner, project manager and the
project team (Moran, 2015). Agile project management responsibilities are divided among the
three stakeholders. The owner is tasked with the responsibility of handling the business aspects
of the project - such as monitoring to ensure that the desired product is being built in the correct
way, as well as making decisions about the given product. The manager, on the other hand,
organizers the project team to optimize their productivity, organizes meetings, handles issues that
may hinder the working of the team and does other managerial tasks for the project (Moran,
2015). Finally, the team has the responsibility of developing the most optimal methods of
achieving the project goals.
Agile methodologies are characterized by their adaptive nature. This approach facilitates
optimization of the design of the intended solution by encouraging changes throughout the
project (Moran, 2015). Adaptive methodologies are therefore more preferred for projects with
high levels of uncertainty. The dynamic nature of Adaptive methodologies facilitates continuous
learning while encouraging adaptation of the emergent state of the project.
Extreme Programming (XP)
Document Page
Extreme Programming is one of the agile software development methodologies. XP focus on
improving software quality and accommodation of new requirements from the customer. In building
products, XP takes an incremental approach, with a continuous cycle of testing and revising
(Kniberg, 2015). The main goals of the methodology are to produce high quality software and
improve the quality of life of developers. Extreme Programming is best suited for projects where
requirements are likely to change over the period of the project’s life (Rumpe & Schröder, 2014).
The methodology encourages responsiveness towards the changing customer requirements. A vital
feature required for the FFSL case since some requirements are bound to change to accommodate the
views of the sales persons. XP emphasizes on teamwork and singleness of purpose among the
developers, customers and managers; everyone becomes part of the team, and focuses on
contributing positively towards the delivery of quality software.
Extreme programming improves the development process of software projects by; encouraging
developers to be accommodative to changing requirements, encourages feedback, simplicity and
improved communication (Kniberg, 2015).
Advantages of Extreme Programming
Enables time and cost saving by eliminating unproductive activities, thus helping software
developers focus on the coding aspect of the project (Rumpe & Schröder, 2014).
Reduces project risk and failure while ensuring that the customer gets what he needs.
XP process is “visible and accountable” with developers delivering what they commit to
deliver.
The methodology’s principles of simplicity and constant feedback helps in developing
simple maintainable code and the feedbacks from sprints ensures developers keep on the
right track (Kniberg, 2015).
With XP developer’s satisfaction is high as the process is value-driven.
The greatest advantage with XP is the Teamwork spirit, as all stakeholders work as a
team focusing on delivering quality.
Disadvantages of Extreme Programming
The approach has the disadvantage of putting more focus on coding rather than design,
which is equally important for software (Kniberg, 2015).
Documentation process in XP is not adequate, thus software bugs are not well
documented making it possible for such bugs to appear in future.
Coding is done in pairs, leading to code duplication and redundancy (Kniberg, 2015).
Quality control planning is not adequately implemented in XP methodology
Feature-driven development (FDD)
Document Page
FDD is an incremental and iterative approach to the development of software. FDD combines
several software development best practices to form a unified whole. The model is driven and
centered on a client’s most value features of a system (Firdaus, Ghani, & Jeong, 2014). The main
objective of this model is to deliver quality within the specified timeline. Feature-Driven
Development is therefore a pragmatic, architecture-centric and client-centric approach (Firdaus,
Ghani, & Jeong, 2014). The key processes that define an FDD project include;
Developing an overall model: project teams concentrates on building an object model
for the problem domain in a collaborative, iterative and cross functional way.
Building a features list: Key features of the system are identified in form of user story
and then most valuable ones highlighted to guide the project.
Planning by feature: this phase entails developing a working plan, which specifies the
order of implementing the desired features of the system. The main aspects taken into
consideration during the planning includes; resource allocation, complexity and risks
(Firdaus, Ghani, & Jeong, 2014).
Designing by feature: Here, the main features and domain classes to be developed next
are identified by the chief programmer.
Building by feature: the fifth and final phase of the methodology entails implementing
the classes and features identified at the design phase.
Advantages of Feature Driven Development
With FDD a business focuses on creating a product, enabling businesses to focus on
developing quality products (Firdaus, Ghani, & Jeong, 2014).
Disadvantage of Feature Driven Development
A major disadvantage with this approach is that it does not investigate the market for the
product being developed, thus it may results in a product that does not have any market
demand (Firdaus, Ghani, & Jeong, 2014).
Scrum
Scrum is another agile software development methodology, designed for small projects. The
general flow of a Scrum project is as follows;
A client generates a list of prioritized requirements, referred to as a “Product Backlog”
(Asghar, Bhatti, Tabassum, Sultan & Abbas, 2016)
tabler-icon-diamond-filled.svg

Secure Best Marks with AI Grader

Need help grading? Try our AI Grader for instant feedback on your assignments.
Document Page
The project team meets to plan for the sprints, where the team takes a few items from the
product backlog – sprint backlog - and plans how to implement the items.
The team takes a period of between two to four weeks to implement the sprint backlog,
although they hold daily progress assessment meetings called daily Scrum (Asghar,
2016).
The team leader – Scrum Master – plays the role of keeping the team focused on the set
goals
Work done in a sprint is sent to the customer at the end of a sprint
The team holds a review and retrospect of the sprint
A new sprint begins and the cycle goes on till the entire customer’s wish list is
accomplished.
The key players in a Scrum are the Team, Scrum Master and the Product Owner.
SCRUM advantages
The approach makes the project development clear and visible as it requires periodic
updates of the project progress to be shared among the stakeholders (Asghar, 2016).
Facilitates quick development of fast moving products, as coding, testing and error
rectifications take place in a speedy way
It is highly iterative, requiring continuous user feedbacks which help to refine the product
under development (Asghar, 2016).
The inherently short sprint periods makes it possible for developers to cope with changes
in the project.
Disadvantages of Agile SCRUM
The approach can easily lead to scope creeps unless there is a defined project end date
May face challenges of time and cost estimation, where the tasks are not clearly defined.
Requires highly experienced and cohesive team members; meaning new team members
may find it difficult to meet the requirements of the approach (Asghar, 2016).
Recommendations
From the analysis of the case study, it is clear that the requirements of the case study may change
as the management and the sales persons come into agreement regarding some aspects of the
Document Page
system. The case is therefore a perfect candidate for an Adaptive/Agile software development
approach. Although all the three methodologies discussed can be used for this case, Scrum
Methodology would be the most appropriate for the scenario. With Scrum, the list of the most
important features of the system would be implemented piece by piece, enabling refinement and
improvements to be made to the system.
Appendix
Memo on Plan for the development of the Human Computer Interaction (HCI)
To: FFSL Employees
Document Page
From:
Date: Sept 27th 2017
Subject: Plan for the development of the Human Computer Interaction (HCI)
In light of the new system being developed for FFSL, which will automate much of the work at
the company, the management would like to improve how the FFSL community interacts with
computers in their day to day work. The aim of this exercise is to identify what can be done
better to improve the learn ability, efficiency and usability of computers, in performing work
related tasks. In that regard, a Human-Computer interaction (HCI) will be developed.
Facts about HCI
Human–computer interaction (HCI) is a psychology and engineering domain, which focuses on
researching the design and use of computer technology, particularly on the interfaces that
facilitate interactions between people and computers. The goal of HCI is to study how
individuals interact with computers, with the aim of improving technology design, to enable
better and seamless interaction. The definition of HCI, according to the Association for
Computing Machinery (ACM), is “a discipline concerned with the design, evaluation and
implementation of interactive computing systems for human use and with the study of major
phenomena surrounding them”.
A critical aspect of HCI is to secure the satisfaction of users while interacting with computers –
End User Computing Satisfaction. Since the discipline falls on the line between machine and
human, HCI borrows concepts from both ends to improve the interaction. On one side, HCI
borrows techniques from computer graphics and programming while on the human side, HCI
takes techniques from social psychology, engineering and design, cognitive psychology and
communication theory.
From the analysis of the case study, the main worry is that user acceptance of the system may
lack, resulting in the failure of the system. HCI therefore comes into play here as the main
objective of HCI is to make user interaction with computers to be easy and satisfying; which
would translate to acceptance of the system. In theory, HCI is mainly involved in design of user-
friendly graphical user interfaces since a UI is the point of interaction between human and
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
computers. Poorly designed user interfaces leads to difficulties in using the system which results
in user rejection.
HCI therefore seeks to improve usability of computers, and specifically the user interfaces. HCI
takes a deep interest in the;
How to optimize user interfaces design, with the aim of improving usability, efficiency
and learn ability.
How to implement user interfaces.
How to evaluate and compare user interfaces with respect to their usability and desired
properties.
Study of the interaction between human and computers and the socio cultural
implications
Theories and models of human computer interactions, and conceptual frameworks for
designing and implementing computer interfaces. Such theories include Activity Theory,
cognitive user models and technology acceptance theory.
Implementation Plan for HCI
To implement HCI within the organization, the following steps will be followed;
Review and survey processes and operations of the organization with respect to use of
technology, to identify how they can be improved
Identify gaps in technology and expertise that may hinder better interaction between the
staff and computers at the organization.
Evaluate usability of computers
Establish the main limitations to using computers by the staff at the organization
Identify external variables that may hinder system acceptance
Identify perceived ease of use of the system
Identify perceive usefulness of the system
Seek the views/attitude of staff towards the system
Recommendation
Document Page
The Technology Acceptance model (TAM) should be used in the setting of the plan to
implement HCI at the organization. This is a model which tries to identify how users accept
technology. The main concepts to be borrows from this model in the implementation of the new
system at the company are;
Perceived usefulness (PU): what is the perceived user fullness of the new system to the
FFSL community- that is how the system improves their work performance? By
improving the usefulness perception of the system; then the user acceptance rate of the
system will be high.
Perceived ease-of-use (PEOU): “the degree to which a person believes that using a
particular system would be free from effort”
Implementing HCI at the company will require a great deal in sensitizing the FFSL staff on the
usefulness of the system to their work, as well as design the system taking into account such
aspects as learnability and usability of the system.
References
Document Page
Asghar, A. R., Bhatti, S. N., Tabassum, A., Sultan, Z., & Abbas, R. (2016). Role of
Requirements Elicitation & Prioritization to Optimize Quality in Scrum Agile
Development. work, 7(12).
Beck, K., et. Al. (2013). Manifesto for agile software development. Agilemanifesto. org.
Firdaus, A., Ghani, I., & Jeong, S. R. (2014). Secure feature driven development (SFDD) model
for secure software development. Procedia-Social and Behavioral Sciences, 129, 546-
553
Kniberg, H. (2015). Scrum and XP from the Trenches. Lulu. com..
Moran, A. (2015). Agile project management. In Managing Agile(pp. 71-101). Springer
International Publishing.
Rumpe, B., & Schröder, A. (2014). Quantitative survey on extreme programming projects. arXiv
preprint arXiv:1409.6599.
PART B
tabler-icon-diamond-filled.svg

Secure Best Marks with AI Grader

Need help grading? Try our AI Grader for instant feedback on your assignments.
Document Page
Question 3: Event Table
Event Event Type Trigger Source Activity/Use Case
System
Response/
Output
Destination
A store applies to
be a customer External
New
Customer
Application
Customer Apply to be a
customer
Customer
Application
Management
Team
Management team
approves a
customer
External Customer
Approval
Management
Team
Approve
customer’s
application
Customer
Approval Customer
Management team
creates a customer
record
External
New customer
record
creation
Management
Team Create Customer A customer
record
Management
Team
Management team
defines a
geographical sales
area
External
Request to
define a
Define
geographical
sales area
Management
Team
Define sales
area A sales area Management
Team
Management team
a sales person to a
geographical sales
area
External
Assign sales
person
request
Management
Team
Assign a sales
person to a
sales area
Assigned
area for the
sales person
Sales Person
A sales person
creates a Potential
Customer record
on the system
External
Potential
customer
record
creation
Sales Person
Create a
Potential
Customer
Record
A potential
customer
record
Sales Person
Date to run a sales
report Temporary “First day of
the month”
Run Sales
Report Sales Report Steven Smith
A sales person
records a sales
visit
External Recording of a
sales visit Sales Person Record Sales
Visit Sales Record Management
Team
Question 4: Domain Model Class Diagram
Document Page
Question 5: Design Class Diagram
Document Page
Question 6: 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
Question 7: Use Case Description
Document Page
Use Case Name: Create Customer
Primary Actor: Management Team
Secondary Actors: Customer
Other Stakeholders:
Business Goal: To create a new customer record, after approval of the application
Precondition The customer’s application has been approved
Success Condition A new customer record is created on the system
Main Path
1. A store fills an application to be
a customer
2. The management reviews the
application and approves.
3. Management team creates a
customer record
4. The system saves the record
6. Management team notifies the
customer of the successful
application
Variant Paths
2. Application not approved
2b. The customer is notified of the
rejected application
chevron_up_icon
1 out of 15
circle_padding
hide_on_mobile
zoom_out_icon
logo.png

Your All-in-One AI-Powered Toolkit for Academic Success.

Available 24*7 on WhatsApp / Email

[object Object]