Evaluation of Individual Projects
Evaluation of Individual Projects
Evaluation of Individual Projects
module 2
to see whether the project will fit in the strategic planning of the whole organization
Strategic assessment
Technical assessment
Economic assessment
Cost-benefit analysis
Risk analysis
Strategic Assessment
Used to assess whether a project fits in the long-term goal of the organization
Needs a strategic plan that clearly defines the objectives of the organization
Evaluates individual projects against the strategic plan or the overall business objectives
Programme management
Portfolio management
Technical Assessment
module 2
Economic Assessment
Why?
Prioritise the projects so that the resources can be allocated effectively if several projects are
underway
How?
Cost-benefit analysis
EA Cost-benefit Analysis
Two steps
Identify and estimate all the costs and benefits of carrying out the project
Express the costs and benefits in a common unit for easy comparison (e.g. $)
module 2
Project 4 = 12.5%
It takes into account the profitability of a project and the timing of the cash flows
e.g. If discount rate is 10% and the return of an investment in a year is $110, the present
value of the investment is $100.
module 2
Let n be the number of year and r be the discount rate, the present value (PV) is given by
PV
value in year n
(1 r ) n
Discount factor
Discount factor = 1/(1+r)t
r is the interest rate (e.g. 10% is 0.10)
t is the number of years
In the case of 10% rate and one year
Discount factor = 1/(1+0.10) = 0.9091
In the case of 10% rate and two years
Discount factor = 1/(1.10 x 1.10) =0.8294
Applying discount factors
Year
Cash-flow
Discount factor
-100,000
1.0000
-100,000
10,000
0.9091
9,091
10,000
0.8264
8,264
10,000
0.7513
7,513
20,000
0.6830
13,660
100,000
0.6209
62,090
NPV
618
module 2
ROI is
Project 4 = 12.5%
module 2
In order to achieve an outcome, the system will have to execute one or more activities: this is its
process.
A number of interrelated activities have to be undertaken to create a final software product. These
activities can be organized in different ways and we can call these as process models.
The planner selects methods and specifies how they are to be applied.
The waterfall model, sometimes called the classic life cycle, suggests a systematic, sequential
approach to software development .
In Waterfall model, typically, the outcome of one phase acts as the input for the next phase
sequentially.
module 2
Used when requirements for a problem are well understoodwhen work flows from
communication through deployment in a reasonably linear fashion.
Requirement Gathering and analysis: All possible requirements of the system to be developed
are captured in this phase and documented in a requirement specification doc.
System Design: The requirement specifications from first phase are studied in this phase and
system design is prepared. System Design helps in specifying hardware and system requirements
and also helps in defining overall system architecture.
Implementation: With inputs from system design, the system is first developed in small
programs called units, which are integrated in the next phase. Each unit is developed and tested
for its functionality which is referred to as Unit Testing.
Integration and Testing: All the units developed in the implementation phase are integrated into
a system after testing of each unit. Post integration the entire system is tested for any faults and
failures.
Deployment of system: Once the functional and non functional testing is done, the product is
deployed in the customer environment or released into the market.
Maintenance: There are some issues which come up in the client environment. To fix those
issues patches are released. Also to enhance the product some better versions are released.
Maintenance is done to deliver these changes in the customer environment.
Every software developed is different and requires a suitable SDLC approach to be followed
based on the internal and external factors. Some situations where the use of Waterfall model is
most appropriate are:
Ample resources with required expertise are available to support the product.
module 2
Pros
Works well for smaller projects where requirements are very well understood.
Cons
module 2
Depicts the relationship of assurance actions to the actions associated with communication,
modeling, and early construction activities.
As a software team moves down the left side of the V, basic problem requirements are refined
into progressively more detailed and technical representations of the problem and its solution.
Once code has been generated, the team moves up the right side of the V, essentially performing
a series of tests (quality assurance actions) that validate each of the models created .
In reality, there is no fundamental difference between the classic life cycle and the V-model.
The V-model provides a way of visualizing how verification and validation actions are applied to
earlier engineering work.
That is, basic requirements are addressed but many supplementary features (some known, others
unknown) remain undelivered.
The core product is used by the customer (or undergoes detailed evaluation)
The plan addresses the modification of the core product to better meet the needs of the customer
and the delivery of additional features and functionality.
module 2
This process is repeated following the delivery of each increment, until the complete product is
produced.
The incremental process model focuses on the delivery of an operational product with each
increment.
Early increments are stripped-down versions of the final product, but they do provide capability
that serves the user and also provide a platform for evaluation by the user
The incremental process model, like prototyping and other evolutionary approaches, is iterative in
nature
But unlike prototyping, the incremental model focuses on the delivery of an operational product
with each increment
10
module 2
Needs a clear and complete definition of the whole system before it can be broken down
and built incrementally.
Spiral Model
SM is an evolutionary software process model that couples the iterative nature of prototyping
with the controlled and systematic aspects of the waterfall model.
It provides the potential for rapid development of increasingly more complete versions of the
software.
During later iterations, increasingly more complete versions of the engineered system are
produced.
A spiral model is divided into a set of framework activities defined by the software engineering
team.
Each of the framework activities represent one segment of the spiral path.
As this evolutionary process begins, the software team performs activities that are implied by a
circuit around the spiral in a clockwise direction, beginning at the center.
11
module 2
The first circuit around the spiral might result in the development of a product specification;
subsequent passes around the spiral might be used to develop a prototype and then progressively
more sophisticated versions of the software.
Each pass through the planning region results in adjustments to the project plan.
Cost and schedule are adjusted based on feedback derived from the customer after delivery.
In addition, the project manager adjusts the planned number of iterations required to complete the
software.
Prototyping
Works best in scenarios where not all of the project requirements are known in detail ahead of
time.
12
module 2
An iterative, trial-and-error process that takes place between the developers and the users.
Evolutionary prototyping
An approach to system development where an initial prototype is produced and
refined through a number of stages to the final system
Throw-away prototyping
A model of the system is produced to help client and then discarded. The system
is then developed using some other development process
The prototyping paradigm begins with communication where requirements and goals of Software
are defined.
Prototyping iteration is planned quickly and modeling in the form of quick design occurs.
The quick design focuses on a representation of those aspects of the Software that will be visible
to the customer Human interface.
Iteration occurs as the prototype is tuned to satisfy the needs of the customer, while enabling the
developer to better understand what needs to be done.
A major problem with prototyping is controlling changes to the prototype following suggestions
by the users.
One approach has been to categorize changes as belonging to one of three types:
13
module 2
(a) Implemented.
(b) Recorded.
(c) Backed-up so that they can be removed at a later stage if necessary.
(d) Inspected retrospectively.
The most important reason for prototyping is a need to learn about an area of uncertainty.
Thus it is essential to identify at the outset what is to be learnt from the prototype.
14
module 2
A prototype might be used, for instance, at the requirements gathering stage to pin down
requirements that seem blurred and shifting.
A prototype might, on the other hand, be used at the design stage to test out the users' ability to
navigate through a sequence of input screens.
The prototyping usually simulates only some aspects of the target application.
15
module 2
The algorithms used might need to be repeatedly adjusted until they satisfactorily
imitate real-world behaviour.
Agile Methods
Scrum
DSDM (Dynamic Systems Development Method) is a robust Agile project management and
delivery framework that delivers the right solution at the right time.
Atern is an agile project delivery framework that delivers the right solution at the right time.
Atern principles
module 2
Deliver on time
1. Delivering products on time is a very desirable outcome for a project and is quite often
the single most important success factor.
2. In order to fulfill this principle, Atern teams will:
Timebox the work (Roles are clearly defined and work is divided into Timeboxes
with immoveable deadlines and agreed outcomes.)
Collaborate
Teams that work in a spirit of active cooperation and commitment will always outperform groups
of individuals working only in loose association.
All work should be aimed at achieving that level of quality.-No more and no less.
17
module 2
Develop Iteratively
In order to converge on an accurate business solution Atern uses iterative development to deliver
the right solution.
Poor communication is often cited as the biggest single cause of project failure.
Atern techniques are specifically designed to improve communication effectiveness for both
teams and individuals
Demonstrate control
In order to fulfill this principle, Atern teams, especially the Project Manager and Team Leader,
will:
Use an appropriate level of formality for tracking and reporting
Make plans and progress visible to all
Measure progress through focus on delivery of products rather than completed activities
18
module 2
The relative importance of requirements can be categorized using the 'MoSCoW classification:
Must have: that is, essential features.
Should have: these would probably be mandatory if you were using a conventional
development approach - but the system can operate without them.
These are preceded by the Pre-Project phase and followed by the Post-Project phase.
Pre-project:
Initiation of the project, agreeing the Terms of Reference for the work
The work of the pre-project phase simply formalises a proposal for a project
Objectives
19
module 2
Feasibility:
Typically a short phase to assess the viability and the outline business case (justification).
Used,
To identify the benefits likely to arise from the delivery of the proposed solution.
To state first-cut estimates of timescale and costs for the project overall.
Foundations:
The Foundations phase is aimed at establishing firm and enduring foundations for the
project.
Used,
Exploration:
These requirements are translated into a viable design for the application.
This could be an iterative process that could involve the creation of exploratory prototypes.
A large project could be decomposed into smaller increments to assist the design process.
20
module 2
Engineering:
The Engineering phase is used iteratively and incrementally to evolve the preliminary
solution.
This takes the design generated in the exploration cycle and converts it into usable
components of the final system that will be used operationally.
Deployment:
The primary purpose of the Deployment phase is to get the solution into live use.
For each Increment (set of timeboxes) of the project the solution is made available.
Where applicable, to train the end users of the solution and/or provide necessary
documentation to support the live operation of the solution in the business environment.
Post project:
The Post-Project phase takes place after the last planned deployment of the solution.
Assesses the accrued benefits.
Extreme Programming (XP)
Extreme Programming (XP) was conceived and developed by Kent Beck to address the specific
needs of software development conducted by small teams.
The approach is called 'extreme programming' because, according to Beck, 'XP takes
commonsense principles to extreme levels'.
Communication.
Feedback.
Simplicity.
Respect.
Courage.
Communication
21
module 2
Feedback.
Simplicity.
XP restricts developers to design only for immediate needs, rather than consider future
needs
The simplest design that implements the users' requirements should always be adopted.
Extreme Programming encourages starting with the simplest solution and refactoring to
better ones.
Respect
Members respect their own work by always striving for high quality and seeking for the
best design for the solution at hand through refactoring.
Adopting the four earlier values leads to respect gained from others in the team.
Courage.
This is the courage to throw away work in which you have already invested a lot of effort, and to
start with a fresh design if that is what is called for.
Twelve XP Practices
XP Practices
22
Small Releases
Metaphor
Simple Design
Test-driven development
Refactoring
Pair Programming
Collective Ownership
Continuous Integration
40-Hours a Week
On-Site Customer
Coding Standards
module 2
Developers estimate how much effort each story will take, and how much effort the team can
produce in a given time interval (iteration)
Stories are estimated by developers and then chosen by stakeholders based on their estimated
cost and business value.
Small and simple
Small releases
Start with the smallest useful feature set
Release early and often, adding a few features each time
Releases should take a month or two.
23
module 2
Simple design
Always use the simplest possible design that gets the job done
The requirements will change tomorrow, so only do what's needed to meet today's
requirements
Metaphor
Names within code and other work artifacts are chosen to be indicative of the system
being created.
A payroll application will calculate and record payments to employees.
The terms used to describe the corresponding software elements should, as far as
possible, reflect real-world terminology
Test-driven development
When the complete test suite passes 100%, the feature is accepted
Unit Tests
Each unit test typically tests only a single class, or a small cluster of classes
Acceptance Tests (or Functional Tests) are specified by the customer to test that the overall
system is functioning as specified
When all the acceptance tests pass, that user story is considered complete
Pair programming
Research results:
More XP practices
module 2
Continuous integration
This is another aspect of testing practice.
As changes are made to software units, integrated tests are run regularly - at least once a
day - to ensure that all the components work together correctly.
On-site customer
Fast and effective communication with the users is achieved by having a user domain
expert on-site with the developers.
Coding standards
Everyone codes to the same standards
If code is genuinely to be shared, then there must be common, accepted, coding standards
to support the understanding and ease of modification of the code.
Advantages/Disadvantages
ADVANTAGES
The focus on small, incremental release decreases the risk on your project:
by showing that your approach works and
25
module 2
by putting functionality in the hands of your users, enabling them to provide timely
feedback regarding your work.
Continuous testing and integration helps to increase the quality of your work
XP is attractive to programmers who normally are unwilling to adopt a software process, enabling
your organization to manage its software efforts better.
DISADVANTAGES
XP has not been proven to work with systems that have scalability issues (new applications must
integrate into existing systems).
26