Software Projects for delivering change
Why not try out this little experiment? Ask 10 different people what they think the definition of a project is.
A software project can be described as something like this:
A group of people working together to deliver a well-defined software solution that will give the operational staff new capability to do their jobs better, or enable the business to reach more customers. As a general guide you can expect a project to take between one month and one year from start to finish.
How close were the responses you got in your survey?
Every successful business needs to fulfil certain strategic objectives in order to be sustainable and successful. Software solutions often play an important part in achieving these objectives, such as:
- Making our core service more effective and efficient while improving the quality and output.
- Guaranteeing that our reputation is managed and demand for services or products remains strong and predictable.
- Ensuring that the organisation remains relevant and able to meet future needs of our customers and employees.
- Ensuring staff have the most effective tools and means to do their jobs.
- Having financial control.
With the advent of digital technology most businesses have digital tools integrated into their business infrastructure to help them achieve the above objectives.
The market does not stand still and technology is advancing at ever increasing rates. Over time systems become obsolete and market demands require new solutions in order for you to remain competitive. The chances are that if you have not in some way been involved in changing out, upgrading or modifying a solution then you will be in the next couple of years.
Let us take a look at some of the changes that are not uncommon for businesses to be faced with.
- Creating a bespoke solution to make work processes more efficient.
- Rebuilding a bespoke platform for service companies to sell their services.
- Integrating a new PIM (Product Information Management) system in your manufacturing company.
- Upgrading an ERP system or a warehouse management system.
- Developing a bespoke e-commerce system that several of your businesses can use as a common platform.
- Doing a platform change of your web shop from Magento 1 to Magento 2.
- Building your own game for the entertainment industry.
Have you had any of the following problems? Do you know what they are costing your business?
- You realise that developers working on one feature seem to have different understandings about what is needed.
- The team has to stop what they are working on as they have suddenly realised the feature they are building is dependent on something else.
- The team has to re-work features to account for demands of a dependent feature.
- You were told that a project could be completed in six to eight months and two years down the line it is at 95% but still several months from delivery.
- Whenever you test the solution it does not do what you were expecting.
- Working on a legacy system requires that all the developers stop developing for one or two days before each release to test what they have built.
- People are working on several things at once and not getting anything delivered.
- Information is not being shared.
What negative experiences have you seen as a result of poor software projects?
Have you been involved in a project where you needed to make decisions, but feel the information you had was not reliable? You may have seen signs of trouble but were assured that everything was ok, just a couple of small things that would be sorted out in the next couple of days, only to find out that a couple more months were needed to sort out those small problems.
Think back to a recent project that was delivered late, what did it cost? Did you have to pay the project team to work an extra five months to a year, to deliver the project because it was so critical to the business? Did you have to employ more people or pay overtime to take care of some of the work your solution was designed to cover?
Have you had operational staff resign as a result of the experience on a bad project? What did it cost to recruit and train a replacement? Have you had projects with a high turnover of team members during the project? What did it cost in terms of money and time to bring in new developers and get them up to speed?
Have you been involved in a project to add significant new capability to a legacy system and to control costs you decide to have your developers test the code instead of having a full time qualified tester?
An internet search will reveal many reports giving statistics on failure rates for software development projects. If you look into why so many projects fail, it is likely that you will find the following three issues are the root cause for most project failure:
- Poor communication.
- The wrong processes and organisational structure being used to guide the work.
- Influential decision makers not having experience/knowledge on what is needed to deliver a successful project.
What is it worth to you and your business to have software projects that deliver the expected results within the expected time frames? How will it help your staff and business as a whole to know that you can rely on the software development team? What would be the effect on your bottom line if you could cut out all the waste in time and money?
Do you want a software development process where you know the quality of the delivered solution will have no defects? As a decision maker what is the value to you knowing you have reliable information on the project status and delivery date at all times?
To successfully manage software projects and get the most value out of the investment the following needs to happen:
- Know what processes should be used and how to adapt them to each project.
- Know what roles are necessary for each and every project and ensure they are all covered.
- As software projects are for delivering new tools and capability for your staff to work with, you should identify suitable staff members who can be involved in the project from an early stage to give input and feedback to ensure the right capability is delivered.
- Put together pro-active and independent individuals who complement each other and can work as a team in their designated roles.
- Give the project organisation a clear and relevant mandate.
- See each and every project as a learning experience.
- Understand that projects have an inherent uncertainty and this uncertainty needs to be pro-actively managed.
- Remove and manage constraints before they impact the project.
- Have an effective and simple change management process.
- Ensure an effective communication strategy is implemented and adopted by everyone involved in the project.
- Have one source for managing requirements. This is often referred to as “having one source of the truth”.
In addition to these topics we will blog about metrics, quality control, risk management and other important topics in the future.
If your company is involved in building and maintaining its own software, or you think you need to take greater control over the development and maintenance of software, please feel free to contact us for help and advice.