How do you keep control of your software development?
With the increasing use of computers and specialised software programmes more and more businesses are finding they need to get involved in some form of software development. Many businesses are frustrated by lower than expected productivity of their software development teams or suppliers.
Why are non-software development companies having to build their own software? The answer is simple. Businesses need to become more and more effective to remain competitive. They need to automate repetitive work and use the internet to expand their customer reach. Each and every business has their own processes, some of these are similar to other businesses, many processes are unique to an individual business or type of business. As a result, managers often find they need to develop or customise their software in order to give their business an advantage in the market.
So if you feel you are facing this problem you are not on your own, you are a member in a fairly large club, that has members in virtually every country around the world.
- There is a large backlog of issues that need to be dealt with by the software development team.
- Deliveries are normally late and full of defects.
- The development team is working a lot of overtime and costs are out of control.
- Quite often when a delivery is made, your staff do not get what they need and were expecting.
It will come as no surprise that problems with the software development will also have many knock-on effects across the company.
- Is your finance department screaming about cost overruns in the development team?
- Does it seem each release costs more, takes longer, and the business value in the release is less?
- Do your management teams need to move faster to capitalise on commercial opportunities, but are being held up by poor delivery?
- As an owner or CEO, are you concerned about the impact that missed milestones have on market position and company value?
- Is the marketing team complaining that they cannot get their campaigns running?
- Conflicts between departments to get their development work prioritised.
- Are staff complaining that they have to enter the same data multiple times in different systems?
- Do you have processes that should be automated but are not?
- Are staff wasting time doing repetitive work manually?
- Do you have to employ more staff or pay overtime to get work done, that could be automated?
- Are your weekly management meetings turning into an outlet of pent-up frustrations and recriminations?
Are you looking for a way to make those painful meetings a thing of the past?
A future where:
- You know that all those small jobs in the backlog will be done, developed and delivered in a reasonable time frame.
- You are confident that individual projects can be started and delivered within the budget and timescales agreed.
- Making a major change in the business digital systems may be hard work, but you are confident that they will be done effectively and within the budget and time limits that you can afford.
What value would an effective and efficient software development department be to your company? How will it impact your staff when they know they can ask for new capability in the software they use and know that it will be delivered in a reasonable time frame? What will be the benefit to your customers? How will your bottom line improve by reducing cost overruns? Will improvements enable you to increase revenue generation?
There are many factors that affect software development productivity. Let us start with laying the foundation, creating a management structure that facilitates communication and accountability across the organisation. We have used this to great affect with our partners enabling them to have a clear overview and full control on the work that needs to be done.
The structure we use and recommend divides software development into three classifications:
1. Maintenance & Continuous Enhancement Work Stream (Small jobs)
2. Project Work Stream (Medium Size Jobs)
3. Programme (Large jobs comprising of two or more projects)
Software portfolio management enables you to prioritise the combination of software development initiatives to get the most value out of your resources in the time available. Prioritising and scheduling the work based on business value and the ability of the team to deliver will show you benefits can be measured directly in:
- Financial benefits to the business.
- Greater control with reduced time wasted on following up on work.
- Improved communication.
- Improved long term as well as short term planning.
- Happier staff.
Continuous Enhancements & Maintenance Work Stream
This work stream is used to prioritise and manage all the smaller and lower cost jobs that need to be carried out by the software development team. Each work item requires relatively few people, maybe as few as two people (end user and a developer) to define, design and deliver in the finished product. Due to the nature of this work, senior management does not need to get involved in the detail of the work to be done.
Continuous enhancements can be defined as any improvement or maintenance work that will take less than 4 weeks to design, develop and deliver and comes in at a relatively low cost.
Project Work Stream
Projects will take longer and require more effort to define, design, develop and deliver. The successful delivery of a project will at a minimum involve people from one of the operational departments and the software development experts. The roles can cover up to seven different roles at a minimum and include but is not limited to:
1. Product owner
2. Business analysis
3. Project manager
4. UI/UX expert
6. Backend Developer(s)
7. Frontend Developer(s)
A software project will normally take between one to six months from start to finish. A CEO or business owner may delegate the decision making for a project to the relevant department head that has requested the project.
Programme Work Stream
The programme work stream is extremely useful for major change initiatives within the business. A programme is normally initiated to make changes that directly impact the future of the business. Programmes consist of two or more projects that may be implemented either in parallel or sequentially. Due to the impact on the business a CEO / business owner will require at a minimum a weekly update on progress of the programme and its individual projects.
The combination of using the three delivery structures within portfolio management allows senior management to use their valuable time to their greatest advantage.
- You can tailor and delegate the decision making process based on complexity, cost and your need to be involved.
- Short and long term control of your development pipeline and how to achieve maximum impact against strategic objectives.
- Assign accountability appropriately.
- Optimise the productivity of your business teams by making sure they get the digital tools they need to do their work.
- Improve communication within your organisation.
- Deliver defect free solutions.
- Focus on doing the right jobs in the right sequence at the right time.
- Reduce waste in both effort and money.
- Reduce risk.
We will follow up on this article with more detailed information on each of the topics mentioned here:
- Late January we will look at working with the Software Maintenance & Continuous Enhancements work stream.
- Mid February will be the time to take a more detailed look at the Project work stream.
In addition to these topics we will blog about metrics, quality control, risk management and other important topics in the future.
If you need information on any topics relating to improving the management of software development, feel free to contact me via our contact form and I will get back to you.