Industry


Ads by TechWords

See your link here


Mark Everett Hall's picture
Mark Everett Hall

Sanity as a Service

SOA minimizes the man-month myth


Back in the 1970s Frederick Brooks' The Mythical Man-Month debunked the software development notion that if you threw 12 programmers at project that it normally took one to complete in a year you could get it done in one month. Before his revelation IT managers saw that one developer working diligently could produce X amount of usable code. So, if you had two programmers working together you ought to get close to 2x of usable code, three coders rendered 3x, etc. However, Brooks showed that in reality the more people working on an app/dev effort, the faster your man-month productivity metric collapsed.

Steven Birchfield, CEO of Automation Centre LLC in Tucson, estimates that with traditional development techniques as you add programmers to the project you only get between 30-60% additional value per individual as compared to the productivity of the one developer-per-project model. And he knows. He's been running a software development company for a couple of decades, supporting platforms from IBM and Microsoft.

Service-oriented architecture, which he calls the foundation for cloud computing and software as a service, revises the man-month myth, he says. SOA also happens to be how his company's TrackerSuite application is built.

"SOA gets you closer to a one-to-one productivity relationship among developers on a project," he says.

That's because programmers now write their own layer, or their service, separately from everyone else. SOA provides the standard hooks between the layers so the services work together. No longer are programmers intertwining dependencies in miles of spaghetti code that take forever to debug.

If something doesn't work in SOA, Birchfield says, it's easy to locate and isolate because it's in a defined service that is failing for one reason or another. It's also easier to see which programmer is less competent than the others because his services will be the ones causing the most trouble.

While SOA does not eliminate all of the productivity problems of team development, Birchfield estimates you can get 80% value from every good developer added to a SOA project. If so, that's enough to make the man-month myth something to believe in...again.

What People Are Saying

Brooks' Law

Brooks' Law is a little more subtle. He defines the source of inefficiencies as communication and coordination. In his words: "Men and months are interchangeable only when a task can be partitioned among many workers with no communication among them."

It sounds like SOA allows for firewalls between tasks, letting different people work independently. Fred Brooks would be smiling.

1 + 1 < 1!

1 + 1 < 1!

80%?

That would be a nice number. My experience has been closer to 50%, but largely because it seems increasingly difficult to find developers who are competent as well as good team players. When they are both, it does seem to raise productivity, but even one stopping point and it tends to do otherwise.