Hear is my issue: I hired a freelance development firm to create a web app for my business. The developer is very talented and they produce great work. However, development has been very slow and continues to be so, despite assurances that things will pick up.
I was quoted a fair price for the initial development as a one-time fee (paid in installments) with the option of continuing to work with them at an hourly retainer rate. The retainer rate is fairly high.
I need development to pick up as I am losing money and lots of potential customers the longer this app takes to develop. I am trying to figure out the best way to help the project move forward faster, keep my costs down, and ensure that I don't offend anyone.
Here were my thoughts:
I've searched through some sites like Odesk and Elance for a developer who has the skills and expertise I am looking for. My idea was to bring them on to help ease the burden of development and at a lower rate (about 40% cheaper). Basically, I would have the new guy help fix bugs and work on short-term or additional features as the original developer continued with long-term development. I would definitely pay both the original and new developer to train/review the code, but obviously, I can imagine how this would piss the original developer off, so I am wondering if it's even worth approaching. As such here are my specific questions:
Any other suggestions and thoughts about the problem issue are welcomed. I will also answer any specific questions as much as I can. Thank you in advance.
9 times out of 10, adding developers will slow down the process.
You mention you engaged with a freelancer firm - are we talking about a firm of 1?
If so, 1 developer has zero lag when task switching - (s)he doesn't need to explain to anyone outside their own head. Adding an unknown developer with timelag, language differences, will only make things worse.
If not, then you should be talking to the Managing Director / PM / to get higher priority and/or a better handle on timeframe & deliverables.
Other things to consider - are you (have they) unrealistic in your timeframe assumptions? Have you partitioned the work & deliverables in a way that you have visibility into the process (rather than just seeing the final product)? Many times, projects require lot of foundation work before any "visible" product is shown.
There are always going to be good developers that require minimal supervision, and there will be developers that need a lot of supervision. Both can be managed effectively if you know what you are doing.
It seems like you are already deep into this project with your existing developer. Here is something you'll want to consider adding another developer. There is a general rule that for every developer you add to your project, you slow down your progress. I should know. I've been a developer and technical lead for the last 10 years building very large web-apps. Just bringing on a new developer to an existing team slows down the entire project.
If you don't want to lose momentum you are better off managing your existing developer until you get to a point where you can transition. I would recommend setting some short and aggressive milestones. And by that, I mean checking in daily with him/her to make sure you guys are on the same page. When I have a problem developer, I make sure I task him before he starts his day and ensure that he pings me with an update. I don't simply ask for an update. I require that a development environment be setup so I can see for myself. I'll jump on the app and spend some time to make sure everything I tasked him with is complete. I also use this time to give him feedback.
Again, its all about being aggressive with your milestones. Don't just set it and forget it. I made the mistake of hiring a developer, tasking him, and letting him do his own thing. Most developers need guidance. You can read more about my experience on my blog.
I've been in your position. It's super easy to just give them the benefit of the doubt, but chances are you just need to cut him out. Cut your losses and find a new developer that cares enough to give milestones and meet them, or explain why he didn't meet them and then make it up to you somehow. There needs to be accountability there. In my opinion, if you give most freelance developers and inch, they'll take a mile. I'm sure that won't be a popular comment on a site like this, but it is very true in my experience. Next time you hire someone, be a (reasonable) hard ass up front and don't put up with any bs.
He already doesn't care if he pisses you off or he'd keep his promises. Give him a choice: either start getting things done as promised or you'll be forced to bring in an additional developer.
Have you had this conversation with the developer? You are going to get this sort of challenge all the time.
The Stakeholder wants it now, the Developer takes longer than expected.
Have you decided if you are going to keep the developer? Or do you have the option of replacing them?
Either way, you need to put the needs of your business first. The needs of the developer 2nd. You can always hire another developer, you can't always recover your business...