Blog Post

Software Development Project Management

Raspal_Chima

Raspal Chima -

Custom software development projects have many moving parts. Because of this, managing the developmental process efficiently can be critical to the successful release of a software product.

Blog-Blueberry Consultants-Software-Project-Management

Recent years have seen the mass proliferation of software products that are becoming increasingly complex as new technology has presented fresh opportunities for businesses to work more efficiently and increase their market share.

But regardless of their size, all software projects have one thing in common: the development pipeline is bounded by time, budget, and staffing resources – from initial gathering to testing and maintenance – within which to achieve the intended finished product.

Because of this, software development companies always designate at least one project manager to each project they take on – someone who has complete oversight of the entire development process from start to finish. It’s the job of the software development project manager to keep everything on track.

What is a Software Project?

Essentially, a software project is the process of creating a complete software product, from initial idea to finished product, and sometimes beyond (think maintenance and version updates). Within this complicated process, there are also several rounds of user and internal testing, updating, and customer feedback.

So, to keep the machinery of the development process running efficiently means executing all the required steps of the software project in the best way possible from start to finish, to ensure the final product goals are met within any bounding constraints.

Another way to look at software development project management would be within the context of the software development lifecycle.

Software Development Lifecycle

The software development lifecycle (SDLC) typically follows these steps:

Planning > Analysis > Design > Implementation > Testing & Integration > Maintenance

Whilst all software projects follow an SDLC, its execution can vary depending on which project management model is being used and the size and complexity of the project – however, all the vital steps above are always performed.

For practical purposes the SDLC can be incorporated into the following four main phases:

  1. Initial Meeting and Proposal
  2. Planning and design
  3. Development
  4. Completion and Testing

The oversight and management of a software project across these phases – to ensure it’s delivered on time and budget whilst meeting user expectations – is what is termed software development project management. And within the scope of project management, it is the role of the project manager, specifically, to monitor the development process through each phase and maintain communication amongst all team members to address issues of cost, budget, resources, time, quality, and customer satisfaction.

Phase 1: Initial Meeting and Proposal

During the initial meeting, the software development requirements are defined in detail. This could be anything from creating brand new software, to taking over existing software that needs further development.

A proposal is produced based on the initial conversation. The proposal includes the development team’s thoughts on the best way to meet your requirements – this can include an analysis of two or three different options, as well as recommendations on the best approach.

At this stage, both stakeholders and the project team should document the requirements they agree on as a project charter. Once the charter has been approved and signed-off the project can start.

Phase 2: Planning and Design

For most software development projects, more design work is usually required to clarify exactly how the system should work. Remember most software systems interface with other software systems and databases, so identifying these interactions is an important part of the planning and design stage.

A key part of project planning is deciding on the project deliverables – and there can be multiple deliverables. These are things agreed that the project will deliver – for example relating specifically to the software product, or additional items as well.

Planning also includes defining the criteria that will be used to measure the project’s success, such as meeting quality targets, delivery time and budget. This is also the stage where Key Performance Indicators (KPIs) should be identified.

KPIs are the metrics that define the success of a software project because they help the development team assign a quantitative value to how a software application needs to perform. For example, a metric for an online form might be the number of seconds it takes to retrieve results after a user hits “submit”, or for an e-commerce application it might be the number of people who are able to place an online order at one time without crashing the app.

Once this stage is signed off, its time to move onto the specific activities that make up the project’s work, which include:

  • Task identification, creation, and assignment.
  • Defining project milestones.
  • Identifying dependencies between tasks, where completion of one task depends on another task being completed first.
  • Identifying task dependencies, where task completion is contingent on the completion of an earlier task.
  • Creating task lists from related tasks.

Phase 3: Development

The development team starts work on your software system. This phase of a software project covers all active work of the development process, such as design, development, testing, and quality assurance tasks. Software testing takes places throughout the development phase for quality assurance, and is normally focused on the application’s stability, security, and speed, so that any problems can be addressed immediately. As a minimum, software should be tested at every milestone.

Furthermore, since the software development lifecycle takes place in a series of stages, the completion of each stage offers an opportunity for the project manager to evaluate the project’s progress and share the evaluation findings with both the development team and the client to keep everything on track.

At Blueberry, we use a collaborative customer project tracking system, called the PTS Customer Portal as our preferred development workflow procedure.

Project management during the development phase is principally focused on project monitoring to make sure the project is progressing in line with expectations agreed during the Proposal phase and identifying any issues that could impede the team’s progress. Using a project tracking system can streamline project management by providing functionality for the team to report issues, keep up to date with task dependencies and issues, as well as allow customers to add feedback or automatically create service request tickets.

Phase 4: Completion and Testing

At the end of the development stage, the software system is considered “functionally complete” – i.e., there is no code left to write for features. Normally, the software team evaluates the project and final testing begins on each feature. Customers can also be involved in system testing at this stage.

Once testing is complete, the new software system is ready for use, ending the management of the software development project.

Note that many software systems continue to be improved and refined by customers after the completion of the software product, so other phases (with their own software development lifecycles) could potentially follow. In effect, this document describes the project management and lifecycle of a single phase.

We're easy to talk to - tell us what you need.

CONTACT US

Don't worry if you don't know about the technical stuff, we will happily discuss your ideas and advise you.