I have one special application in Excel that I am especially proud of . This app has functioned for 4 years pulling data from a Data Warehouse using OLEDB and merging multiple data sources and using my work as the core of a major monthly report.
Unfortunately every two or three months I have recieved an emergency call that there is a fundamental problem in the app producing erroneous results. In EVERY case the problem gets tracked back to a user error on the part of the principal user of the final application. See – the one strange thing about this application is that while it is VERY complex and integrates multiple data sources and uses a complex system of queries and custom formulae, the client INSISTS that he be able to make changes whenever he feels necessary – and he has a habit of making changes that break things – not errors on his part perse, but he doesn’t understand the implications of changes on the rest of the app.
I then get a call in a big panic as if it’s a problem with my app. Then he apologizes when it becomes apparent it was his fault (at least he DOES apologize).
Why do I allow this? It is because when we started this application I was contracted to fix or replace a process with two failed previous attempts by others. It was in a big panic, and I was told the goal was to produce a “locked-down” application. In the end though the client is the client, and if they choose after everything NOT to have it locked down – what could I say (??)
My comments to this guy have always the same “Your business process really isn’t changing at all, so these changes are really mostly impulsive on the part of senior management than real changes in the business requirement. Even if they are justified these requests could if necessary be accomodated outside of the application using some kind of Ad-Hoc capability that doesn’t threaten the reliability of thi core report. And if you don’t let us lock this down, in the end IT will insist on replacing it with something you’re simply not going to like and which you won’t be abe to change under any circumstances !!”. This doesn’t work 😦 ….. no change.
Stop the Presses !!….
As I was writing this article I JUST found out that this guy is GONE (as is the way of the world today). This was not staged – this is what really happened today …. Too bad – he’s a great guy.
Now there are a lot of new questions about this application. I know this is a critical report that gets rolled in with world-wide reporting. Who will inherit it? How do we find out where the bones are buried in this app now? Is there any money available for me to swoop in and make it work? If not – then what?? Will it be supported going forward from India? Is the s**t going to hit the fan? ….. Will I get blamed for the fact that the application is so “fragile” at this point with changes that I do not know about?
So in the end my argument against user-maintenance wins out. My idea is to take well defined, mature business processes and automate the reporting for them in such a way that even if I win the lottery (as opposed to getting hit by a truck), the application will be able to tick along as long as necessary. The client will get their money’s worth from my efforts and thus hopefully will be inclined to reuse me for other things. My goal is to make apps that do NOT rely on my support.
So once again my worst nightmares come to pass. My biggest fear is always that my client leaves or is fired and then – who comes in to replace them and what happens from there to this app that is so important to their business processes? And my failure to win the User-Maintainability battle is leaving me exposed.
Here we go again ….
p.s. Simon Murphy has a GREAT reference to this article at:
Thanx Simon. Looks like the Circular Reference indicator just lit up on my Browser 🙂