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:

  1. Establish project scope.
  2. Determine feasibility.
  3. Analyze risks.
  4. Define required resources:
    • Human resources needed.
    • Software resources.
    • Environmental resources.
  5. Estimate cost and effort:
    • Decompose the problem.
    • Use estimation techniques.
  6. 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