views:

208

answers:

10

They're hiring me as their "lead programmer" as they call it, but it's really a project manager position. I will be doing little or no programming, they want to outsource the programming to an Indian shop. (their call, not mine)

"The Mythical Man Month" comes to mind, given their interest in outsourcing, but I'm sure there's quite a few good books/sites they can check out. They mentioned looking at gettingreal.37signals.com, what else do you suggest?

I realize many will be turned off at the sight of "outsourcing", but I really want to help my client understand the art of software development better (and not just by given my opinions, but having other respected resources help them too) so they can make better business decisions.

Thanks for your help!

A: 

I'd recommend some of Steve McConnell's books on the subject:

Professional Software Development
Rapid Development

Steve has a way of explaining things in a real-world sort of way, of what works and what doesn't.

Mythical Man Month is of course good, which you mentioned. A good book on XP/Agile/Scrum would do some good, though I don't have any specific one to recommend.

byte
+1  A: 

For me Mythical Man Month for anybody who wants to get to serious software development, and not necessarily for coders! but for managers too.

gath
+1  A: 
Brandon E Taylor
+1  A: 

Joel on Software :-)

beggs
A: 

Nothing teaches like experience. If they are open to reading such books I'm sure they will get a great deal of head knowledge, but applying what they learn ... not so easy. [As an aside, so many folks recommend Mythical Man Month. Do you think on your projects it's lessons are applied?]

Typiclaly outsourcing requires very detailed specs and acceptance criteria, and good management (great opportunity for you :-) Does your employer really "get" just how hard it is to specify what they want? Realise how painful iteration can be with delayed feedback times due to timezones?

Is there any way they could start out with a "pilot" scheme. Something small enough that it gets done quickly, something big enough that issues become clear. A chance to evolve a way of working.

djna
agree! I would not recomend you to start outsourcing alone without any experience. Book will not help. Find a consultant or a freelancer who ever managed outsourcing teams for a month or two and let him/her to help you on the beginning and choose a management methodology that is most appropriate in your case
Bogdan_Ch
+1  A: 

Mythical Man Month is good, but a bit outdated

Peopleware really good book that describes the importance of team building and productive environments. However, in your case it is not your trouble (and you will not be able to influence this process) - teambuilding and environment is what need to be done by that Indian shop that you will work with.

Joel on Software - worth reading, but when you read it, pls understand that in-house product development and software services outsourcing are 2 great differences!

For you as a developer who wants to be a manager I would recommend to start from Herding Cats: A Primer for Programmers Who Lead Programmers

Also Software Project Survival Guide - Steve McConnell And any book about Agile software development - SCRUM, XP etc. For example - The Art of Agile Development James Shore and Shane Warden, O'Reilly

Another interesting book of how not to make a big mistake for your business - Merrill R.Chapman, IN SEARCH OF STUPIDITY

Bogdan_Ch
+2  A: 

Could your management explain the rationale(s) for going off-shore? If their position is rational then reading something well/may help. If it is irrational, then reason will not solve it.

What do they want to get out of it? Lower cost? Lower taxes? Better engineering? Faster delivery? Everyone else is doing it?

What are they trying to avoid? Their last bad project manager? or their own bad decisions?

Managers have a tendency to look for the silver bullet to kill the software development beast right? Silver bullets don't exist in our world. Management (functional and technical) mistakes kill or ruin projects more often then where the project is being built.

If they are irrational, then you can not help them with reason and logic.

A: 

Tom DeMarco's Deadline - novel about software development including spys, kidnapping, sexual interest, assassination attempts and software development/project management. A good read for the management side with insights into technology development.

meade
A: 

I'm not sure if there is something they should be reading. They've hired you with your expertise to be the technical lead/project manager. You role is to translate their business needs to the development team and translate the needs of the development team to the business.

I think many of the suggestions provided in the answer section would make good reading for you, as it should provide good examples and a foundation for communicating the challenges of developing software. I would also recommend finding good set of material for project and requirements management. Businesses with little experience in software development can be some of the worst for gathering requirements.

Jim Rush
+1  A: 

If you are transitioning from being a programmer to being a manager of an outsourcing project, then I would make some suggestions for concrete actions:

  • If practical, fly the Indian team to your location

  • Setup a hosted server with SVN, autobuilds, demo sites, etc.

  • You should fly to their site and stay for a long time. You want to:

    • Setup a working rapport with the developers
    • Understand their physical development environment and constraints
    • Impress on them what the business is
    • Impress on them what you want technically
      • This means code reviews and lots of them
    • Setup a good video camera, speaker, and mic
  • Once home, meet with the team every day

    • Understand what each developer is doing
    • Let them know about the business

Best of luck. If you do this right, you will enjoy it, and your company will get a great product.

Peter

Peter