5 things to ensure your software project succeeds.

5 things to ensure your software project succeeds.

It’s a sad and unnerving fact that we have all either been involved with, or directly know someone that has, a software project that we do not regard to have been successful.

Clearly there is a question as to what is meant by success and this will obviously mean different things to different people and a large part of any project is ensuring that everyone’s understanding of success is the same. However, if one person’s perception is that the project has failed surely we can say that something has gone wrong.

Definition

Let’s start with what the project is for and what outcomes are sought.

Arguably the most important element of any project is knowing what problem you are trying to solve. Many businesses rush this stage, without truly understanding the problem and underlying factors that impact on this. Failing to understand the problem from every angle means that elements might be missed or not considered as part of the solution leading to the potential that any solution provided may not actually be the best one.

Defining the project is a stage often underinvested in both financially and in terms of time and effort. Investment into this stage of the project is critical as without a clear project definition how can anyone know what is required to be delivered and how will this be achieved. A common failing at this stage is not involving a cross section of the people that will actually use this solution once delivered. Without involving the user community, it is difficult to ensure that their needs will be met and their working practices improved. All of which will make it more challenging to gain a high level of user adoption which will be key to achieving a return on investment from the project.

At the definition stage it is crucial that everyone involved in the project shares the same expectations for the outcome and what is to be delivered. To achieve this, it is important to define a set of tangible criteria on which the success of the project will be measured. That way everyone can agree to ensuring that the project is driven to achieving these metrics.

Planning

Having defined what is required from the project the next stage often rushed is planning. As with anything in life, the more planning put in place the better the potential outcome. There is often a tendency for all parties to want to push on and progress the project as quickly as possible, however time spent at this stage will certainly be saved further down the line as the project proceeds and will benefit everyone involved. Correct project planning will ensure that everyone involved knows their role and responsibilities and there will be a toolkit of systems and processes put in place to ensure that the project runs smoothly and that everyone has the capability to collaborate in ensuring a successful outcome.

Time and Budget

Timescales and budget are major factors in any project and both tend to get squeezed to the point where they both impact on the successful outcome. For most customer’s projects of this nature are infrequent and therefore it is often difficult to gauge the time and cost required. However, for the company delivering the solution this is something they are doing on a daily basis and as such should be in a position to provide the requisite guidance and justification as to how long projects are likely to take to deliver and at what cost.

Quite often someone not directly involved in the project will dictate the deadline for delivery and the budget; this can put pressure on all aspects of the project and everyone involved. In this instance, effective planning becomes even more critical.

Avoid rushing a project just because you have the go-ahead and a partner who you believe can provide a solution. It is critical to make sure that time is taken to accurately assess the level of investment required both financially and in terms of the resources required from the business as this will equate to time and lost opportunity cost. Not having an accurate understanding of the internal resources required to successfully deploy a project can lead to delays and overruns which ultimately will result in additional spend.

While controlling costs is clearly very important, putting pressure on a supplier to adhere to a reduced budget will ultimately cost the company in a less satisfactorily delivered project and a supplier that will be focusing on the management of their own costs rather than the delivery of a successful project to meet your expectations and also likely to incur a greater cost for your internal project management team.

Communication and Reviewing Project Progress

Strong, unambiguous communication is critical in any project delivery. Poor communication will lead to confusion, delays, mistakes and ultimately failures.

It is all too easy to assume that people know what’s going on and that they understand their role. Time should be taken at every stage to make sure the project is not only being accurately documented, but that everyone involved fully understands and is ‘on the same page’.

Very often in the delivery of software projects, the management team decide on a system but do not involve the user community. Key to a high level to user adoption is the involvement of users throughout the process; get them involved and they will feel a sense of ownership in the overall outcome. Communicate that the project is happening, the appropriate business reasons and justification and how it will positively impact on users and their day to day activities.

Make time to review the project at key stages, making sure milestones are being achieved and that the development of the solution is meeting your expectations. Check progress against the functional specification and budget. Don’t be tempted or encouraged to let the supplier deliver the system in one go at the end of the project, review it and test it as regularly as possible; it’s easier to pick up small changes as you go rather than waiting for full user acceptance testing before you realise you don’t like the look of the system.

Project Management/Governance

Effective project management is at the core of every successful project. The difficulty is that this needs to be on both sides of the table; supplier and client. Again, this is often not the main task for a client and as such they are not used to managing software development projects and, on top of this, they have their day jobs to do in managing the business. However, they need to ensure that they invest sufficient time in the ongoing management of the project and that they fully understand the project at all times. At the outset everyone involved in the project needs to understand and agree on the deliverable and ensure that these are adhered to and that these are sponsored by the senior management teams within both businesses. Failure to focus on this can lead to scope creep and people adding features and functions throughout the project, leading to additional costs, delays and a confused outcome. Far better to retain the original scope of the project and keep a record of potential enhancements for a phase 2 delivery; unless of course the enhancements are deemed critical to the core deliverable.

Ensure that the project progress is reviewed and performance managed on a regular basis. Make sure that the development is providing the functionality required by testing elements as they become available. When reviewing the project make sure that key stakeholders and sponsors are kept up to date and that the project documentation accurately reflects the progress. If the project is stalling or moving in the wrong direction, don’t be afraid to call a halt and revisit the original definition and specification documents to bring everything back on track and don’t be afraid or prevaricate when making a decision.

When testing ensure that there is a formalised plan and that tests are carried out against the specification for the system, rather than what users might like to see. Make sure that you involve the right people within the business to test their parts of the system and that they understand their role and how to conduct the tests and provide feedback. Where possible, consolidate all comments and changes for a full review rather than taking piece meal approach, this will be easier for the supplier to manage and make sure that all changes and comments can be addressed in context. During testing, it is important to consider that at some point tests will need to be conducted in the actual environment and on the infrastructure that the system will be used, with similar volumes of data; ignoring this can result in a system that works in a test environment for a small number of users, but falls over then released to the whole business.

Summary

Developing and deploying a new solution is not an easy exercise. Take time to consider every aspect and don’t rush in. Make sure that the business is ready for a new solution and that you have a plan in place to address all of the above, without piling more responsibilities onto individuals who are already busy or do not have the requisite knowledge or skillset. The effective management of any project is very much like the Tortoise and the Hare, less speed more haste and certainly more success. If you are in any doubt, ask for help.