Agile and Iterative Methodologies: A Report

Verified

Added on  2023/06/11

|14
|2638
|469
AI Summary
This report discusses agile and iterative methodologies such as Scrum, Unified Process, Extreme Programming, and Crystal. It also covers User Centered Design and Human Computer Interaction and their implications on CRM application development.

Contribute Materials

Your contribution can guide someone’s learning journey. Share your documents today.
Document Page
Report on agile and iterative methodologies
1.0 Introduction
Iterative development is a software development approach in which a sequence of phases in
which a particular activity is performed in the development process (Rosenblat, 2013). Phases
include requirements analysis, design, implementation, and testing. Each phase can be repeated
as many times as is reasonably possible. The users are involved only at the start of the project but
are not further involved until the final project is delivered.
Agile development involves the users from start to finish. A prototype is built each time and
delivered to the users for testing, whereby improvements are incrementally introduced to it
(Satzinger, Jackson & Burd, 2016). The project is finished and final system delivered to the
users. At this point, no possible improvements can further be made until probably in the future of
the product’s lifecycle. The aspect of iteration is also present in agile development as
improvisations keep being made. Agile development follows twelve guidelines from the agile
manifesto (Satzinger, Jackson & Burd, 2016). which are:-
Customer satisfaction by continuous and early delivery of a software product
Welcome changing requirements even in late stages of development
Deliver working software as frequently as is possible within a time frame of 2 weeks or 2
months
Users and developers work collaboratively throughout the project
Project is built around motivated individuals, giving them the environment and support
necessary
The most efficient method of communication is face-to-face.
Working software is the primary measure of progress
Agile processes promote sustainable processes whereby the sponsors, developers and
users maintain a constant pace.
Continuous attention to good design and technical excellence
Simplicity
Self organizing teams for the best architecture, requirements and design

Secure Best Marks with AI Grader

Need help grading? Try our AI Grader for instant feedback on your assignments.
Document Page
Regular intervals of team reflection on how to become effective and tuning and adjusting
behavior accordingly
1.1 Scrum
Scrum is an agile based, iterative and incremental development method whereby the
development process is sliced into time boxes called “sprints”, which can be 30 days or less
(Rubin, 2012). Progress is tracked and re-planned in short meetings called daily scrums. In
summary, scrum involves a set of roles, artifacts and meetings. Roles include the product owner,
scrum master, and the team. A team usually consists of three to nine people.
Advantages
i.) Decisions are based on real world situations and not speculations
ii.) The product is in an integrated and tested at all times, making it potentially deliverable
iii.)Scrum processes enables organizations to adjust smoothly to changing requirements
iv.) Scrum increases the quality of deliverables
v.) Scrum gives the team control of project schedule and state
Disadvantages
i.) It is not as effective as it should be when team members are geographically dispersed
ii.) Collaboration is a bit difficult where team members have highly specialized skills
iii.)External dependencies such as third party software can lead to delays and sprint failures.
iv.) Sprints are not suitable for legacy systems with strict quality control, for example medical
devices
1.2 Unified process
The unified process is an agile based iterative and incremental development method with
emphasis on use cases, system architecture, and risk management (Coleman, 2016). It involves
four main phases which are:-
Document Page
i.) Inception- involves feasibility study, preparation of cost and schedule estimates and the
decision to build or buy
ii.) Elaboration- involves capturing system requirements, addressing risk factors and
validating and establishing system architecture
iii.)Conception- the development of the system
iv.) Transition – deployment of the final system to the users and receiving feedback.
Advantages
i.) Users can easily understand the system plan since it based on their actions
ii.) It is easy for developers to understand the business when they implement use cases
iii.)There is early risk management and mitigation
iv.) Change is more manageable
Disadvantages
i.) Use cases sometimes do not provide complete definition of requirements
ii.) The end users are not directly involved
iii.)Reuse is difficult
1.3 Extreme programming
Extreme programming is an agile based development framework which attempts to reduce the
cost of changes in requirements by having multiple short development cycles and therefore
earliest possible delivery. Its focus is on adaptability (Kniberg,2015). Its values include
simplicity, communication, feedback, courage, respect. Common practices in extreme
programming include:-
Pair programming-code is developed by developers working in pairs
Refactoring- improvisation of the system without changing functionality
Document Page
Continuous integration-new code is integrated and the system built anew each time a task
is completed
Ownership- everyone owns code and can change it any time to improve the system
Simple design- the system design is kept as simple as is possible
Roles include tracker (manager), developer, customer, and coach.
Advantages
i.) Mistakes are detected at the time of typing rather than in testing
ii.) Problems are solved faster
iii.)Code length is shorter
iv.) Design is better
Disadvantages
i.) Extreme programming lacks defect documentation which may lead to defect reoccurrence
in the future
ii.) It does not measure code quality assurance
iii.)It is not a good option if developers are geographically separated
1.4 Crystal
Crystal is a collection of agile development approaches and focuses primarily on people and the
interactions among them during the development process (Coleman, 2016). It is based on the
concept of a gemstone, which has faces (Rubin, 2012). Each face (development approach) has
standards, techniques, roles and tools unique to it.
The faces include crystal clear, crystal orange, crystal orange web, crystal red, crystal maroon,
crystal diamond and crystal sapphire. The different colours denote the approach weight, which
ranges from light and not critical to heavy and critical.
In the crystal methodology, a project is likely to succeed if it has the following properties-
Frequent delivery
Reflective improvement

