As someone who has worked with many clients across many industries one of the common problems I see is companies who are finding it hard to juggle all the adhoc requests that come in to their data team. Report requests, data modifications, minor deployments, fixes or query performance tuning; no matter what team you’re on - developer, analyst, DBA - if you’re part of the data function you’ve probably experienced a point in your career where you feel all you are doing is firefighting.
So why does this happen? Often it starts small and is due to time pressure.Something went wrong and an initial sticky plaster was put on or was needed quickly and the minimum was done to satisfy the needs of the business. There are good intentions to go back and resolve it properly but occasionally you become so busy that this technical debt slips by as lower priority than everything else. This can quickly snowball out of control, the busier you get the worse it becomes and in fact often this technical debt is adding to your workload. Joe has written a great post recently about first fix and second fix with some particular examples seen in the DBA team.
I’ve also seen people flourish in this sort of environment, making themselves appear indispensable and feeling good about it. However, I firmly believe the best people automate where possible and share knowledge when they can, whether that is in the form of documentation, training or self service.
Not all businesses are mature enough to have project planning, request processes and change control to help govern this. Often those that do misuse, abuse or ignore them anyway. Even if the technical debt is tracked it is pushed further and further out for more important tasks as the company doesn’t see the immediate gain from resolving them.
So what happens when you ignore technical debt? Well generally it gets bigger, it gets worse, and the true extent gets less visible. Your team will get annoyed and burnt out, constantly firefighting, fixing recurring production issues or getting that all important report out to the business.
The ideal scenario would be to resolve the underlying issues properly so the recurring problem and requests don’t pop up again, freeing your teams time to work on other things, making them and the business happier. So why don’t people do this? Again it’s time. It’s hard to sort out the underlying issues when you’re trying to sort out an immediate issue.
At this point you only really have two avenues of approach:
- Push back
- Add more resource
- Ensure your team member(s) are ring fenced. Make it clear that people are not to go to them for requests but add a gateway such as a manager or a service desk in front of them so that requests can be made through some other means
- Only deal with the most vital of problems. Communicate to the business that unless it is causing monetary loss it’s probably not going to happen for x amount of time and that if they need to pull a team member onto an issue they should reduce their time spent away (avoiding adding to the pile of technical debt obviously).
- Stand back and look at the big picture. What do you want to achieve? It might be that you need to start again, in which case this probably isn’t the best option ( see more resource ) . If you keep getting asked for the same thing over and over you need to ask why and try and fix this at the source. Perhaps you need to create a solution that can be automated or if not requires the least amount of effort possible to action. Do you need to fix the code properly to avoid that recurring performance issue, or allow users to self serve a report so they don’t keep asking you to refresh it?
- Assuming you just want to resolve the debt in place, then you need to ensure your tasks are logged. Kanban boards in Visual Studio or those such as kanbanflow or Trello I find work well. Simple yet effective.
- Add an order to the tasks. Completing items that cost you the most time with the least amount of effort is the priority.
- Get resolving. You’ll find as time goes on your adhoc requests get less and when you open up the floodgates and view all those items you ignored, a lot will be fixed or at least much easier to do. If you find you still have a lot of requests then see if there is a pattern. Did you miss something?
- It might be you can’t resolve all the issues at once or the business would grind to a halt. But perhaps a week of time dedicated to it would begin the process and you could schedule this in on a regular basis, factoring it into your project planning. Hopefully in the long run the week you dedicate for it won’t all be needed and you can use the time to further improve things.
The second option allows you to continue to serve the adhoc requests. But you need to ask yourself some questions:
- Will this additional resource continue to support the business once the debt is removed? This makes a big difference in how your proceed. If you are often bringing contractors in, it’s easier for them to focus on the new with no need to learn the nuances of the day to day system. If they are going to stay then perhaps they should learn this and then the current ‘firefighters’ can get a chance to do something different.
- Do I want the team who are currently firefighting to be the ones who resolve the debt or do I want to use the additional resource? There are pros and cons to both. The firefighting team know the system and the issues but a new team would be able to look at the big picture and not have any bias and a fresh set of eyes. Or could you throw a few people at each? Personally I think this depends on the current employees. It’s really important to keep them happy so discussing with them is the best scenario.
- Accept there will be a ramp-up period where things are actually slower. It’s hard to get people to be productive from the outset. At Coeo we have the technical knowledge to hit the ground running, whether we are supporting your firefighting team or offering a more forward thinking presence. But we won’t have the business knowledge that your employees do. This is why we often refer to ourselves as an extension of your team - we need to support each other to make the partnership work.
Often Coeo get involved when you need to throw more resources at the problem as your business cannot afford a break in their current workings. It’s really nice to be a part of this and it’s even better when we manage to put something in place which means the business we assist and the employees are much happier.