Uploaded by Ayush Jiwatramani

MODULE 2

advertisement
BCSE301L SOFTWARE
ENGINEERING
Dr.D.KAVITHA
SCOPE
VIT, CHENNAI
Introduction To Software Project Management
Planning, Scope, Work break-down structure, Milestones, Deliverables,
Cost and Estimates - (Human Resources, Time-scale, Costs), Risk
Management, RMMM Plan, CASE TOOLS, Agile Project Management,
Managing team dynamics and communication, Metrics and
Measurement.
Software Project Planning
• A Software Project is the complete methodology of
programming advancement from requirement gathering to
testing and support, completed by the execution procedures, in
a specified period to achieve intended software product.
Need of Software Project Management
The most significant is that the underlying technology changes
and advances so generally and rapidly that experience of one
element may not be connected to the other one. All such
business and ecological imperatives bring risk in software
development; hence, it is fundamental to manage software
projects efficiently.
Software Project Manager
• Software manager is responsible for planning and scheduling project
development. They manage the work to ensure that it is completed
to the required standard. They monitor the progress to check that the
event is on time and within budget. The project planning must
incorporate the major issues like size & cost estimation scheduling,
project monitoring, personnel selection evaluation & risk
management. To plan a successful software project, we must
understand:
• Scope of work to be completed
• Risk analysis
• The resources mandatory
• The project to be accomplished
• Record of being followed
• Software Project planning starts before technical work start. The
various steps of planning activities are:
The size is the crucial parameter for the estimation of other activities. Resources requirement are
required based on cost and development time. Project schedule may prove to be very useful for
controlling and monitoring the progress of the project. This is dependent on resources &
development time.
Work break-down structure
• Dividing complex projects to simpler and manageable tasks is the process
identified as Work Breakdown Structure (WBS).
• Usually, the project managers use this method for simplifying the project
execution. In WBS, much larger tasks are broken down to manageable
chunks of work. These chunks can be easily supervised and estimated.
• WBS is not restricted to a specific field when it comes to application. This
methodology can be used for any type of project management.
Following are a few reasons for creating a WBS in a project:
• Accurate and readable project organization.
• Accurate assignment of responsibilities to the project team.
• Indicates the project milestones and control points.
• Helps to estimate the cost, time and risk.
• Illustrate the project scope, so the stakeholders can have a better
understanding of the same.
Construction of a WBS
• Identifying the main deliverables of a project is the starting
point for deriving a work breakdown structure.
• This important step is usually done by the project managers and
the subject matter experts (SMEs) involved in the project. Once
this step is completed, the subject matter experts start breaking
down the high-level tasks into smaller chunks of work.
• In the process of breaking down the tasks, one can break them
down into different levels of detail. One can detail a high-level
task into ten sub-tasks while another can detail the same highlevel task into 20 sub-tasks.
• Therefore, there is no hard and fast rule on how you should breakdown a task
in WBS. Rather, the level of breakdown is a matter of the project type and the
management style followed for the project.
• In general, there are a few "rules" used for determining the smallest task
chunk. In "two weeks" rule, nothing is broken down smaller than two weeks
worth of work.
• This means, the smallest task of the WBS is at least two-week long. 8/80 is
another rule used when creating a WBS. This rule implies that no task should
be smaller than 8 hours of work and should not be larger than 80 hours of
work.
• One can use many forms to display their WBS. Some use tree structure to
illustrate the WBS, while others use lists and tables. Outlining is one of the
easiest ways of representing a WBS.
example is an outlined WBS:
There are many design goals for WBS. Some important goals are as follows:
•Giving visibility to important work efforts.
•Giving visibility to risky work efforts.
•Illustrate the correlation between the activities and deliverables.
•Show clear ownership by task leaders.
WBS Diagram
• In a WBS diagram, the project scope is graphically expressed. Usually the
diagram starts with a graphic object or a box at the top, which represents
the entire project. Then, there are sub-components under the box.
• These boxes represent the deliverables of the project. Under each
deliverable, there are sub-elements listed. These sub-elements are the
activities that should be performed in order to achieve the deliverables.
• Although most of the WBS diagrams are designed based on the deliveries,
some WBS are created based on the project phases. Usually, information
technology projects are perfectly fit into WBS model.
• Therefore, almost all information technology projects make use of WBS.
• In addition to the general use of WBS, there is specific objective for
deriving a WBS as well. WBS is the input for Gantt charts, a tool that is
used for project management purpose.
• Gantt chart is used for tracking the progression of the tasks derived by
WBS.
Gantt chart
• The efficiency of a work breakdown structure can determine the
success of a project.
• The WBS provides the foundation for all project management
work, including, planning, cost and effort estimation, resource
allocation, and scheduling.
• Therefore, one should take creating WBS as a critical step in the
process of project management.
Milestones
• A milestone is a specific point in time within a project lifecycle
used to measure the progress of a project toward its ultimate
goal. In project management, milestones are used as signal
posts for significant events, decision points, or deliverables
such as:
• The project’s start date
• Project end date
• Submission of a customer report
• Need for an external review or approval
• Every Software Project needs to have these Milestones
1. Project Scope
• The first and foremost milestone is defining the project’s scope. It has
been observed that this is one of the steps that can either take
months or be done within a week, depending on the software type
and end goals. In any case, it is essential to have all the requirements
from the software in a well-organized manner, whether in a simple
word document or received by the customer in a voice note.
• The important thing is to extract only the most important details from
the client’s requirements in this step and move forward to step 2.
2.
Quantify the Project Scope/ Requirements
• In general, quantifying means calculating or measuring something in
numbers. However, quantifying a project scope here means verifying
and validating the requirements.
• You need to have specific details for the end goal of the custom
software that you need to build.
• Once the project scope is quantified and passed through several
refining filters, it is ready to shift to the third milestone.
3.
Set the Development Deliverables
• Any custom development company must set the development deliverables
right after their project scope is quantified. This also means that the final
requirements and tentative deadlines may be decided here.
• Without having the deliverables ready, you will not be able to move any
further in project management.
4. Start the Development
• software development should start at this stage. This is also, by the way,
the middle of the milestones. Therefore, all the planned requirements,
quantified ideas, set deliverables, and end goals must be considered
continuously during this phase.
• This phase also requires constant monitoring and feedback to ensure that
the development progress aligns well with the project scope.
5.
More Feedback and Quality Assurance
• Once the development process reaches the end, more and more
feedback will be needed. This is also the phase where the quality
assurance team will also be interfering. Although quality assurance is
not to be done only at the last stages, it usually works best after
collecting substantial feedback for the developers and other
collaborators.
6. Test the User Acceptance
• This is the phase where the project manager will ensure that the
developed custom software is viable and user-acceptable. User
acceptance testing involves several aspects, such as running the
software and testing it for the tasks it has to perform.
• In simple words, the custom software needs to be thoroughly
checked for its performance from the customer’s point of view.
7. Project Delivery
• You might wonder what the last one could be if we discuss delivering
the project at the second to the previous milestone.
• There is always room for improvement in any project development.
And in the case of custom software, this room can be pretty
significant. That’s why it is important to include the revisions phase in
these essential milestones.
8. Revisions
• As already discussed above, this is the phase where you don’t need to
be overwhelmed by the number of revisions required by the client.
• All you need to do is take every aspect one at a time.
• The best way to deal with the client’s requested changes is to make
one change and then get it verified. Thinking about making and
delivering all the changes simultaneously can cause further problems.
It can consume more time before the final delivery of the project.
Deliverable
A tangible output of human effort provided by a developer to a customer.
Software engineering examples are:
• Project plan
• User manual
• Executable code module
• Design document
• Code listing.
• A deliverable may be composed of multiple smaller deliverables. It may be
either an outcome to be achieved or an output to be provided.
• A deliverable differs from a project milestone in that a milestone is a
measurement of progress toward an output, whereas the deliverable is the
output delivered to a customer or sponsor.
• For a typical project, a milestone might be the completion of a product
design, while the deliverable might be the technical diagram or detailed
design report of the product.
Cost and Estimates
• Several estimation procedures have been developed and are
having the following attributes in common.
1.Project scope must be established in advanced.
2.Software metrics are used as a support from which evaluation is
made.
3.The project is broken into small PCs which are estimated
individually.
To achieve true cost & schedule estimate, several option arise.
4.Delay estimation
5.Used symbol decomposition techniques to generate project cost
and schedule estimates.
6.Acquire one or more automated estimation tools.
Uses of Cost Estimation
1.During the planning stage, one needs to choose how many
engineers are required for the project and to develop a
schedule.
2.In monitoring the project's progress, one needs to access
whether the project is progressing according to the procedure
and takes corrective action, if necessary.
Cost Estimation Models
• A model may be static or dynamic. In a static model, a single
variable is taken as a key element for calculating cost and time.
In a dynamic model, all variable are interdependent, and there
is no basic variable.
Static, Single Variable Models: When a model makes use of single variables to calculate
desired values such as cost, time, efforts, etc. is said to be a single variable model. The most
common equation is:
C=aLb
Where
C = Costs
L= size
a and b are constants
• The Software Engineering Laboratory established a model
called SEL model, for estimating its software production. This
model is an example of the static, single variable model.
E=1.4L0.93
DOC=30.4L0.90
D=4.6L0.26
Where
E= Efforts (Person Per Month)
DOC=Documentation (Number of Pages)
D = Duration (D, in months)
L = Number of Lines per code
• Static, Multivariable Models: These model depends on
several variables describing various aspects of the software
development environment. In some model, several
variables(user participation, customer oriented changes,
memory constraints) are needed to describe the software
development process, and selected equation combined these
variables to give the estimate of time & cost. These models are
called multivariable models.
• WALSTON and FELIX develop the models at IBM provide the
following equation gives a relationship between lines of source
code and effort:
E=5.2L0.91
In the same manner duration of development is given by
D=4.1L0.36
• Example: Compare the Walston-Felix Model with the SEL
model on a software development expected to involve 8 personyears of effort.
1.Calculate the number of lines of source code that can be
produced.
2.Calculate the duration of the development.
3.Calculate the productivity in LOC/PY
4.Calculate the average manning
Solution:
• The amount of manpower involved (E) = 8PY
=96personsmonths
• (a)Number of lines of source code can be obtained by reversing
equation to give:
E=1.4L0.93
L = (96/1.4)1⁄0.93=94264 LOC
Multi variable
E=5.2L0.91
Bringing L to left and E to right
L = (96/5.2)1⁄0.91=24632 LOC
(b)Duration in months can be calculated by means of equation
Single variable
D = 4.6 L0.26
= 4.6 (94.264)0.26 = 15 months
For multi variable
D = 4.1 L0.36
= 4.1 (24.632)0.36 = 13 months
• (c) Productivity is the lines of code produced per persons/month
(year)
• (d)Average manning is the average number of persons required
per month in the project
COCOMO Model
Boehm proposed COCOMO (Constructive Cost Estimation
Model) in 1981.COCOMO is one of the most generally used
software estimation models in the world. COCOMO predicts the
efforts and schedule of a software product based on the size of
the software.
The necessary steps in this model are:
1.Get an initial estimate of the development effort from evaluation
of thousands of delivered lines of source code (KLOC).
2.Determine a set of 15 multiplying factors from various attributes
of the project.
3.Calculate the effort estimate by multiplying the initial estimate
with all the multiplying factors i.e., multiply the values in step1
and step2.
• The initial estimate (also called nominal estimate) is determined by an
equation of the form used in the static single variable models, using KLOC
as the measure of the size. To determine the initial effort Ei in personmonths the equation.
Ei=a*(KLOC)b
The value of the constant a and b are depends on the project type.
In COCOMO, projects are categorized into three types:
1.Organic
2.Semidetached
3.Embedded
1.Organic: A development project can be treated of the organic type, if the
project deals with developing a well-understood application program, the
size of the development team is reasonably small(2-50 kloc), and the team
members are experienced in developing similar methods of
projects. Deadline is flexible.Examples of this type of projects are simple
business systems, simple inventory management systems, and data
processing systems.
2. Semidetached: A development project can be treated with
semidetached type if the development consists of a mixture of
experienced and inexperienced staff. Team members may have
finite experience in related systems but may be unfamiliar with
some aspects of the order being developed. Suitable for(50300kloc) deadline is fixed and it can be relaxed. Example of
Semidetached system includes developing a new operating
system (OS), a Database Management System (DBMS), and
complex inventory management system.
3. Embedded: A development project is treated to be of an
embedded type, if the software being developed is strongly
coupled to complex hardware over 300 kloc and deadline is
fixed. For Example: ATM, Air Traffic control.
According to Boehm, software cost estimation should be done through three
stages:
1.Basic Model
2.Intermediate Model
3.Detailed Model
1.Basic COCOMO Model: The basic COCOMO model provide an accurate size of
the project parameters. The following expressions give the basic COCOMO
estimation model:
Effort=a1*(KLOC)a2 PM
Tdev=b1*(efforts)b2 Months
Where,
• KLOC is the estimated size of the software product indicate in Kilo Lines of Code,
• a1,a2,b1,b2 are constants for each group of software products,
• Tdev is the estimated time to develop the software, expressed in months,
Effort is the total effort required to develop the software product, expressed
in person months (PMs).
Estimation of development effort
For the three classes of software products, the formulas for
estimating the effort based on the code size are shown below:
• Organic: Effort = 2.4(KLOC) 1.05 PM
• Semi-detached: Effort = 3.0(KLOC) 1.12 PM
• Embedded: Effort = 3.6(KLOC) 1.20 PM
Estimation of development time
• For the three classes of software products, the formulas for
estimating the development time based on the effort are given
below:
• Organic: Tdev = 2.5(Effort) 0.38 Months
• Semi-detached: Tdev = 2.5(Effort) 0.35 Months
• Embedded: Tdev = 2.5(Effort) 0.32 Months
Project
a1
a2
b1
b2
Organic
2.4
1.05
2.5
0.38
Semidetached
3.0
1.12
2.5
0.35
Embedded
3.6
1.20
2.5
0.32
Example1: Suppose a project was estimated to be 400 KLOC. Calculate the effort
and development time for each of the three model i.e., organic, semi-detached &
embedded.
Solution: The basic COCOMO equation takes the form:
Effort=a1*(KLOC)a2b2PM
Tdev=b1*(efforts) Months
Estimated Size of project= 400 KLOC
(i)Organic Mode
E = 2.4 * (400)1.05 0.38 = 1295.31 PM
D = 2.5 * (1295.31)
= 38.07 PM
(ii)Semidetached Mode
E = 3.0 * (400)1.12 0.35
=2462.79 PM
D = 2.5 * (2462.79)
=38.45 PM
(iii) Embedded Mode
E = 3.6 * (400)1.20 0.32
= 4772.81 PM
D = 2.5 * (4772.8)
= 38 PM
Example2: A project size of 200 KLOC is to be developed.
Software development team has average experience on similar
type of projects. The project schedule is not very tight. Calculate
the Effort, development time, average staff size, and productivity
of the project.
Solution: The semidetached mode is the most appropriate
mode, keeping in view the size, schedule and experience of
development time.
Hence
E=3.0(200)1.12
=1133.12PM
D=2.5(1133.12)0.35 =29.3PM
P = 176 LOC/PM
Intermediate Model: The basic Cocomo model considers that the effort is
only a function of the number of lines of code and some constants
calculated according to the various software systems. The intermediate
COCOMO model recognizes these facts and refines the initial estimates
obtained through the basic COCOMO model by using a set of 15 cost
drivers based on various attributes of software engineering.
Classification of Cost Drivers and their attributes:
(i) Product attributes • Required software reliability extent
• Size of the application database
• The complexity of the product
(ii) Hardware attributes • Run-time performance constraints
• Memory constraints
• The volatility of the virtual machine environment
• Required turnabout time
(iii) Personnel attributes • Analyst capability
• Software engineering capability
• Applications experience
• Virtual machine experience
• Programming language experience
(iv)Project attributes • Use of software tools
• Application of software engineering methods
• Required development schedule
Intermediate COCOMO equation:
E=ai (KLOC) bi*EAF
D=ci (E)di
Project
ai
bi
ci
di
Organic
3.2
1.05
2.5
0.38
Semidetache
d
3.0
1.12
2.5
0.35
Embedded
2.8
1.20
2.5
0.32
Detailed COCOMO Model: Detailed COCOMO incorporates all
qualities of the standard version with an assessment of the cost
drivers. The detailed model uses various effort multipliers for each
cost driver property. In detailed cocomo, the whole software is
differentiated into multiple modules, and then we apply COCOMO in
various modules to estimate effort and then sum the effort.
The Six phases of detailed COCOMO are:
1.Planning and requirements
2.System structure
3.Complete structure
4.Module code and test
5.Integration and test
6.Cost Constructive model
The effort is determined as a function of program estimate, and a set
of cost drivers are given according to every phase of the software
lifecycle.
Functional Point (FP) Analysis
• Allan J. Albrecht initially developed function Point Analysis in 1979 at
IBM and it has been further modified by the International Function
Point Users Group (IFPUG). FPA is used to make estimate of the
software project, including its testing in terms of functionality or
function size of the software product. However, functional point
analysis may be used for the test estimation of the product. The
functional size of the product is measured in terms of the function
point, which is a standard of measurement to measure the software
application.
Objectives of FPA
• The basic and primary purpose of the functional point analysis is to
measure and provide the software application functional size to the
client, customer, and the stakeholder on their request. Further, it is
used to measure the software project development along with its
maintenance, consistently throughout the project irrespective of the
tools and the technologies.
Following are the points regarding FPs
• 1. FPs of an application is found out by counting the number
and types of functions used in the applications. Various
functions used in an application can be put under five types, as
shown in Table:
Types of Examples
FP Attributes
Measurements Parameters
1.Number of External Inputs(EI)
Input screen and tables
2. Number of External Output (EO)
Output screens and reports
3. Number of external inquiries (EQ)
Prompts and interrupts.
4. Number of internal files (ILF)
Databases and directories
5. Number of external interfaces (EIF)
Shared databases and shared routines.
All these parameters are then individually assessed for complexity.
The FPA functional units are shown in Fig:
• 2. FP characterizes the complexity of the software system and
hence can be used to depict the project time and the manpower
requirement.
• 3. The effort required to develop the project depends on what
the software does.
• 4. FP is programming language independent.
• 5. FP method is used for data processing systems, business
systems like information systems.
• 6. The five parameters mentioned above are also known as
information domain characteristics.
• 7. All the parameters mentioned above are assigned some
weights that have been experimentally determined and are
shown in Table
Measurement Parameter
Low
Average
High
1. Number of external 3
inputs (EI)
4
6
2. Number of external 4
outputs (EO)
5
7
3. Number of external 3
inquiries (EQ)
4
6
4. Number of internal 7
files (ILF)
10
15
5. Number of external 5
interfaces (EIF)
7
10
Risk
"risk" is a problem that could cause some loss or threaten the progress of
the project, but which has not happened yet.
• These potential issues might harm cost, schedule or technical success of
the project and the quality of our software device, or project team morale.
• Risk Management is the system of identifying addressing and eliminating
these problems before they can damage the project.
Risk Management
• A software project can be concerned with a large variety of risks. In order
to be adapt to systematically identify the significant risks which might affect
a software project, it is essential to classify risks into different classes. The
project manager can then check which risks from each class are relevant
to the project.
• There are three main classifications of risks which can affect a software
project:
1.Project risks
2.Technical risks
3.Business risks
1. Project risks: Project risks concern differ forms of budgetary,
schedule, personnel, resource, and customer-related problems. A
vital project risk is schedule slippage. Since the software is
intangible, it is very tough to monitor and control a software
project. It is very tough to control something which cannot be
identified.
2. Technical risks: Technical risks concern potential method,
implementation, interfacing, testing, and maintenance issue. It
also consists of an ambiguous specification, incomplete
specification, changing specification, technical uncertainty, and
technical obsolescence. Most technical risks appear due to the
development team's insufficient knowledge about the project.
3. Business risks: This type of risks contain risks of building an
excellent product that no one need, losing budgetary or
personnel commitments, etc.
Other risk categories
1. Known risks: Those risks that can be uncovered after careful
assessment of the project program, the business and technical
environment in which the plan is being developed, and more
reliable data sources (e.g., unrealistic delivery date)
2. Predictable risks: Those risks that are hypothesized from
previous project experience (e.g., past turnover)
3. Unpredictable risks: Those risks that can and do occur, but
are extremely tough to identify in advance.
Principle of Risk Management
1.Global Perspective: In this, we review the bigger system
description, design, and implementation. We look at the chance
and the impact the risk is going to have.
2.Take a forward-looking view: Consider the threat which may
appear in the future and create future plans for directing the
next events.
3.Open Communication: This is to allow the free flow of
communications between the client and the team members so
that they have certainty about the risks.
4.Integrated management: In this method risk management is
made an integral part of project management.
5.Continuous process: In this phase, the risks are tracked
continuously throughout the risk management paradigm.
Risk Management Activities
Risk management consists of three main activities, as
shown in fig:
Risk Assessment
• The objective of risk assessment is to division the risks in the
condition of their loss, causing potential. For risk assessment, first,
every risk should be rated in two methods:
• The possibility of a risk coming true (denoted as r).
• The consequence of the issues relates to that risk (denoted as s).
• Based on these two methods, the priority of each risk can be
estimated:
p=r*s
Where p is the priority with which the risk must be controlled, r is the
probability of the risk becoming true, and s is the severity of loss
caused due to the risk becoming true.
If all identified risks are set up, then the most likely and damaging risks
can be controlled first, and more comprehensive risk assessment
methods can be designed for these risks.
Risk Identification: The project organizer needs to anticipate the risk in the
project as early as possible so that the impact of risk can be reduced by
making effective risk management planning.
• A project can be of use by a large variety of risk. To identify the significant
risk, this might affect a project. It is necessary to categories into the
different risk of classes.
• There are different types of risks which can affect a software project:
1.Technology risks: Risks that assume from the software or hardware
technologies that are used to develop the system.
2.People risks: Risks that are connected with the person in the
development team.
3.Organizational risks: Risks that assume from the organizational
environment where the software is being developed.
4.Tools risks: Risks that assume from the software tools and other support
software used to create the system.
5.Requirement risks: Risks that assume from the changes to the customer
requirement and the process of managing the requirements change.
6.Estimation risks: Risks that assume from the management estimates of
the resources required to build the system
Risk Analysis: During the risk analysis process, you have to
consider every identified risk and make a perception of the
probability and seriousness of that risk.
• There is no simple way to do this. You have to rely on your
perception and experience of previous projects and the
problems that arise in them.
• It is not possible to make an exact, the numerical estimate of
the probability and seriousness of each risk. Instead, you
should authorize the risk to one of several bands:
1.The probability of the risk might be determined as very low (010%), low (10-25%), moderate (25-50%), high (50-75%) or very
high (+75%).
2.The effect of the risk might be determined as catastrophic
(threaten the survival of the plan), serious (would cause
significant delays), tolerable (delays are within allowed
contingency), or insignificant.
Risk Control
• It is the process of managing risks to achieve desired outcomes.
After all, the identified risks of a plan are determined; the project
must be made to include the most harmful and the most likely risks.
Different risks need different containment methods. In fact, most
risks need ingenuity on the part of the project manager in tackling
the risk.
• There are three main methods to plan for risk management:
1.Avoid the risk: This may take several ways such as discussing with
the client to change the requirements to decrease the scope of the
work, giving incentives to the engineers to avoid the risk of human
resources turnover, etc.
2.Transfer the risk: This method involves getting the risky element
developed by a third party, buying insurance cover, etc.
3.Risk reduction: This means planning method to include the loss
due to risk. For instance, if there is a risk that some key personnel
might leave, new recruitment can be planned.
• Risk Leverage: To choose between the various methods of
handling risk, the project plan must consider the amount of
controlling the risk and the corresponding reduction of risk. For
this, the risk leverage of the various risks can be estimated.
• Risk leverage is the variation in risk exposure divided by the
amount of reducing the risk.
• Risk leverage = (risk exposure before reduction - risk
exposure after reduction) / (cost of reduction)
• 1. Risk planning: The risk planning method considers each of
the key risks that have been identified and develop ways to
maintain these risks.
• For each of the risks, you have to think of the behavior that you
may take to minimize the disruption to the plan if the issue
identified in the risk occurs.
Risk Monitoring: Risk monitoring is the method that your assumption
about the product, process, and business risks has not changed.
Project Scheduling
• Project-task scheduling is a significant project planning activity. It
comprises deciding which functions would be taken up when. To
schedule the project plan, a software project manager wants to do
the following:
1.Identify all the functions required to complete the project.
2.Break down large functions into small activities.
3.Determine the dependency among various activities.
4.Establish the most likely size for the time duration required to
complete the activities.
5.Allocate resources to activities.
6.Plan the beginning and ending dates for different activities.
7.Determine the critical path. A critical way is the group of activities
that decide the duration of the project.
Personnel Planning
• Personnel Planning deals with staffing. Staffing deals with the
appoint personnel for the position that is identified by the
organizational structure.
It involves:
• Defining requirement for personnel
• Recruiting (identifying, interviewing, and selecting candidates)
• Compensating
• Developing and promoting agent
RMMM Plan
• The RMMM PLAN documents all work performed as part of risk analysis and used by
the project manager as part of the overall project plan
• Some software teams do not develop a formal RMMM document, rather each risk is
documented individually using a Risk information sheet (RIS)
• In most cases, RIS is maintained using a database system.
• So Creation and information entry, priority ordering, searches and other analysis
may be accomplished easily.
• RMMM - Mitigation, Monitoring, and Management
• An effective strategy for dealing with risk must consider three issues
• Risk mitigation is a problem avoidance activity
• Risk monitoring is a project tracking activity
• Risk management includes contingency plans that risk will occur
Risk Mitigation
• Risk mitigation (avoidance) is the primary strategy and is achieved through a plan
• For Ex., Risk of high staff turnover
• To mitigate this risk, you would develop a strategy for reducing turnover.
• The possible steps to be taken are:
• Meet with current staff to determine causes for turnover (e.g., poor working conditions, low pay, and
competitive job market)
• Mitigate those causes that are under your control before the project starts
• Once the project commences, assume turnover will occur and develop techniques to ensure continuity
when people leave
• Organize project teams so that information about each development activity is widely dispersed
• Define work product standards and establish mechanisms to be sure that all models and documents
are developed in a timely manner
• Conduct peer reviews of all work (so that more than one person is “up to speed”).
• Assign a backup staff member for every critical technologist
Risk Monitoring
• The project manager monitors factors that may provide an indication of whether the
risk is becoming more or less likely.
• In the case of high staff turnover, the general attitude of team members based on
project pressures, the degree to which the team has jelled, inter-personal
relationships among team members, potential problems with compensation and
benefits, and the availability of jobs within the company and outside it are all
monitored.
• In addition to monitoring these factors, a project manager should monitor the
effectiveness of risk mitigation steps.
• The project manager should monitor work products carefully to ensure that each can
stand on its own and that each imparts information that would be necessary if a
newcomer were forced to join the software team somewhere in the middle of the
project.
Risk Management
• Risk management and contingency planning assumes that mitigation efforts
have failed and that the risk has become a reality.
• If the mitigation strategy has been followed, backup is available, information
is documented, and knowledge has been dispersed across the team.
• In addition, you can temporarily refocus resources (and readjust the project
schedule) to those functions that are fully staffed, enabling newcomers who
must be added to the team to “get up to speed.” Those individuals who are
leaving are asked to stop all work and spend their last weeks in “knowledge
transfer mode.”
CASE Tools
CASE stands for Computer Aided Software Engineering. It means,
development and maintenance of software projects with help of
various automated software tools.
• CASE tools are set of software application programs, which are
used to automate SDLC activities. CASE tools are used by
software project managers, analysts and engineers to develop
software system.
• There are number of CASE tools available to simplify various
stages of Software Development Life Cycle such as Analysis
tools, Design tools, Project management tools, Database
Management tools, Documentation tools are to name a few.
• Use of CASE tools accelerates the development of project to
produce desired result and helps to uncover flaws before
moving ahead with next stage in software development.
Components of CASE Tools
• CASE tools can be broadly divided into the following parts
based on their use at a particular SDLC stage:
• Central Repository - CASE tools require a central repository,
which can serve as a source of common, integrated and
consistent information. Central repository is a central place of
storage where product specifications, requirement documents,
related reports and diagrams, other useful information
regarding management is stored. Central repository also serves
as data dictionary.
• CASE tools can be grouped together if they have similar functionality,
process activities and capability of getting integrated with other tools.
Scope of Case Tools
• The scope of CASE tools goes throughout the SDLC.
• Case Tools Types
• Now we briefly go through various CASE tools
Diagram tools
• These tools are used to represent system components, data and control
flow among various software components and system structure in a
graphical form. For example, Flow Chart Maker tool for creating state-ofthe-art flowcharts.
Process Modeling Tools
• Process modeling is method to create software process model, which is
used to develop the software. Process modeling tools help the managers
to choose a process model or modify it as per the requirement of software
product. For example, EPF Composer
Project Management Tools
• These tools are used for project planning, cost and effort estimation,
project scheduling and resource planning. Managers have to strictly
comply project execution with every mentioned step in software
project management. Project management tools help in storing and
sharing project information in real-time throughout the organization.
For example, Creative Pro Office, Trac Project, Basecamp.
Documentation Tools
• Documentation in a software project starts prior to the software
process, goes throughout all phases of SDLC and after the
completion of the project.
• Documentation tools generate documents for technical users and
end users. Technical users are mostly in-house professionals of the
development team who refer to system manual, reference manual,
training manual, installation manuals etc. The end user documents
describe the functioning and how-to of the system such as user
manual. For example, Doxygen, DrExplain, Adobe RoboHelp for
documentation.
Analysis Tools
• These tools help to gather requirements, automatically check for any
inconsistency, inaccuracy in the diagrams, data redundancies or erroneous
omissions. For example, Accept 360, Accompa, CaseComplete for requirement
analysis, Visible Analyst for total analysis.
Design Tools
• These tools help software designers to design the block structure of the software,
which may further be broken down in smaller modules using refinement
techniques. These tools provides detailing of each module and interconnections
among modules. For example, Animated Software Design
Configuration Management Tools
• An instance of software is released under one version. Configuration
Management tools deal with –
• Version and revision management
• Baseline configuration management
• Change control management
• CASE tools help in this by automatic tracking, version management and release
management. For example, Fossil, Git, Accu REV.
Change Control Tools
• These tools are considered as a part of configuration
management tools. They deal with changes made to the
software after its baseline is fixed or when the software is first
released. CASE tools automate change tracking, file
management, code management and more. It also helps in
enforcing change policy of the organization.
Programming Tools
• These tools consist of programming environments like IDE
(Integrated Development Environment), in-built modules library
and simulation tools. These tools provide comprehensive aid in
building software product and include features for simulation
and testing. For example, Cscope to search code in C, Eclipse.
Prototyping Tools
• Software prototype is simulated version of the intended software
product. Prototype provides initial look and feel of the product and
simulates few aspect of actual product.
• Prototyping CASE tools essentially come with graphical libraries. They
can create hardware independent user interfaces and design. These
tools help us to build rapid prototypes based on existing information.
In addition, they provide simulation of software prototype. For
example, Serena prototype composer, Mockup Builder.
Web Development Tools
• These tools assist in designing web pages with all allied elements like
forms, text, script, graphic and so on. Web tools also provide live
preview of what is being developed and how will it look after
completion. For example, Fontello, Adobe Edge Inspect, Foundation
3, Brackets.
Quality Assurance Tools
• Quality assurance in a software organization is monitoring the
engineering process and methods adopted to develop the software
product in order to ensure conformance of quality as per
organization standards. QA tools consist of configuration and
change control tools and software testing tools. For example,
SoapTest, AppsWatch, JMeter.
Maintenance Tools
• Software maintenance includes modifications in the software
product after it is delivered. Automatic logging and error reporting
techniques, automatic error ticket generation and root cause
Analysis are few CASE tools, which help software organization in
maintenance phase of SDLC. For example, Bugzilla for defect
tracking, HP Quality Center.
Agile Project Management
• Agile project management is an interactive approach to manage
software development. The agile project management focuses
on continuous releases and covers customer feedback with
every iteration.
• Traditionally the agile project management is classified into two
frameworks:
scrum
and
kanban.
The
scrum
framework
focused
fixed-length
project
iterations,
whereas kanban framework focused on continuous releases.
After competition of project first iteration (or steps) project
management activity immediately moves on to the next.
History of Agile Project Management
• Agile project management is rapidly rising in the 21st century. It
is used for software development projects and other IT
initiatives.
• However, from the mid-20th century, the concept of continuous
development has taken various forms. For example, there was
James Martin's Rapid Iterative Production Prototyping
(RIPP), an approach that served as the premise for the 1991
book Rapid Application Development (RAD).
• The agile project management framework which has emerged
in most recent years is known as Scrum. This methodology
features works on the development team to create a product
backlog. It also creates a prioritized list of the features,
functionalities, and fixes required to deliver a successful
software system. The scrum team offers the pieces of a task in
rapid increments.
How Agile Project Management works
• The agile project management calls for teams to regularly evaluate cost
and time as they move through their work. They use velocity, burnup and
burndown charts to measure their work, rather than Gantt charts and
project milestones to track progress.
• The agile team practices to continuous development and continuous
integration using technology that automates steps to speed up the release
and use of products.
• The presence and participation of the project manager are not required in
agile project management. Although the presence of the project manager
is essential for success under the traditional (waterfall model) project
delivery. The role of the project manager is to distribute task among team
members. However, the project manager is not obsolete in agile project
management, and many organizations use them in a large, more complex
project. The organization mostly places them in the project coordinator
role.
• Agile Project Management demands that team members know how to
work in this new agile methodology. The team member must be able to
coordinate with each other, as well as with users.
What is Scrum?
• Scrum is a framework that helps agile teams to work together. Using it, the
team members can deliver and sustain the complex product. It encourages the
team to learn through practice, self-organize while working on the problem. Scum
is a work done through the framework and continuously shipping values to
customers.
• It is the most frequent software that is used by the development team. Its
principle and lessons can be applied to all kinds of teamwork. Its policy and
experiences is a reason of popularity of Scrum framework. The Scrum describes
a set of tools, meetings, and roles that help the teams structure. It also manages
the work done by the team
The framework
• Scrum and agile are not the same thing because Scrum focused on continuous
improvement, which is a core foundation of agile. Scrum framework focuses on
ongoing getting work done.
• What are sprints?
• With scrum, a product is built in a series of repetition called sprints. It breaks
down big complex projects into bite-size pieces. It makes projects more
manageable, allows teams to ship high quality, work faster, and more frequently.
The sprints give them more flexibility to adapt to the changes.
• Sprints are a short, time-boxed period for Scrum team that works
to complete a set amount of work. Sprints are the core
component of Scrum and agile methodology. The right sprints will
help our agile team to ship better software.
What is sprint plan?
• Sprint plan is an action in Scrum that kicks off the sprint. The primary purpose of
sprint plan is to define what can deliver in the sprint. It also focuses on how the
work will be achieved. It is done in combination with the whole Scrum team
members.
• The sprint is a set of the period where all the work to be done. Before we start the
development, we have to set up the sprint. We need to describe how long time is
required to achieve the sprint goal and where we are going to start.
Factors affecting Sprint planning
• The What: The product owner describes the goal of the sprint and the backlog
items which contribute to achieve that goal.
• The How: Agile development team plans its necessary work on how to achieve
and deliver the sprint goal.
• The Who: The product owner defines the goal based on the value that the
customers seek. And the developer needs to understand how they can or cannot
deliver that goal.
• The Inputs: The product backlog provides the list of input stuff that could
potentially be part of the current sprint. The team looks over the existing work
done in incremental ways.
• The Outputs: The critical outcome of sprint planning is to meet described team
goal. The product set the goal of sprint and how they will start working towards
the goal.
What is the product backlog?
A product backlog is a registered list of work for the
development team. It is driven from the roadmap and its
requirements. The essential task is represented at the top of
the product backlog so that the team member knows what to
deliver first. The developer team doesn't work through the
backlog from the product owner's side and product owner
doesn't push the work to the developer team. The developer
team pulls work from the product backlog.
Backlog starts with the two "R"s
The fundamental product backlog is provided by a
team's roadmap and requirements. Roadmap repetition
breaks down into several epics, and each epic will have several
requirements and user stories.
The product owner organizes each of the customer stories into
a single list. This story is organized for the development team.
The product owner chooses to deliver first complete epic.
The factors that influence a product owner's prioritization
• Priority of customer
• Importance of getting feedback
• Relative implementation difficulty
• Symbiotic relationships between work items
What is Kanban?
• Kanban is a popular framework which is used to implement agile software
development. It takes real time communication of capacity and complete
transparency of work. The work items are represented in a kanban board
visually, allowing team members to see the state of every piece of work at
any time.
Boards
• The kanban board is the agile project management tool that designed the
necessary visualized work, limited work-in-progress, and maximizes flow
(or efficiency). It uses cards, columns, and provides continuous
improvement to help technology and service teams who commit the right
amount of work and get it done.
Elements of a kanban board
1.Visual Signals: The kanban board is a visual card (stickies, tickets, or otherwise).
Kanban team write their projects and work items onto cards, usually per person
each card. For agile teams, each card could encapsulate into one user story. Once
the board completed, this visual team helps team members and stock members
quickly to understand what the team is working.
2.Columns: The column represents the specific activities that compose a "workflow"
together. The card flows through a workflow until its completion. The workflow may
be a simple as "To Do," "In Progress," "Complete," or much more complicated.
3.Work in progress (WIP) Limits: The work in progress limits are the maximum
number of cards which can be in one column. This is at any given time. It gives the
alert signal that you committed too much work.
4.Commitment point: Kanban teams also maintain a backlog for their board. This
is where the customers and team member put ideas for projects that the team can
pick up. The team members pick up plans when they are ready. The committed
point is a movement where the design is picked up by the team, and work starts
on the project.
5.Delivery point: It is the end point of a kanban team's workflow. Mostly the delivery
point for every team is when the product and services are handed to the customer.
• Kanban vs Scrum board
• The following are the differences between Kanban and Scrum
board:
Kanban
Scrum
Kanban is an ongoing process.
Scrum sprints have a start and stop dates
Kanban has no formal roles.
Role is clearly defined of each team in the scrum
(product owner, development team, and scrum
master). Both teams are self-organized.
A kanban board is used throughout the lifecycle of Scrum board is cleared and recycled after each
a project
sprint.
This board is more flexible with regards to tasks This board has the number of tasks and a strict
and timing. Its task can be reprioritized, reassigned, deadline to complete them.
or updated as needed.
Managing team dynamics and communication
• Define your team’s goal
• Share experiences and knowledge.
• Practice good communication and collaboration.
• Generate an energizing and positive work culture.
• Set individual expectations for team members.
• Make the troubleshooting process faster.
• Maintain a proper schedule.
Metrics and Measurement
• Software metrics is a standard of measure that contains many
activities which involve some degree of measurement. It can be
classified into three categories: product metrics, process metrics, and
project metrics.
• Product metrics: describe the characteristics of the product such as
size, complexity, design features, performance, and quality level.
• Process metrics :can be used to improve software development and
maintenance. Examples include the effectiveness of defect removal
during development, the pattern of testing defect arrival, and the
response time of the fix process.
• Project metrics :Project metrics are the metrics used by the project
manager to check the project's progress. Data from the past projects
are used to collect various metrics, like time and cost; these
estimates are used as a base of new software.The project manager
will check its progress from time-to-time and will compare the effort,
cost, and time with the original effort, cost and time.
Scope of Software Metrics
• Software metrics contains many activities which include the following
−
• Cost and effort estimation
• Productivity measures and model
• Data collection
• Quantity models and measures
• Reliability models
• Performance and evaluation models
• Structural and complexity metrics
• Capability – maturity assessment
• Management by metrics
• Evaluation of methods and tools
Download