Without Context, You Can’t Make an Informed Decision

What’s more important, project management or system engineering?

Let’s see. Can a group of project managers build a software system without any engineers? No.

Can a group of engineers build a software system without any project managers? Yes.

That settles it. Engineers are more important than project managers.

But wait!

I hope you know that it’s a trick question. Before anyone can answer it intelligently, they would need to know a little more about the software system? For example:

  • What are the major functions of the system?
  • Does it replace an existing system or does it perform entirely new functions?
  • Will it be built on proven components or will it be cutting edge?
  • How many people will use the system?
  • How much data will the system process?
  • What is the rough budget estimate?
  • What is the expected delivery timeline for the building the system?

I could go on but you get the idea. If the system is small and simple, any reasonably competent team of engineers can build it with little management overhead. If the system is massive in scope and scale, a large team with strong management coordination is needed.

I point this out because I think that the online debates that take place about software development are often an apples-to-oranges comparison.

For example, person #1 says that agile development works while person #2 says it doesn’t. Both are correct but they are talking about completely different situations. Person #1 is talking about a small project in a small company where everyone received agile training. Person #2 is talking about a large project in a large company where no one was trained and not everyone accepted agile principles.

The same thing happens when people debate whether agile projects need project managers or whether a sprint zero is useful. There’s something missing — context.

In the end, agile doesn’t succeed or fail. Neither does waterfall. People do.

Updated: June 5, 2011 — 10:24 pm