713 Project planning and management

Plan your project to avoid missing deadlines and ensure its scope fits with the time you have available.

Project planning and management

Once the problem is defined and the user requirements are precise, the next step is to plan the project. Good planning allows you to set realistic milestones, manage time, track progress, and document decisions. This supports solo and collaborative work, and ensures the development process remains focused and organised.

Software engineers use a variety of tools to plan and manage projects. You don’t need to use all of them, but you need a system that helps you stay on track, communicate progress, and adapt when problems arise.

Gantt charts

A Gantt chart is a timeline that shows when tasks will be started and finished. Each task is represented by a horizontal bar. The bar's length shows the task's duration, and its position shows when it occurs in the project. Dependencies can also be marked—these tasks must be completed before others can begin.

Example tasks in a student's Gantt chart:

  • Define project scope

  • Write user requirements

  • Design system

  • Implement features

  • Test and refine

  • Prepare project documentation

Digital Gantt charts can be created using tools like:

  • Google Sheets or Excel

  • Trello (with timeline view)

  • ClickUp, Notion, or TeamGantt

  • GitHub Projects (for task tracking)

The following diagram shows the main elements of a Gantt chart. Other formats are acceptable.

A sample Gantt chart for the preparation of a Software Reuirements Specification.

Gantt charts can also be used to allocate resources, including team members, to specific tasks. The following chart shows the percentage of each task the assigned team member completes. Charts should be regularly updated during development to reflect actual versus estimated task times.

A more detailed Gantt chart for a Waterfall approach to software development.

Process diary

A process diary is a logbook that records your progress as the project unfolds. This can be a physical journal, a shared document, or a digital workspace (e.g. Notion, Google Docs, GitHub Issues). Entries should be made regularly and include:

  • Date and time

  • Task(s) completed

  • Challenges encountered and how they were managed

  • Decisions made and why

  • Resources or links used

  • Planned next steps

This diary becomes a record of your project thinking and can be used to reflect on your development process when preparing your final evaluation.

Task breakdown and delegation

If the project is collaborative, it’s important to assign responsibilities. Each team member should know what they are working on and when it’s due.

Even for individual projects, breaking down large tasks into smaller, actionable steps makes the work more manageable. Task boards like Trello or GitHub Issues are excellent for visualising and tracking thiskind of progress.

Version control

Version control saves multiple versions of your code over time. This allows you to go back to a working version if something breaks, and to track changes you’ve made.

For student projects, you can:

  • Use Git and GitHub to track commits

  • Create regular manual backups if you're not using Git

  • Include version numbers in file names (e.g. login_form_v2.py)

Using GitHub also supports collaboration, pull requests, and feedback from teachers or peers.

Summary

This planning phase ensures the project doesn’t just start well—it stays on track, adjusts when needed, and finishes with a complete and well-documented solution.

Last updated

Was this helpful?