views:

117

answers:

5

I seem to have a problem, I have a growing business to run but I end up spending a lot of time doing the programming myself and sharing some load with the one programmer I have under me. I had a team of 3 but 2 left cos I obviously was not very good at planning/delegating tasks and was more a hands-on kind of programmer. I preferred to have control and would find it really boring to plan out the requirements in writing and give it to them...I would just verbally give them the instructions and things didn't seem to work out very well that way.

I need your suggestions. I have no experience of working in a development company, so not really sure how to go about the process of developing our web applications without me having to do too much detailed planning in the programming. I always have a basic idea of what needs to be done, I'd ideally like someone who can put that idea down into a detailed plan and program or manage the programmers. Are there people like that who perform such functions and if so, what are they called [Also, is it feasible to hire such a person with just one programmer and then perhaps hire more later]? Also, I've found that all our projects are constantly delayed cos we don't set any deadlines (we develop for ourselves), how to avoid that, do programmers work well with deadlines?

I just want to be able to supervise all areas of the business and not just focus on development, which has been taking a lot of my time.

+3  A: 

Are there people like that who perform such functions and if so, what are they called?

Project Managers. Hire one. Now.


Is it feasible to hire a project manager with just one programmer and then perhaps hire more programmers later?

It's your budget. Spend the money as you see fit.

Also do project managers have to be really good at coding themselves or just good at project planning?

Some are some aren't. You have to hire them. You decide what skills they need.

You want a manager who deeply understands the technology and can code. Whether or not they do code depends on what you and your PM work out.

They're a human being. You get to talk to them.

S.Lott
yeah really. Typically they are programmers who have moved on from just coding to managing coding teams. Or just really good managers who can manage anything.
Iznogood
Is it feasible to hire a project manager with just one programmer and then perhaps hire more programmers later? Also do project managers have to be really good at coding themselves or just good at project planning.
Sam
-1 A PM will build a gantt chart and check progress against original plan, he may even create an excel sheet for risk management. After building a project plan... which without a system design is hard to build and building the other tools... he will have 2 hours bugging the programmers and 2 hours telling the manager that nothing works because bla bla ... and in the rest of the they he will surf the web... No, he should NOT hire one now - and even if from very unique circumstances he should - it is a very rare. Don't be so decisive(Hire one. Now.) You may be very wrong and it's not your money!
Asaf
@Asaf: "A PM will build a gantt chart and check progress against original plan"? Really? Have you already interviewed the Project Manger for this project? That's a very strong statement with no facts. Here's the issue. 2 of 3 programmers have already quit because of bad management. Without hiring **someone** who can manage, **nothing can ever change**. Hire one. Now. is the only advice that will change things in this "organization."
S.Lott
S.Lott, I never said you are wrong, the value of a good PM is clear to me. Yet small business usually don't have the previlage of hiring a good lawer, good accountant and a good PM. Your advice is very good, but not for "now": I bet you've seen bad PM's and the risk of betting on a bad horse is huge. Let him start with improving his system design and programing habits(program by design and not on the fly)... Only than should he take your advice.Your answer is good... but not responsible enough.
Asaf
@Asaf: The business is already failing. Waiting around will leave things the same. Change is required. A PM is change. It's irresponsible to leave things as they are -- which is quite a bad situation. Something **must** change.
S.Lott
Sam
@Sam: "if I hire someone as a project manager he might not consider doing much coding as part of his role". What? How could that happen? Are your hiring decisions dictated by someone else? How is it possible that you can't find someone who can (a) manage and (b) code? Are you constrained in some way? Unable to actually meet with candidates? What's blocking you? Can you provide more information on why this is going to be hard?
S.Lott
No, I was just going through some profiles of project managers and there were quite a few who mentioned on their profiles of managing, reporting, budgeting, etc. but not too much coding...so just made a few assumptions from there. I have not started the recruiting process as yet, will be starting next Monday.
Sam
@S.Lott: Please forgive me for my critic, you strike me as a professional and as I said before... I do believe that there is a lot of sense in your answer. Yet it's one thing to give a good advice to a friend and another thing to gave the save good advice on the radio.I am not sure if the radio example is good... but it's not that important... I just want to apologize.Asaf
Asaf
@Asaf: Don't apologize. Fix your answer to address problems you see in my answer.
S.Lott
A: 

Also, I've found that all our projects are constantly delayed cos we don't set any deadlines (we develop for ourselves), how to avoid that, do programmers work well with deadlines?

As S.Lott said above you'll need someone to take the responsibility of a Project Manager. Equally important is that you choose a project method. There are several out there to choose from but some that has proven to work very well are agile development or waterfall projects. By using a project method it will help you organize, prioritize and plan your development.

