Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

The company I am currently working for has me developing a bunch of internal mission critical software. I have one other person that works for me but he's more of a testing guy and not really a developer. The company is concerned about some of these projects and what happens if I am hit by a bus. How does the company pick back up after something like that when there is only one person that knows the code base. One person that knows the current status of the project.

I explained that with my documentation and with the documentation with in the code that they would really only need to hire another programmer that understands the languages that were used and that they could be up to speed pretty quickly.

They suggested an outside firm that might be "kept up to date" on a monthly basis that could "take over" in the event something happened. I just don't see how this could be helpful beyond paying someone for the sake of paying them. Worse I envision a day a month being wasted discussing the project with this consulting firm. I see how this could be helpful I just don't see it as anymore helpful than hiring a programmer after my untimely demise.

Thoughts? Similar situation and how its currently being handled where you work?

share|improve this question
3  
They get insurance. I am sure your worth 1,000,000,000 dead to them. –  Loki Astari Dec 16 '11 at 22:29
1  
Funny you should mention that. The are also taking out an insurance policy on me. –  Ominus Dec 16 '11 at 22:43
11  
@Ominus Incidentally, they also started bus driving lessons :D –  wildpeaks Dec 17 '11 at 0:58
2  
Why should you care? What is in it for you? Just give them nice looking documentation. There is no real replacement for you short of hiring another programmer. –  Job Dec 19 '11 at 23:16
2  
I am paid very well so its not an issue of needing to try and get more money out of them and the other side of this conversation involved an employment contract that offers me some protections so I am not worried about being replaced. At least not having to do with their desire to protect their investment. --- Update, we are going to hire a second programer. I even used the link to this question to show them what the people in the field thought about how to address their concerns. This is an amazing site. –  Ominus Dec 20 '11 at 18:37

11 Answers 11

up vote 21 down vote accepted

Unfortunately what they're doing is "putting all of their eggs in one basket".

Working with an outside firm is quite likely to provide revenue for them, but I seriously doubt that it'll be worth the money. Documentation always looks nice and clear when you write it. The problem is that you only know how much it's worth when somebody else tries to read it - somebody that barely knows something (technical) about the (insides of the) project.

Anyway, reading a complete code base you don't know anything about is possible, it might just take a whole lot of time (way beyond most businesses can afford).

Their best honest bet is to hire someone to work with you (strictly not under any of your guidance) for a certain period of time, and to test how long it takes him to get to a point where he can understand and change important parts of the project.

If it takes more time than they could afford if you left, then they should seriously consider hiring one or more permanent programmers (full or part time), and never let them take the same bus. :)

Either way, good programmers suddenly leaving always makes matters worse than they were.

share|improve this answer
    
+1 for letting someone else read the docs. The best way to write documentation is often by answering a user's or colleague's questions, not on your own. –  larsmans Dec 17 '11 at 11:30

I hope you don't get hit by a bus! You are correct, I don't see the value of doing this. First, the other company will charge an amount closer to a full time developer and they will critique things and slow you down. They may ask for too much deliverable and explanation from you. Also, there is no real guarantee that they will be able to pick up, since there will be no chance for you to test them before they are required to take over.

I suggest that the company invests in another developer instead. This developer does not have to be on your level of expertise, but the time spent with him/her would be an investment to the project. You will get several opportunities to test his understanding since he will be working hands-on with you.

Make sure you don't ride the same car when you go to lunch :)

share|improve this answer
    
How funny, our answers (posted at about the same time) are partly identical, even humor-wise. :) –  Yam Marcovic Dec 16 '11 at 21:37
    
getting a part-time dev/intern is a pretty cheap way to get a backup guy, definitely better than trying to get a contractor set up in a way they wouldn't be a useless waste of money. –  Ryathal Dec 16 '11 at 21:46
    
@YamMarcovic, you are correct! What are the chances man! –  Emmad Kareem Dec 16 '11 at 23:27

