Project Management: Key Concepts and Techniques
Project management is the process of applying knowledge, skills, tools, and techniques to project activities to meet project requirements.
Key Elements of a Project:
- People — The most important element of a successful project.
- Product — The software to be built.
- Process — The set of framework activities and software engineering tasks to get the job done.
- Project — All work required to make the product a reality.
Key Roles in Project Management:
- Senior Managers: Define the business issues that often have significant influence on the project.
- Project (Technical) Managers: Plan, motivate, organize, and control the practitioners who do software work.
- Practitioners: Deliver the technical skills that are necessary to engineer a product or application.
- Customers: Specify the requirements for the software to be engineered.
- Stakeholders: Have a peripheral interest in the outcome.
- End-users: Interact with the software once it is released for production use.
Essential Managerial Skills:
- Motivation: The ability to encourage technical people to produce to their best ability.
- Organization: The ability to mold existing processes (or invent new ones) to enable the initial concept to be translated into a final product.
- Ideas or Innovation: The ability to encourage people to create and feel creative even when they must work within established bounds.
Team Structures:
- Democratic Decentralized (DD): No permanent leader; task coordinators are appointed for short durations. Decisions are made by group consensus. Communication is horizontal.
- Controlled Decentralized (CD): Has a defined leader and secondary leaders. Problem-solving is a group activity, but implementation is partitioned. Communication is horizontal and vertical.
- Controlled Centralized (CC): Top-level problem-solving and internal team coordination are managed by a team leader. Communication is vertical.
CPM and PERT:
- CPM (Critical Path Method): Developed by DuPont & Remington Rand.
- PERT (Program Evaluation and Review Technique): Developed for industrial projects where activity times are generally known.
Project Planning:
Project planning involves proper estimation of time, schedule, work, and resources.
- When: The need for software has been established; stakeholders are on-board; coding is ready to begin.
- What: Project planning spans five major activities: estimation, scheduling, risk analysis, quality management planning, and change management planning.
- Who: Software project managers, with information from stakeholders and engineers.
- Objectives: Create a framework that will help in the estimation of cost, time, and schedule. Define best-case and worst-case scenarios to bound project outcomes.
Task Sets:
- Establish project scope.
- Determine feasibility.
- Analyze risks.
- Define required resources:
- Human resources needed.
- Software resources.
- Environmental resources.
- Estimate cost and effort:
- Decompose the problem.
- Use estimation techniques.
- Develop a project schedule.
Feasibility:
Can we build software to meet this scope? Is the project technically feasible? Consider financial feasibility, time, and resources.
Lines of Code (LOC):
- Cost per LOC = Burdened Rate / LOC produced per PM
- Project Cost = Cost per LOC * LOCE
- Project Effort = Project Cost / Burdened Labor Rate
Function Point (FP):
- FPE = Count Total * [0.65 + 0.01 * ∑(Fi)]
- Project Effort = FPE / Average Productivity on FP
- Project Cost = Project Effort * Burdened Rate
COCOMO II:
- NOP = (Object Points) * ((100 – %reuse) / 100)
- PROD = NOP / Person-Month
- Estimated Effort = NOP / PROD
- Estimated Cost = Estimated Effort * Burdened Rate