One of the most common enquiries we have is from companies requiring assistance with existing applications that have become problematic.
Perhaps the application has started performing poorly, or the stability has decreased to worrying levels with bugs appearing regularly; or even that it is just not possible to develop the system at the rate required.
Having been through this process of fixing these issues many times, here we share some pointers on how you can address such challenges.
We understand that everyone’s challenges are different, but there are some aspects that apply to most of these situations that we have encountered – Here is our take on the most important:
- Approach the problem in a systematic manner.
It may sound obvious, but it is all too easy to get sucked into a spiral of despair when stakeholders are shouting and the business is suffering. Frequently we have encountered stressed developers struggling to keep an application running, addressing the symptoms of the problems; when what really is required is to take a step back and tackle the root causes. Do the minimum to keep the wolves from the door and use the rest of your resources to tackle the root cause. If you don’t have the necessary resource, you may need to find a way to increase it, even if it is just temporary.
- Know your objectives
Again, some may feel this goes without saying, but it is imperative that all parties are in agreement about not only the objectives of the system itself, but how those fit in to the larger overall business-objectives. Both the system and business objectives should drive any action you take, so it is essential that all stakeholders agree on what those objectives are. With the objectives defined and agreed, they can be used to frame the problem at hand and guide your plan to address the problem.
With these objectives identified, you must then define and agree how you will measure the system(s) against them. These measurements, be they technical or procedural, can give the team clarity on which approaches are most suited to solving their problems. In addition, it provides an objective means to evaluate the work done to address the system problems; minimising any disgruntlement due to subjective assessments.
- More heads are better than one
Don’t just leave a lone developer (or other team member) to toil away on their own. Enroll all people/roles/departments who can provide input to the problem. It is often the case that a small change to an upstream business process will mitigate the pressing symptoms enough to give the technical team some breathing room to address the problem effectively.
- Stick to the plan
This does not mean that you doggedly stick to something that doesn’t work. Your plan should allow for flexibility and unknowns. That said, defining and agreeing a structured approach to tackle your problem is essential. A good plan provides clarity for team members to work together effectively and also for your stakeholders, enabling them to understand the progress being made.
- Learn from the process
Once you have solved the problem and averted the current crisis, it is all too tempting to move on to more exciting things. However, this frequently results in similar problems occurring again further down the road. As the saying goes: “Where there is crisis, there is opportunity” – With that in mind, it is advisable to review the cause(s) of the current problem whilst it is fresh in everyone’s minds; evaluate the risks of them recurring, or similar challenges arising. In addition, it is not unusual to uncover other risks whilst investigating the primary problem. These should be recorded and communicated to the business. With the pain of the current crisis still fresh, it is often a good time to get buy-in to take preventative action to limit future problems.
If you think your software applications might be holding you back and you need help identifying the barriers that are impacting your business, get in touch to see how we can help.