Project Management: Planning, Execution, and Control

Project Management

Project Definition

A project is a set of steps, activities, and tasks that aim to achieve a specific objective. It involves a job that is not immediate and requires a relatively long period to complete. A project has a defined beginning and end, utilizes various resources, and operates within a budget. It consists of unique and non-repetitive activities, has a clear purpose, requires a project manager and staff development, needs to be planned, and its progress should be measured against the plan. Projects often coexist with other projects and compete for resources, and are influenced by internal and external forces.

Key Roles and Documents

  • Project Manager: A person responsible for planning, controlling, and directing the project’s activities.
  • Project Plan: A document that describes the work to be performed and how the project manager will direct its development. It defines a set of tasks coordinated in time and the resources needed to meet objectives.
  • Project Summary: A concise document that outlines the project’s objectives, scope, and progress. It serves as a communication tool for managers, customers, and stakeholders.

Project Planning

Contents of a Project Plan

  • Summary of the project
  • Achievable milestones
  • List of procedures to be applied
  • Specification of who, how, and when tasks will be performed and reviewed
  • Communication plan
  • Work Breakdown Structure (WBS) diagram
  • List of project activities
  • Responsibilities, budgets, and deadlines

Project Schedule

  • Calendar: A graphical representation of all project activities, allowing for progress control.
  • Definition of Activities: Objectives, start and end dates, and duration.
  • Decomposition of Activities: Breaking down complex activities into smaller, manageable tasks.
  • Relationship Between Activities: Identifying dependencies and sequences.
  • Estimation of Time and Cost: Determining the required time and resources for each activity.
  • Adjustment of Activities: Modifying the schedule based on time constraints and resource availability.
  • Allocation of Resources: Assigning resources to activities and defining the project team.
  • Revision of the Calendar: Regularly reviewing and updating the schedule.

Networks of Precedence

PERT (Program Evaluation and Review Technique) and CPM (Critical Path Method) are used when a project has well-defined activities that can be started, stopped, and performed separately. These activities can be related to each other and arranged in a sequence. Once an activity begins, it must continue without interruption until completion.

Cost Estimation Methods

  • Expert Opinion: Based on personal experience.
  • Estimation by Analogy: Comparing the project to similar past projects.
  • Decomposition: Breaking down the project into smaller units to estimate the cost of each unit.
  • Equations or Models: Using mathematical formulas and models to estimate costs.

Project Monitoring and Supervision

Software Project Monitoring

Monitoring involves comparing current results with expected results and taking corrective actions when deviations occur. It also includes communicating commitments to the staff involved.

Supervision of Results

Challenges in project supervision include difficulty in defining work, lack of team involvement, organizational problems, poorly defined team organization, lack of importance given to the project, absence of contingency plans, poor communication, difficulty in working across departments, poor project direction, lack of support from management, uncommitted project manager, difficulties in assessing risks, and changing customer requirements.

Project Control

Criteria for Controlling Projects

  • Detailed project planning
  • Involving all key personnel
  • Decomposing the project using WBS
  • Defining results and deliverables
  • Establishing milestones
  • Ensuring commitment
  • Project monitoring
  • Taking measurements
  • Conducting regular reviews

Software Risk Management

Types of risks include strategic, commercial, contractual, financial, project, operational, and maintenance risks.

Project Initiation and Feasibility

Decision to Undertake the Project

This decision is based on the understanding of software requirements and their potential changes.

Project Manager Selection

Criteria for selecting a project manager include leadership, team building skills, business vision, technological understanding, management skills, decision-making ability, versatility, flexibility, integrity, and foresight.

Feasibility Studies

Feasibility studies address economic, technical, legal, operational, and scheduling aspects of the project.

Cost-Benefit Analysis

This analysis helps select the most beneficial alternative and identify financial needs. Costs considered include hardware, software, purchase or maintenance, communications, system development, installation, annual maintenance, consultancy, training, office equipment, and other relevant costs. Benefits include maintenance savings, increased sales, material savings, financial benefits, and intangible benefits like improved quality and error reduction.

Software Testing and Debugging

Software Verification and Validation

  • Verification: Evaluating a system or component to determine if it meets the conditions imposed at the beginning of a phase (Are we building the product right?).
  • Validation: Evaluating a system to determine if it meets specified requirements (Are we building the right product?).

Testing Techniques

  • Cyclomatic Complexity: A measure of the complexity of a program’s control flow.
  • Functional or Black Box Testing: Testing the functionality of a system without knowledge of its internal workings.
  • White Box Testing: Testing based on knowledge of the internal structure of the system.

Test Plan

The test plan outlines the approach, resources, and schedule for testing activities. It identifies the elements to be tested, the characteristics to be evaluated, the responsible staff, and the associated risks.

Debugging

Debugging is the process of locating and correcting defects in software. It involves analyzing the code to identify the cause of errors and generating new test cases to ensure the fix is effective.

Testing Strategy Implementation

The testing process typically starts at the module level and progresses towards system integration. Once integration is complete, the system is tested until it is accepted by the customer.

Recommended Practices for Integration

Integration can be approached using a top-down or bottom-up method. Critical modules should be identified early and tested thoroughly. For example, modules that exercise greater control over others should be prioritized.

Project Scheduling Terminology

  • Total Float: The amount of time an activity can be delayed without delaying the project completion date.
  • Free Float: The amount of time an activity can be delayed without delaying the early start date of its successor activity.