Here's a link to get you started: Agile Software Development. I'm not saying agile is the best way for you to go. To discover that, I suggest you take a night or two to sit down and read about a couple of available methods.

Erik Töyrä
A: 

You definitely need a project manager. An experienced interactive PM will at least know what the various technologies are and what they should and should not be used for. Prior programming experience is preferred, but not necessarily required. Strong communication and organizational skills, diplomacy, a proactive attitude and a passion for planning and documentation are absolutely required.

I would strongly recommend AGAINST having your PM do any actual production work of any kind. After all, this is what got you into the unpleasant place you are--it's very difficult to switch back and forth between manager and maker, and generally results in under-managing projects.

bikeboy389
A project manager for a project of two people would be a *lot* of overkill, though. With one person working, and one person only doing management... you're going to have the project manager doing nothing a lot of the time.
Dean J
Dean J is right... it's too soon, cost to much and have little value. Moreover... the employees got a lot of work and the last thing they need is another supervisor to report to. If it will not waste their valuable time, it will sure bug them
Asaf
+2  A: 

Do not hire a dedicated PM yet.

If you only have one developer, it seems silly to hire a dedicated project manager; everyone at a company that small must fill multiple roles for the company to work well.

For the next developer you hire, it would really help if they have the ability to lead a development team; it doesn't sound like you have that ability yet, and you may (or may not) have time to learn on the fly. If you can find a developer who can do this for you, that's efficient.

Learn about project management.

In the meanwhile, I might buy a copy of McConnell's "Software Project Survival Guide", and give it a read. It explains the basics of managing software projects, and does a good job of it while being easy to read.

Set deadlines as a team.

For setting deadlines, it usually works to have developers work with managers to set reasonable deadlines that everyone is aware of and agrees to. If they're set by the developers, the schedule will be very, very long; if they're set entirely by management, you get a lot of frustrated developers.

Prioritize what needs to be done.

Immediately, I'd start writing high-level requirements ("we need a better login system"), and prioritize them into various levels:

  • 1 - System is down, there's a showstopper, this needs to be done before people leave for the day.
  • 2 - This would get us a new contract/this would save us from losing a contract
  • 3 - Would love to have
  • 4 - Would like to have
  • 5 - Not going to get to at this time.

With that list, you can figure out better where to spend your time, and what to delegate. If you delegate something, it's occasionally going to come back not-as-you-envisioned; alternatively, you have to do one or more of the following to keep your vision on track:

  • hire developers more on the same page as you,
  • give more detailed requirements,
  • find developers who ask more questions before starting to code,
  • give up part of the vision to the rest of the team.
Dean J
I think you've made a good suggestion of perhaps hiring a senior developer instead of a dedicated PM just yet...although I think I'd need to find someone who can also take care of the project planning for me as well as do the coding along with the other programmer I have.
Sam
@Sam: Correct. You need someone to do both. And if they can't manage, you can't make use of them. A mistake is hiring another developer and hoping they can manage. They have to be able to manage you (nothing personal, but if people are quitting, that's evidence you're not the *best* manager, you need to improve) as well as others.
S.Lott
A: 

If I got you right you have two main problems:

  • You find it hard to build a software design
  • Your employees use very little of their time

Software development has become a place which make sense: There are many models for developing a project: http://en.wikipedia.org/wiki/Software_development_process but most share the following stages (analysis-->design-->implementation--testing)

First you have to do the analysis - you must define the scope of the project what's in and what is out. You can get notes from your system designer. This part is crusial to make estimation of the time resources needed and more.

After analyzing the project and having a good idea what you want, you should make a system design and... Information System professional or alike should help you - their job is to understand what you are after and build a design that any good programmer could follow (search UML/DFD).

Then find a programmer that can read those designs (make sure that both you and the system designer think that this employee is good for the job). Having a good design the programmer could do more than 80% of the work with no further explanation.

About the time and the project manager, I believe that once every person will know his place in the project (you will work with the system designer and he will work with the developers-NOT YOU) - You will get closer and closer to the project plan.

If you managed to survive with no system designer - don't take a PM until your project get bigger (unless you have big plans and big budget)

Get professionals - they cost a little more but save time and curiously even money!

Good luck

Asaf
I like the break down of steps you've suggested, I do think that I don't do enough of the "analysis" and "design" processes. You speak of a system designer, can a project manager or a senior developer also serve that role of being a system designer as well as helping with the coding.
Sam
@sam: You should check how your applicant carrier took progress... I strongly believe that your main issue is "system design", so you should look for someone from a good university with B.sc in Information System(or alike), that master the UML language and have more than the minimum of 4 years at system design - as a designer. If after getting hands on experience, he moved on to management position, and can help you as a PM - it's a huge added value. But, I as I said before- I believe that, once you will follow the basic software development steps, most of your problems will disappear.
Asaf