2

I support and develop a large system that uses various technologies e.g. c++,.net,vb6 etc. I am a sole developer.

I am debating whether now is the right time to approach my manager (who is not a developer) to ask if another developer can be recruited.

I don't have any experience working in software teams. I have always been a sole developer.

The concerns I have are:

  1. There is still a lot to do. Training another developer would take time and distract me from my duties.
  2. The company does not invest heavily in tools e.g. source control
  3. The code in this system needs to be refactored to introduce concepts such as interfaces, polymorphism etc, which are supported by methodologies such as Agile (I inherited the system about 12 months ago). I am gradually trying to refactor the code.

I believe I have two options:

  1. Approach my manager now
  2. Wait until I have had time to refactor the code so it is more suitable for a team environment.

Which option is best? I am hoping to hear from other developers who have been in my situation.

9
  • 5
    Your company does not need to invest in source control. You can do this yourself. In an hour or two you can have a repository created and the current code checked in. Commented Dec 4, 2012 at 20:36
  • 1
    @kevin cline, thanks. I have used Visual SVN in the past when necessary.
    – w0051977
    Commented Dec 4, 2012 at 20:37
  • 1
    you could find yourself waiting a long time before your code is "ready" - get the new developer in now.
    – HorusKol
    Commented Dec 5, 2012 at 1:49
  • 1
    @bahrep - They must of recently changed their license. It used to cost money for a personal/community license. I should know it would have been really helpful a number of years ago on a project I worked on.
    – Ramhound
    Commented Dec 5, 2012 at 13:33
  • 1
    @bahrep - Yeah, well, some of us do this for a living on computers that have been assimilated into the collective ;)
    – KeithS
    Commented Dec 5, 2012 at 15:42

4 Answers 4

15

Your new developer can help you refactor the code. That will be his training (getting familiar with your software). Hire someone that already knows interfaces, polymorphism and agile. Implement a source control system yourself, if necessary.

7
  • Thanks for this. This was my first thought after working about twelve months on the project. However, after further thought I now believe it is worthwhile to wait until the code is more maintainable and extendable. I could be wrong. +1.
    – w0051977
    Commented Dec 4, 2012 at 20:40
  • 1
    You can give them specific assignments, like "Add an interface, and implement it on these classes." Commented Dec 4, 2012 at 20:44
  • Would it be a good idea to have two developers at the same level without a line manager who is at least from a developer background?
    – w0051977
    Commented Dec 4, 2012 at 20:46
  • If your boss is not a control freak, he ought to give you the ability to assign work to the new developer. Commented Dec 4, 2012 at 20:47
  • 1
    Two heads are better than one. It's entirely possible that the new developer will have some insight that you may not have, thus it makes a lot of sense to refactor the code with someone else rather than alone
    – Eva
    Commented Dec 4, 2012 at 21:28
3

You need to ask WHY you need to add a new developer and what the goal is. Fred Brooks wrote about this in Mythical Man Month. Adding a new developer to a late project will make it later. If you are trying to solve a short term problem, forget the idea and put in extra hours. If you are thinking longer term, then your concerns about a short term hit in productivity are mute. If you have a short term problem that is not going away - best to take the pain of training a new recruit now, rather than defer it till later.

Your bosses first response will be about ROI and Budgets. What will he get for the extra salary and additional pain he will suffer. You need to "sell" him the benefits and rewards. Do not gloss over the costs - direct and indirect, and risks (What if you recruit an idiot). In business terms, he will need the cash flow as well as ROI before he even starts to think about it. If you go to him with "I want to hire another programmer", he is likely to say "I want a new Porsche, now get back to work". If you take it to him with "We have X months work on the books, and more coming in every day. I cannot keep up, but if we recruit a new developer we can. If we don't, we won't be able to finish this by then and likely lose out on that revenue worth Y dollars"......

What ever you do, DO NOT us any of the words in 3) of you question. What your boss will hear is "buzz word, technobable, buzzword, buzzword, technobable.... playtime on company money with shiny new toys and no cost benefit..... technobable, technobable", and he will (rightly?) respond "That's nice, now get back to work".

1
  • +1 for those last three sentences (of the penultimate paragraph now that's it's been edited). The part about the Porsche, well any CEO of a small firm knows he ain't gonna get one with a sole developer.
    – Kenzo
    Commented Dec 4, 2012 at 22:41
1

If you have an extra box, you can have source control. You can even have source control without an extra box, especially if you use a distributed source control system like mercurial or git.

The new developer can help you refactor your code. This is good for multiple reasons:

  • The developer learns the codebase as they refactor it
  • There's no need to go to the business and say, "Hey, invest in this time consuming process that won't net any additional business features."

Even agile code bases have bad code. Don't think you have to have good code now to be able to hire someone.

0

Absolutely ask for the budget for a second developer. I was a sole developer myself a year ago, and over the past few months have brought on two new people who have made massive contributions - one with setting up our API and the other with being able to handle a lot of grunt work that used to suck my own time into a black hole. We're just much more productive now. Try to find people with different skill sets that can contribute to where you want to be in two years.

I ended up working with one of them to implement our source control (with Git). And that meant everyone got to beef up their resumes.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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