Session 9
Session 9
Session 9
ITPM
11.10.2022
Waterfall Model
Analysis/Requirements
Design
Construction
Implementation
Testing/Support
The image below shows how these activities align with the project schedule in
traditional software development
Waterfall Model of software dev
Wikipedia
Figure 13.9: The Traditional Systems Development Life
Cycle
Note
requirements for
each build can be
taken separately
Incremental Approach
(Another version)
After each
increment
the software
is deployed
Analysis refers
to
requirements
Incremental build life cycle model
Browser
Spiral Model
When to use Spiral Model?
• When delivery is required to be frequent.
• When the project is large
• When requirements are unclear and complex
• When changes may be required at any time
• Large and high budget projects
Advantages
• High amount of risk analysis
• Useful for large and mission-critical projects.
Disadvantages
• Can be a costly model to use.
• Risk analysis needed highly particular expertise
• Doesn't work well for smaller projects.
Joint Application
Development (JAD)
Joint Application Development (JAD)
From Wikipedia
• Arnie Lind, then a Senior Systems Engineer at IBM Canada in Regina,
Saskatchewan created and named joint application design, in 1974.
• This was an improvement on existing methods, which entailed application
developers spending months learning the specifics of a particular department or
job function, and then developing an application for the function or department.
• In addition to significant development backlog delays, this process resulted in
applications taking years to develop, and often not being fully accepted by the
application users.
• The JAD process was formalized by Tony Crawford and Chuck Morris of IBM in
the late 1970s. Tony Crawford later developed JAD-Plan and then JAR (joint
application requirements)
Joint Application Development (JAD)
• JAD (Joint Application Development) is a methodology that involves the
client or end user in the design and development of an application,
through a succession of collaborative workshops called JAD sessions.
• The JAD approach, in comparison with the more traditional practice, is
thought to lead to faster development times and greater client
satisfaction, because the client is involved throughout the development
process.
• In comparison, in the traditional approach to systems development, the
developer investigates the system requirements and develops an
application, with client input consisting of a series of interviews.
Joint Requirement Planning (JRP) a feature of JAD
JAD/JRP
How Application is developed jointly in JAD
• Besides requirement gathering, JAD involves the client or end-users in
designing and development process.
• The involvement of clients is enabled by a series of sessions called JAD
sessions
• Features of JAD Sessions :
• The JAD sessions must have well-defined objectives and agenda items. It is to
be ensured that key persons are present from both technical and business
world and from the one who take notes.
• For driving the meeting, questions and items are the essence of the discussion,
and where we should not except fast answers. Also we should ask questions,
record important items and assign action items.
JAD (contd..)
• Features of JAD sessions
• The aim of JAD sessions is to trigger creative thinking which leads to joint
discussion that requires expertise from various departments.
• Teams should help each other in making decisions.
• If the teams can’t arrive at a decision then we need to run scheduled JAD
sessions known as JAD workshops.
• We know that most of the JAD sessions are scheduled in developmental
phase, it may happen during the requirement of the project.
Rapid Application
Development Life Cycle
Model
RAD Life Cycle (Rapid Application development)
• Business Modelling
• A complete business analysis is performed to find the vital information for
business, how it can be obtained, how and when is the information
processed and what are the factors driving successful flow of information.
• Data Modelling
• The information gathered in the Business Modelling phase is reviewed and
analyzed to form sets of data objects vital for the business. The attributes of
all data sets is identified and defined. The relation between these data objects
are established and defined in detail in relevance to the business model.
Phases of RAD
Process Modelling
• The data object sets defined in the Data Modelling phase are
converted to establish the business information flow needed to
achieve specific business objectives as per the business model. T
• he process model for any changes or enhancements to the data
object sets is defined in this phase. Process descriptions for adding,
deleting, retrieving or modifying a data object are given.
Phases of RAD
Application Generation
• The actual system is built and coding is done by using automation
tools to convert process and data models into actual prototypes.
Testing and Cutover
• The overall testing time is reduced in the RAD model as the prototypes
are independently tested during every iteration.
• However, the data flow and the interfaces between all the components
need to be thoroughly tested with complete test coverage. Since most
of the programming components have already been tested, it reduces
the risk of any major issues
CASE Tools can be used in RAD
• The ASD framework rejects the term ‘plan’ for the first phase of its
lifecycle as too deterministic and confident of the final outcome. In its
place is the suitably open-ended ‘speculation’ phase, which leaves
space for the project to innovate.
• The speculation phase of the ASD lifecycle does not reject planning
and big picture planning and the setting of objectives, for the project
and iteration cycle due to start, takes place here. During the first
speculation phase, the project mission is defined, which sets an
approximate framework for the end product.
Collaboration
• The collaboration phase is founded on the following principles:
• Complex applications are not built, they evolve.
• Complex applications require that a large volume of information be collected,
analyzed, and applied to the problem.
• Collecting, analysing and applying large volumes of information, or data,
requires diverse Knowledge requirements.
• Diverse Knowledge requirements can only be achieved through collaboration
• The collaboration phase is controlled through a balance of traditional
project management techniques and the kind of collaborative
environment that leaves space for emergence.
Learn
• An Agile software development team working to the ASD framework is
expected to continually improve its level of Knowledge. This is done in the
learning phase that follows each iteration through practices including:
• Technical Reviews
• Project Retrospectives
• User feedback via focus groups and other mechanisms
• Iterations should be short so the team learns from small, not big, mistakes.
The development team and users contributing their user experience to the
process should assess their assumptions during each learning phase.
• The results of this assessment, such as changers to underlying assumptions,
then inform the direction of the next iteration cycle.
Adaptive Life Cycle Model
• This is in contrast to the predictive model
• Software development follows an adaptive approach because the requirements
cannot be expressed early in the life cycle
• An adaptive approach is used to provide more freedom than predictive approaches
• Development is risk driven and change-tolerant to address and incorporate risks
rather than mitigate them
• It allows development using a free form approach to create components that
provide functionality specified by the business group
• Requirements are developed using iterative approach
• More recently the agile approach has become popular which is an off-shoot of this
model
Adaptive Life Cycle
• Being risk-driven can be understood as a willingness to fail fast., by placing
higher-risk items in the earlier cycles. If you identify a risk in your project,
you should try to reduce the likelihood of the failure (mitigation). However,
if reducing the probability isn’t possible, ASD says you should accelerate the
happening of the failure. The rationale is simple: if a given decision is
doomed to fail, it’s better and cheaper to find out earlier rather than later.
• Change-tolerant: means that, instead of assuming most activities will
happen as planned, you start with the premise that everything will change,
and often. In ASD, teams create change-tolerant environments so change
can be better managed. One of the ways in which this is accomplished is
through the adoption of shorter time-frames.
Adaptive
• This approach to Project Management is a combination of both the Iterative
and Incremental models.
• The iterations are very rapid and time bound. In the Adaptive Life Cycle,
Customer Involvement is the key to successful Projects. The customer and
the sponsor form a part of the Delivery Team.
• Sometimes in Adaptive approaches, the phases may not be clearly defined.
It relies heavily on customer feedback and the ability of the team to quickly
work on the feedback and incorporate the same into the Project.
• Communication and Collaboration are of paramount importance in
implementing Projects using the Adaptive methodologies.
When to Use Agile
Approach
Advantages of Agile Methodology
Accommodates changes : Revisits and rewrites of Scheduling: Agile does not give importance to a strict
steps are encouraged to achieve the desired results. schedule. This may create difficulties under a tight
Frequent delivery allows for quick changes in project deadline scenario.
direction while maintaining project scope.
Concept
Iteration -1 Iteration 0
Process Groups in Agile
(Scrum)
Process Groups in Agile
Process Agile Activities
Groups
Initiating Survey of user requirements for creating a product backlog by product owner (project level)
Determination of number of sprints and release plan (project level)
High level schedule and cost estimates (project level)
High level architectural envisioning (project level)
Stake holder identification (project level)
Project Charter (as per ITPM Book page 124) (project level)
Kick off meeting (ITPM page 124)
Develop business use case (Determine scope, time Develop business case
and cost) . Identify project sponsor. appoint project Determine who will act as product owner, scrum
manager master, who will be part of the scrum teams,
Design, construction and testing Sprint wise development of a shippable product; note
some sprint level planning takes place here also
Closing Sprint Review(clients)/Retrospective(with team)
Gaining stakeholder and customer acceptance for final Sprint Retrospective (last Sprint retrospective will
products close the project)
Ensuring all deliverables are completed