Keeping your software solutions fit for purpose

by Donald Lowe

January 28, 2018
Reading Time: 5 minutes

Change is continuous, businesses need to evolve, technology moves on, ignore it at your own peril.

Every business must cope with not only changes relating to digital technology but also to changes in the market place and regulations that come into force. Some of these can be controlled while others are well outside of your control. An example of this is GDPR compliance which is affecting most European based businesses.

In this article, we will focus on the smaller jobs that are within your control. Small jobs that keep your software solutions up to date and relevant to your business. We will cover the maintenance and continuous enhancements work stream as described in the last article "How do you keep control of your software development?"

Are some of these problems familiar to you?

  • ​The backlog of jobs never gets shorter, it only grows.
  • ​Developers are busy working flat out every day, but do not seem to be delivering.
  • ​​Priorities keep changing and developers switch between jobs.
  • ​Developers often have to wait for more information when making changes for requests from departments.
  • ​Systems that have been working well suddenly start having issues.

The backlog keeps filling up

Maintenance and Continous Enhancements projects that are unstructured

The ripple effect, small problems become waves of discontent

​Even the small jobs need to be structured and prioritised, here are a few indicators that you do not have the right processes in place.

  • ​It is difficult to keep track of requirements as there is no common process for defining and managing requirements. Some people send them in via email, others print them out on hard copy or note paper and it is not uncommon that they are given verbally.
  • ​Staff are grumbling as nothing is delivered on time, this is affecting their work.
  • ​​Some departments are complaining that others are getting their development fast tracked at their expense. Causing friction and anger between staff members.
  • ​Developers are getting angry at the constant complaining.
  • ​​You seem to be losing customers to the competition who are constantly improving their services.

Are you having an excessive number of bugs reported?

Software development is a team effort and each person in the team needs to do their job right. For a well-structured and lead team there should be virtually no defects. Your testers primary role is to validate that everything works properly. If you are getting defects make sure that you identify the root cause.

Here are a few examples of root causes to defects:

  • ​Poor requirements development and management.
  • ​Requirements are being changed on the fly, and the documentation is not being updated.
  • ​​No discussion taking place to ensure a common understanding on what is needed between the developer and the end user.
  • stop
    ​Requirement definitions are in multiple sources that are not synchronised with each update or change, team members are not working from one source.
  • stop
    ​​Poor attention to detail.

Keep your software solutions up-to-date and meet business needs

​Would you like to:

  • ​​have your development delivering defect free solutions?
  • ​attract new customers who find your site easy, intuitive and easier to use than that of the competition?
  • ​have your staff working as a team rather than working against each other?
  • ​keep your software solutions up-to-date and meeting the needs of your business, not only for the next few months but for the next few years?

​How useful will it be to you if you can speed up the throughput of development work by 150% to 200%? How important is it to your business that your customer services team are able to attend to customer enquiries; without delays due to technical issues? What would be the benefit to your operational departments if they could, with confidence, rely on forecast delivery dates from the development department? Can you see any other benefits to your business having an effective and efficient delivery mechanism that takes care of all your technical/software needs?

Software development teams that solve problems and add value

The good news is that it is not so difficult to deliver great solutions at a reasonable cost if you structure the work correctly.

To deliver value consistently we recommend that you break down the work to be done into the smallest possible delivery that will add value. You can then prioritise each of those small jobs based on their value to the business.

Sorting each job into one of 3 to 5 classifications will help in keeping a balance between maintenance and new money generating features. At the same time focusing your energies where they are most needed. We recommend you start with the following classifications then tailor them to suit your team:

  • ​Urgent issues.
  • ​New capability that increases revenue.
  • ​New capability or change requests that makes the work of your staff more effective.
  • ​Regulation compliance.
  • ​Maintenance to keep all your digital systems working as a seamless environment where information flows.

Structure your work using a Kanban board

Maintenance and Continous Enhancements structured into a kanban board

​Effective communication is also a key component for both defining the work that needs to be done and then managing the work. The illustration above is often referred to as a Kanban board and you use this simple approach to prioritise the work that needs to be done in the backlog, and monitor the work in progress.

Each of the tickets you see on the Kanban board illustration above will fall into one of three categories of work. Each of the categories usees a specific pattern for describing what needs to be done:

  • ​User Scenarios and Acceptance Tests for describing new capability or change requests to existing capability.
  • ​SPIKES for investigation work to find out if something can be done or how to do something.
  • ​Issues, normally related to defects or problems that are effecting the working of the current live solution. This can result in possibly stopping someone from doing their job or a customer using your web site.

​Our partners have found that by taking these steps they have been able to:

  • ​Increase the effectiveness of their operational staff.
  • ​Test and make changes to their web sites to improve customer experience and conversions.
  • ​Continuously make small improvements to existing solutions and prolonging the life span of those digital tools.

​The maintenance and continuous enhancements work stream is a key component in your toolbox for managing software development in your business.

software portfolio overview programme project continuous enhancement work stream

Learn more about these and other software development topics to improve software delivery

​We will follow up on this article with more detailed information on the project workstream in mid February. In addition to this article 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.