Project

project

Table of contents

Introduction

The project layer is about planning, budgeting, monitoring and the governance of software development projects and software maintenance organizations.

Project

In the project layer the model acknowledges the aspect areas Planning, Progress, Functionality, Quality, Resourcing, Budget, Change, Reporting, Communication and Risk.

Detailed layer description

Planning

Planning is a crucial aspect of any software development project, as it helps to define the scope, goals, and objectives of the project, as well as the resources and budget required to complete it.

There are several steps that can be taken to establish the scope, goals, and objectives of a software development project:

  1. Define the problem: Clearly define the problem that the software is intended to solve, as this will help to set the direction for the project.
  2. Identify the stakeholders: Identify the stakeholders in the project, including the users, customers, and other parties who will be affected by the software.
  3. Define the requirements: Clearly define the requirements for the software, including any functional and non-functional requirements. This will help to establish the scope of the project and ensure that the software meets the needs of the stakeholders.
  4. Establish the goals and objectives: Set specific, measurable, achievable, relevant, and time-bound (SMART) goals and objectives for the project. This will help to define the direction of the project and ensure that it stays on track.
  5. Create a project plan: Develop a detailed project plan that outlines the steps required to complete the project, including the resources and budget required. This will help to ensure that the project stays on track and meets its goals and deadlines.
  6. Communicate the scope, goals, and objectives: Clearly communicate the scope, goals, and objectives of the project to all stakeholders, including the project team and any external parties. This will help to ensure that everyone is aware of their roles and responsibilities and is working towards the same goals.

Progress

Tracking progress is important in a software development project to ensure that the project is on track to meet its goals and deadlines. This can be done through regular status updates and progress reports.

There are several ways to track progress in a software development project to ensure that it is on track to meet its goals and deadlines:

  1. Use project management software: Project management software, such as Asana, Trello, or Jira, can be used to track progress and manage the project. These tools allow you to create tasks, assign them to team members, and track their progress.
  2. Set up regular status meetings: Regular status meetings, such as daily stand-ups or weekly progress meetings, can be used to track progress and identify any issues or roadblocks that need to be addressed.
  3. Use project milestones: Establishing project milestones, such as completing certain features or reaching certain stages of the development process, can help to track progress and ensure that the project is on track to meet its deadlines.
  4. Use a burn-down chart: A burn-down chart is a graphical representation of work remaining versus time. It can be used to track progress and identify any issues that may be impacting the project’s ability to meet its deadlines.
  5. Use a Gantt chart: A Gantt chart is a graphical representation of the project schedule, showing the start and end dates of tasks and dependencies between them. It can be used to track progress and identify any potential delays or issues.
  6. Use progress reports: Regular progress reports, such as weekly or monthly reports, can be used to track progress and provide updates to stakeholders. These reports can include information on completed tasks, tasks in progress, and any issues that have arisen.

Functionality

Functionality refers to the features and capabilities of the software being developed. Ensuring that the software has the desired functionality is a key aspect of a software development project.

Before starting the project, it is important to have a clear understanding of what the business objectives are and how the software contributes to these objectives . This can be done by creating a detailed specification document that outlines the business objectives and all of the features and capabilities that the software is expected to provide.

There are several steps that can be taken to define the features and capabilities of the software being developed:

  1. Identify the needs of the users: The first step in defining the business objective and the features and capabilities of the software is to understand the needs of the users. This can be done through research, user interviews, and gathering feedback from stakeholders.
  2. Create a vision: An articulated vision for a software product captures the business objectives and the high level features and capabilities of the software. This vision serves as a guideline for the project, it captures the principles and priorities for the project.
  3. Create a specification document: Once the needs of the users have been identified, the next step is to create a specification document that outlines the desired features and capabilities of the software. This document should be detailed and include specific requirements for each feature or capability.
  4. Review and refine the specification document: After the specification document has been created, it is important to review it carefully and make any necessary revisions. This may involve getting feedback from stakeholders and making sure that all of the requirements are clearly defined and feasible.
  5. Prioritize the features and capabilities: It may not be possible to include all of the desired features and capabilities in the initial release of the software. In this case, it is important to prioritize the requirements and determine which ones are most important to include.
  6. Use a requirements management tool: A requirements management tool is a tool that helps manage the process of gathering, organizing, and tracking the requirements for a software project. This can be a useful tool for defining the features and capabilities of the software being developed.

The steps describe a continuous process. On long running projects steps 1 and 2 should be revisited time by time to assure over time the objectives are still valid. Steps 3 through 5 can be executed iteratively and incrementally.

Quality

Quality is a critical aspect of any software development project, as it ensures that the software meets the required standards and performs as intended. This includes testing the software to ensure it is free of defects and meets the needs of the users.

Resourcing

Resourcing refers to the allocation of resources, such as staff, equipment, and materials, to a software development project. Proper resourcing is essential to ensure that the project has the necessary resources to complete it successfully.

Budget

The budget is a key aspect of a software development project, as it determines the amount of money that is available to fund the project. It is important to manage the budget carefully to ensure that the project stays on track and stays within its financial constraints.

Change

Change is a constant factor in software development projects, as requirements and priorities can shift over time. Managing change effectively is essential to ensure that the project stays on track and meets its goals.

Reporting

Regular reporting is an important aspect of a software development project, as it helps to keep stakeholders informed about the progress and status of the project.

Communication

Effective communication is crucial in a software development project, as it helps to ensure that all team members are aware of their roles and responsibilities, and are able to work together effectively.

Risk

Risk management is an important aspect of any software development project, as it helps to identify and mitigate potential risks that could impact the project’s success. This includes identifying potential risks, assessing their likelihood and impact, and developing strategies to mitigate or eliminate those risks.

Capability maturity assessment

The following should be considered when assessing an organization’s capability with regards to project.

Planning

In the planning area both estimates and plans are assessed.

  • Both are established with an uniform and consistent approach.
  • Both are up-to-date.
  • Both are shared with internal and external stakeholders and the stakeholders are committed to them.
  • Both are supported by benchmarks.
Progress
  • Progress is measured in a uniform and consistent manner.
  • Progress is reported to stakeholders.
  • Progress reports are input for estimation and planning benchmarks.
Functionality
  • A clear process exists to select and deliver functionality.
  • Both selection and delivery of functionality is aligned across depended teams.
Quality
  • The requirements for (non-)functional product quality are defined in objective and  measurable criteria.
Resourcing
  • Roles & Responsibilities are captured in job profiles
  • The job profiles document the appropriate skills and experience.
  • The job profiles include a training plan for the job profile.
  • A resource management process is established to select, on-board and retain resources in accordance with the established set of job profiles.
Budget
  • Is is specified how budget can be acquired and spent.
Change
  • An approach to handle change is defined, established and executed.
Reporting
  • A fixed set of project reports is established.
  • These reports contribute to the governance of the project.
Communication
  • A communication plan is established and executed.
  • The communication plan governs the formal and informal communication between internal and external stakeholders.
Risk
  • A risk management process is established and executed.
  • A risk log is established for a project.
  • The risk log is up-to-date.