Project management: The process of planning and
controlling the development of a system within a specified time frame at a minimum
cost with the right functionality.
Identifying Project Size
- Trade-offs among three important concepts: the size of the system (in terms
of what it does), the time to complete the project, and the cost of the project.
Estimation: the process of assigning projected
values for time and effort.
Two basic ways to estimate the time to build a system:
-
use the amount of time spend in the planning phase to predict the time
required for the entire project; industry standards suggest that a "typical"
business application spends 15% of its effort in the planning phase, 20%
in the analysis phase, 35% in the design phase, and 30% in the implementation
phase. (of course, this approach has obvious shortcomings.)
-
use the Function Point Approach:
- The project manager estimates the size of the project
in terms of the number of lines of code the new system will require using
function points. (A function point is a
measure of program size that is based on the system's number and complexity
of
- inputs,
- outputs,
- queries,
- files, and
- program interfaces.)
- Convert the size estimate into the amount of effort
required to develop the system in terms of the number of person-months
- Convert the estimated effort into an estimated schedule in terms of
the number of months from start to finish.
Creating and Managing the Workplan
Workplan: a dynamic schedule that records and
keeps track of all the tasks that need to be accomplished over the course of
the project. Usually, this is the main component of the project management software.
Creating a Workplan
- Identify tasks
- There are standard lists of tasks and methodologies that are available
to use as a starting point
- Or, the PM can use a structured top-down approach whereby high-level tasks
are first defined and then subsequently broken down into subtasks
- Result: work breakdown structure
- Determine the duration of each task
- Workplan: a mechanism for managing the tasks listed in the work breakdown
structure
- Include, at the minimum, task no, task name, duration, dependency, and
status (complete, in progress, open, etc.)
- Identify key milestones
- Organize taks using Gantt and PERT charts--both graphical ways of representing
the work plan.
- Refine Estimates (of costs, time, and functionality)
| Phase |
Deliverable |
| Planning Phase |
- System Request
- Project Plan
|
| Analysis Phase |
System Proposal |
| Design Phase |
System Specifications |
Scope Management
- Keep scope creep (when new requirements are added to the project after the
original scope project scop was defined and "frozen") to the barest
minimum.
- Keys: Identify requirements as well as possible in the beginning of the
project and apply analysis techniques effectively.
Timeboxing: a development perspective that emphasizes
a time-oriented approach over tasks-accomplished-driven one. Timeboxing is a
philosophy that places meeting a deadline above delivering functionality.
Timboxing sets a fixed deadline for a project and delivers the system by that
deadline no matter what, even if functionality needs to be reduced. Timeboxing
works well with the rapid application development (RAD) methodology.
- Set the date for system delivery
- Prioritize the functionality that needs to be included in the system
- Building the core of the system (the functionality ranked as the most important)
- Postpone functionality that cannot be provided within the time frame
- Deliver the system with core functionality
- Repeat steps 3 through 5, to add refinements and enhancements.
Staffing the Project
Deliverable: Staffing plan.
- Functional lead: manages a group of analysts
- Technical lead: oversees a group of programmers and more technical staff
- Both the FL and TL report to the project manager
- Other Issues:
- Motivation
- Handling Conflict
CASE Tools
Computer-aided software engineering (CASE):
a category of software that automate all or part of the development process.
- upper-CASE tools: used during the analysis phase to create
integrated diagrams of the system and to sotre information regarding the system
components
- lower-CASE tools: design-phase tools that create the diagrams
and then generate code for database tables and system functionality.
- integrated-CASE (I-CASE) tools:
contain functionality found in bothe upper- and lower-CASE tools; support
tasks that occur throughout the SDLC
Some CASE tools
- Visible Analyst Workbench
- Oracle Designer/2000
- Rational Rose
- Logic Works suite
Important: Repository.
Standards
When a team forms standards and follow them, the project can be completed faster
because task coordination becomes less complex. Standards can include formal
rules for naming files, forms that must be completed when goals are reached,
programming guidelines, etc.
Documentation
- should include the tasks of the SDLC, deliverables, internal communication--the
history of the project (usually stored in project binder(s).)
- a binder should include dividers with which to seperate content according
to major phases of the project; another binder should contain internal communication,
such as the minutes from the status meetings, written standards, letters to
and from the business users, and a dictionary of relevant business terms.
- As the project moves forward, place the deliverables from each task into
the project binder, with descriptions, so that someone outside of the project
will be able to understand it
- Keep a table of contents up to date with the content that is added
Managing Risk
Risk management: The process of assessing and
addressing (the) risks (that are associated with developing a project).
Factors that can cause risk:
- weak personnel
- scope creep
- poo design
- overly optimistic estimates
- etc.
Risk assessment: tacking and documenting potential
risks along with an evaluation of the likelihood of those risks, their potential
impact on the project, as well as potential ways such risks can be addressed.