Secure Best Marks with AI Grader

Need help grading? Try our AI Grader for instant feedback on your assignments.
Document Page
Close/osmotic communication
Personal safety
Focus
Easy access to expert users
Technical environment with automated tests, configuration management, and frequent
integration
Advantages
i.) Communication is easy as developers are in the same room
ii.) Information flows quickly through the team
iii.)Team members speak freely without being ridiculed giving room for ideas and
improvements
iv.) The expert users answer questions and suggest solutions or improvements
v.) It can be adjusted as per team size and project type.
vi.) It supports fixed price contracts
vii.) It can be used along with other methodologies
Disadvantages
i.) Planning and development doesn’t depend on requirements
ii.) The development team cannot move from one face to another in mid project
iii.)It may not necessarily work for distributed teams
2.0 Recommendation
It is recommended that the CRM application be developed using the unified process approach.
This is because it emphasizes on the system architecture and risk management. For a large
enterprise wide system like the CRM application these are key factors which must be considered.
Memo
User Centered Design and Human Computer Interaction
Document Page
The User centered design (UCD) process lays down the phases throughout a system’s design and
development cycle while focusing on who will be using the system (Endsley, 2016). It involves
users from start to finish and is iterative. Essentially, the design depends on an understanding of
the users, tasks and environments. The phases of UCD include:-
i.) Specifying the context of use- This involves identification of the people who are going to
use the system, what they will use it for and under what conditions that will happen
ii.) Specification of requirements- Business needs and user requirements are established
iii.)Creation of design solutions- This is the building of a complete design from requirements
iv.) Design evaluation- Involves the usability and quality testing of the system
Benefits of UCD include properly and thoroughly defined user requirements and hence usability
and elimination of costs related to reworks.
Human computer interaction is a discipline that studies the way humans interact with computers.
In the recent decades, it has broadened from being a purely computer science discipline to an
aggregation of the disciplines of computer science, human factors engineering and cognitive
science (Booth, 2016). It has also moved from dealing with only desktop computer programs to
the web and mobile devices.
The main philosophy behind HCI is that an interaction between a human and a computer should
resemble human-to-human communication as much as possible (Palanque, Paterno, 2012). HCI
overlaps with UCD to provide the ultimate user experience (UX) for a computer system.
Implications of UCD principles on the CRM application
The CRM application should be fairly easy to learn for the users. This is achieved through
consistency of the user interface whereby the behavior of common interface elements is as
consistent as possible.
The CRM application’s design should be centered on users and their tasks in order to improve
usability.It should also use an intuitive and natural dialogue which follows the sequence of a
corresponding task.
Document Page
The users should be able to focus more on performing their tasks rather than wasting mental
energy in operating the computer.
The CRM application should reduce errors through techniques such as data validation and
guiding the user in the right direction during the performance of tasks.
The application should have adequate navigation mechanisms so that users know where they are
in the system at any given time. This can be achieved through the use of tools such as navigation
maps and history of areas visited.
Plan for a UCD-informed HCI for the CRM application
The CRM application will adhere to user centred design principles as the following plan depicts.
i.) The CRM application will be designed for users and their tasks. The business needs will
also be thoroughly established.
ii.) The user interface will be designed to minimize the learning curve of the users by making
interface elements with common behavior as consistent as possible and by not designing
new and unfamiliar interfaces.
iii.)A fairly simple and natural dialogue will be achieved by providing only necessary
information and by displaying messages in plain English.
iv.) Instructions for the system will be made visible or clearly retrievable where it is needed.
This will help the users focus on task rather than operation.
v.) The application will be designed and developed in such a way that adequate feedback will
be given to the users when executing it so that they will know about their progress and
status of the task they are performing.
vi.) The application will be designed to have adequate navigation tools such as navigation
maps and history of places visited.
vii.) The application will be designed to give the user as much control as is possible by
providing information in a sequence which is convenient in performing a task.

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
viii.) Information will be presented clear and consistent manner across the CRM
application’s various windows. The users will also not be burdened by providing excess
information.
ix.) The application will be designed to reduce errors by validating data early at entry points
and by guiding the users in the right direction while executing tasks.
x.) The application will be designed to be as self explanatory as possible to eliminate the need
for excessive documentation.
Recommendation
The development team should employ UCD and HCI principles to develop the CRM application
as this will help in user acceptance and eliminate the need of rigorous training. At the end of the
day, this will save the organization time and money. It will also maximize profits by helping the
organization to quickly turn their focus on business needs and not technical issues.
Document Page
Events table for CRM
Event Event
type
Trigger Source Activity/use
case
System
response/out
put
Destination
Retail store
wants to
become a
customer
external Customer
application
Retail
store
Make
application
Application
details
Head office
Head office
adds a new
customer
internal Customer
application
Customer Review and
record
application
Updated
customer list
Head office
Retail store
wants to place
order
external Customer’s
order
Retail
store
Place order Order details Head office
Sales person
takes an order
internal Sales visit Sales
person
Take order
from
customer
Sales visit
list
Head office
Sales person
passes an
internal Customer
order
Sales
person
Pass an order
to head office
Updated
sales visit list
Head office
Document Page
order head
office
Head office
checks sales
report
internal Last day of
the month
Head
office
Run sales
report
Monthly
sales report
Head office
Domain model class diagram

