logo

Agile and Iterative Methodologies: A Report

Assignment for ICT700 Systems Analysis Task 2 in ATMC Semester 1 2018.

14 Pages2638 Words469 Views
   

Added on  2023-06-11

About This Document

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.

Agile and Iterative Methodologies: A Report

Assignment for ICT700 Systems Analysis Task 2 in ATMC Semester 1 2018.

   Added on 2023-06-11

ShareRelated Documents
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
Agile and Iterative Methodologies: A Report_1
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:-
Agile and Iterative Methodologies: A Report_2
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
Agile and Iterative Methodologies: A Report_3
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
Agile and Iterative Methodologies: A Report_4

End of preview

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

Related Documents
Implementing Management Information System in OZES
|12
|1968
|27

Implementing Management Information System in OZES
|16
|2390
|402

Software Development Assignment: Agile Process Model
|13
|4172
|296

System Analysis and Design
|15
|2115
|73

CSI 3370 Software Process and Project Management.
|15
|3004
|10

System Analysis And Design Contents Contents
|11
|2087
|463