One solution that would actually have value is to hire you a mentor. This is a service I provide for software firms that are local to me. I visit for half a day a week or a day a week. Each visit provides immediate value like making sure the developers are using best practices, teaching them new things they need to learn, giving them a chance to be exposed to new things since they're usually busy coding and don't go to launches and the like, solving their immediate bugs and roadblocks, explaining things they don`t know how to do, and so on. At times, I handle coding tasks, especially for one-offs where the staff would need to learn a lot to do the task, and then would never need to do it again. I can also project manage things like getting a Disaster Recovery Plan written - it needs answers from devs and management, but I at least know the questions.

Such an arrangement is likely to be cheaper than what your boss is suggesting, and have value for you. It has a side effect that the mentor will learn your system and would probably be able to train your replacement if you were to be hit by a lottery.

share|improve this answer
    
Interesting term "hit by lottery":) –  Emmad Kareem Dec 16 '11 at 23:28
    
clever business plan (well, service, I don't know what else you do) that I'd never heard of. –  psr Dec 17 '11 at 1:38
    
@psr by no means my whole business plan (especially given my location) but one service that I offer that helps clients. You need to be able to think on your feet, know a lot of technologies, learn fast and teach well. I enjoy it! –  Kate Gregory Dec 17 '11 at 1:50
    
Glad the term "hit by lottery" came up - a bucket load of money (lottery, job offer etc) is far more common than most businesses realise, and just as effective as the "big red bus". –  mattnz Dec 17 '11 at 1:50

ISO 9001 in this business is all about the getting hit by a bus scenario. Will getting services from that company allow your company to qualify for that certification? This may be an interesting question to ask them.

Or to make'em go around in circles searching for answer. (that would probably sound very similar to "no")

share|improve this answer

I agree with the OP. Hiring another developer is better. If the knowledge base is in another company which they have no control over then the situation is just as risky.

To me it sounds like they want to replace you with off-shore labor where people can survive on $10 per month.

share|improve this answer
    
Quite a cynical reply? The business wants to ensure continuity, not cut costs. If it was wanting to replace expesive labour to save money, it would not employ an outside consultant. –  mattnz Dec 17 '11 at 1:51
    
+1, right on. If money wasnt an issue, then they have no reason not to hire an additional developer. –  GrandmasterB Dec 17 '11 at 7:00
    
@mattnz. Business doesn't want to cut costs? Where have you been for the last 60 years of business with a shift to outsourced labor? In the words of the OP they want to hire an outside company to "take over". Having the knowledge base outside does not ensure continuity, but does provide more hands for the same price as 1 employee with matched income tax. –  Lord Tydus Dec 17 '11 at 21:54

They need an additional developer. Its really that simple. Both of you should work on the entire code base. Or at least be familiar enough with each other's work to step in to fix problems in an emergency. If budgets are tight, you could in theory even hire a part timer - that'd probably be sufficient. Someone who could put in some hours every week learning the code by doing maintenance and fixes. That would familiarize them enough.

Hiring an outside firm? I'm with you there - they might as well flush that money down the toilet. That they are thinking of hiring an external company to learn your system tells me they are either not actually concerned with the bus scenario (because, as noted, the solution is obvious) and just need a reason to toss the buzz phrase 'hit by a bus' around while playing golf with their fellow managers, or... that they are looking to outsource your job. After all, if an external company can learn your entire code base for a lower price than an employee, at some point the pointy haired ones will ask then why do they need you?

share|improve this answer

It is more common than you think for companies to have a plan in place for if some critical employee is hit by a bus.

Usually though it's pairing up the key talent with someone internal (who isn't allowed to travel on the same flights... Or buses) to prevent competitive advantages and ideas from leaking outside to the competition.

share|improve this answer

First, the person testing your code should not work 'under' you; it's a conflict of interest.

In your absence they need to assess the risk of falling behind in the areas of: debugging and adding new features. They can get someone up to speed to be a debugger quickly, unless you've written bad code. Usually, adding new features can wait until you get a new programmer ready. Not always the case when there are promises to existing clients or in a market where you're trying to keep up with the competition.

I worked at a company where I was the sole developer. They didn't replace me with another programmer, but drastically changed directions and settled for a third-party application. Stranger business decisions have been made. This is preventing them from drastically separating themselves from the competition and having a tremendous amount of leverage to grow their business. Maybe that was no longer their goal?

share|improve this answer

In fact there is a term called a projects bus number. If the bus number is one you have a big problem. FEMA in the US is asking companies to be better prepared for disasters.

It is not just the loss of a key developer. It is the impact of a natural disaster, or the lack of off site backups. There are many questions on this site asking if they need to use source control as a solo developer. The ability for a new developer to pull up the most recent version of the software and to see what parts are new will help them.

There is more info about PS-Prep at http://www.fema.gov/privatesector/preparedness, and http://readyrating.org/.

share|improve this answer

I know your pain. The company I work for has 20+ developers, and everybody has his knowledge.

The overlapping bits are really... bits, so if someone goes missing (vacation, ilness, etc) and something happens to the tools they're managing, you're screwed.

The problem is they know the situation and don't care all that much, maybe they haven't hit their face dead on yet.

share|improve this answer

I like the quote that goes something like "The cemeteries are full of people previously considered indispensable". That said, your company has a duty to minimize risks, currently you are perceived as one. I have been there on occasion, its best to not only not resist, but to go the extra mile. Dont just train up an external company, recommend the best company in town ie the ones you would have most confidence in. Also consider, if you are doing a job better than anyone else, you are irreplaceable by definition.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.