Secure Best Marks with AI Grader

Need help grading? Try our AI Grader for instant feedback on your assignments.
Document Page
Use case diagram
Document Page
Use case description for take order
Document Page
Main flow
Sales representative makes sales visit to customer in a geographical area
The sales representative receives an order from a registered customer from a sales area.
Make a call to head office to pass the order with its full details.
The order is recorded by head office
Process order
Dispatch order to the customer.
Exceptions
If sales visit is unsuccessful then identify customer as potential customer
References
Booth, P. (2014). An Introduction to Human-Computer Interaction (Psychology Revivals).

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
Psychology Press.
Coleman, G. (2016). Agile Software Development. Software Quality Professional, 19(1).
Endsley, M. R. (2016). Designing for situation awareness: An approach to user-centered design.
CRC press.
Kitchen, J., & Corcoran, S. (2015). User Centered Design.
Kniberg, H. (2015). Scrum and XP from the Trenches. Lulu. com.
Palanque, P., & Paternò, F. (Eds.). (2012). Formal methods in Human-computer interaction.
Springer Science & Business Media.
Rosenblatt, H. J. (2013). Systems analysis and design. Cengage Learning.
Rubin, K. S. (2012). Essential Scrum: A practical guide to the most popular Agile process.
Addison-Wesley.
Satzinger, J. W., Jackson, R. B., & Burd, S. D. (2012). Introduction to systems analysis and
design: An agile, iterative approach. Course Technology, Cengage Learning.
Shneiderman, B., Plaisant, C., Cohen, M., Jacobs, S., Elmqvist, N., & Diakopoulos, N. (2016).
Designing the user interface: strategies for effective human-computer interaction.
Pearson.
1 out of 14
circle_padding
hide_on_mobile
zoom_out_icon
[object Object]

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

Available 24*7 on WhatsApp / Email

[object Object]