I’ve always been pretty calm under pressure. But there was one particular project I had which tested me more than most.
I won’t mention the company or even the type of business they are in because it might be too easy to figure out who I’m talking about.
They were a mid-sized operation, grossing about $20 million per year.
It started after talking to one of the owners of the company and he described the problem:
The entire software development team (5-6 guys) had all left at once taking all the custom app documentation with them in their heads.
At the time there were something on the order of 30 custom applications, large and small–some more mission-critical than others.
The company was on the verge of losing some of their largest customers and no one knew where the applications were even located at this point.
To give a sense of the pressures involved in this particular situation, I was replacing another way more qualified guy than me whom they had already brought in to try and resolve this.
He was a senior software developer who had worked for a major software company here in town for a number of years. Strong resume, knew software development and people (he was management level previously) in and out. Definitely had the creds.
Thirty days in, he bailed and the owner (the guy I was talking to) had found him quietly sobbing in a men’s room stall.
That’s the guy I was replacing! (I don’t think I was told that particular tidbit until I had accepted the challenge which was probably a smart move on the part of the owner.)
In a sort of last ditch effort, the company had also contracted with a couple of remote developers through an agency, just before hiring me. They were nice enough guys but were wholly ineffective, making pretty much zero progress. The blind was leading the blind at that point.
Step 1 for me in a situation like this is to make sure I’m being a point of stability for all involved, but especially the business side of the scene. That’s because the administrative folks often have the added burden of not totally understanding the tech stuff which can greatly add to their anxiety–understandably so.
From there, actually sorting out the technical issues becomes a matter of breaking it all down into its respective layers, parts and subparts, even if we initially have no clue where or what those parts are initially.
Sometimes that alone can take weeks or even months, depending on the scope of the problem.
A big part of the solution had to also include bringing in a truly competent, professional development group of my choosing (who I still work with today). There was also a bit of luck and a whole lot of persistence!
It took about 18 months to completely sort out the scene, but we had the main fires put out within about 3 months. From there my team rewrote the code for all the apps to bring about a truly stable codebase which was a) documented and b) stopped breaking all the time.
But it still gives me a bit of a grin that this not-a-developer techie managed to deal with something that made a seasoned, senior developer cry!