Metrics
Metrics
Metrics
Project Management
Introduction
Effective project management requires a
well-structured project and diligent
oversight
A well-structured project consists of a
series of finite, effective, well-defined
tasks
The phases of a software development
methodology define the tasks to be
managed to some extent
Project Management
Responsibilities
Establish project schedule
Establish project budget
Structure the project into units of work
Assemble the project team
Assign units of work to individuals
Determine necessary resources
Carry out risk assessment
Monitor progress of project
Ensure resulting system meets requirements
Software Metrics
Reasons to measure software:
– To facilitate estimation of development time
– To assess the productivity of developers
– To assess the quality of the project
Current schools of thought:
– Size-oriented
– Function-oriented
– Object-oriented
Size-oriented Metrics
Attempt to quantify software projects by
using the size of the project to normalize
other quality measures
Possible data to collect:
– number of lines of code
– number of person-months to complete
– cost of the project
– number of pages of documentation
– number of errors corrected before release
– number of bugs found post release
Problems with using Lines
of Code (LOC) as Metric
Lines of source code comprising a project
are not always good gages to the size and
complexity of a project:
– LOC to complete a task is language dependent
– Code reuse reduces LOC but requires more effort,
thus well-design system are penalized
– Using a LOC based metric encourages
programmers to create more LOC, which is
ultimately less efficient to maintain
Function-Oriented Metrics
Attempt to measure the functionality of a
software system
Use a unit of measure called function
point
Some possible function points:
– Internal data structures
– External data structures
– User inputs
– User outputs
– Transformations
– Transitions
Issues with Using Function-
Oriented Metrics
Requires that analysis and design of a
project are completed before workload
estimation can occur
Validity of the workload estimation is
limited to the accuracy of the analysis and
design
Complexity determination of function
points is subjective
Object-Oriented Metrics
Suggested measurements for object-
oriented systems:
– Number of scenario scripts
– Number of key classes
– Number of subsystems
Disadvantages:
– Excludes a history-base of non-object-
oriented projects
Quality Control Metrics
Correctness
– Defects per thousand LOC
Maintainability
– Mean time to change
Integrity
– Likelihood of thwarting an attack
Usability
– Skill required of users
– Time required to become proficient
– Net increase in productivity
– Users’ attitude toward system
Other Project Management
Concepts
Mythical staff-month
Configuration management
Change control
Configuration Audit
Configuration status reporting
Project Planning
Project planning requires:
– Defining the iterations of the project
– Specifying subtasks
– Determining the project schedule and allocating
time for each subtask
– Associating deliverables with each subtask to
verify progress
– Dividing the subtasks among the developers
– Scheduling any interdependent tasks to minimize
delays - use task network or PERT chart
Monitoring Project Progress
Develop project milestones with
associated deliverables to gage progress
Milestones should be created so that the
project manager receives sufficient
feedback at regular intervals
The feedback should take the form of a
natural artifact of the development
process
See figure 9.9 for a list of deliverables
Four Stages of Team
Development
Forming
Storming
Norming
Performing
Conflict Resolution
Strategies
Arbitration
Rules and regulations
Confrontation
Negotiation
Separation
Neglect
Coordination device
Risk Management
Risk management provides a structured
evaluation of a development project to draw
attention to sources of risk
The need for risk management is demonstrated
by the high failure rate for large-scale software
development initiatives
Successful project management relies on the
additional time that is built into the development
schedule to accommodate some level of delay
due to risk factors
What is Risk?
A risk is any unanticipated condition or
event that causes one or more tasks to be
delayed, lengthened, or fail
Risks can delay or prevent the completion
of a task or project as a whole
Two very general categories of risk will be
identified here, technical and human risk
Sources of Technical Risk
Project complexity
Project size
Use of state-of-the-art technology
Network vulnerability
Disgruntled employees
Potential for white-collar crime
Data attainability
Accuracy of data source
Need for high-quality graphics
Sources of Human Risk
Development team Administration
– Productivity – Budgetary
– Experience constraints
– Knowledge – Project priority
– Dedication – Realistic
End users expectations
– Technical knowledge
– Support for project
– Agreement on system
Consequences of Risk
Delay project
Compromise the quality of the
project
Cause the project to fail
Cause the project to be too
expensive to implement or run
Reducing Risk
Early project evaluation
Early implementation of risky system
aspects
Early use of new technology
Early resolution of class interaction
problems