Thoughts on Gosling's "Sharpen the Axe: the Dark Side"
I am very grateful to James Gosling for posting his blog entry of January 4, 2005: "Sharpen the Axe: the Dark Side." (http://weblogs.java.net/jag/)
The reason is that I believe this very topic to be of utmost importance to software developers (and their employers!). The second reason is that I don't believe this issue is discussed openly enough. So, first of all, thank you Dr. Gosling for the post.
Software development is a relatively young industry. We're still trying to figure out the right recipe for a successful software project.
I believe that many developers go through a nerve-racking decision making process at the start of every new project. The success of the project hangs in the balance.
An evaluation process goes on in developers' minds: how much work is this project going to require? What resources (people, budget, time) are at my disposal?
We all know time is a very precious resource on software projects. We've also learned that adding more developers (beyond n) to a project does not necessarily imply increases in productivity.
My guess is that more often than not the situation is one where the amount of effort is far greater than the available resources to complete it. That is, to use the analogy of sharpening the Axe:
When a developer is asked to cut down an entire forest by himself, how much good will sharpening the Axe do?
Sure, there's a tradeoff: if we spend the time to sharpen the axe, we are taking time away from cutting down trees. And the promise is that we will make up the time by cutting much faster with a sharp axe.
However, in this case, neither solution will work! There's no way we'll cut down the entire forest; and the project will fail. All the developers know it. Management and the marketing department is in the dark. They have no clue.
What we need to do is invent a chainsaw, and quickly! So in this extreme (yet possibly prevalent!) case, it doesn't matter what decision we make. Or does it?
I believe it does. Here are my reasons: the problems are not going to go away. The need for the chainsaw will always be there. So we might as well start working on it.
The problem is that there is no reason on earth why the company you work for (maybe an insurance company, a hospital, or an accounting firm) should stray so far from its core business to support the development of a supposed revolution in software. In these environments, developers are faced with shorter-term pressures.
What about companies that are in the business of building software? What about IBM, Microsoft, Borland, BEA, Sun? You've got me there; I have no clue. I've never worked for large software companies. I can only offer hypotheses: maybe developers at such companies are not directly exposed to customer needs, the way IT departments or consulting firms are? So this problem may not be in their radar. Surely it's in IBM's radar?
a. they're a huge company with lots of resources
b. they not only develop software but they have a huge consulting services arm
Conspiracy theorists might hypothesize that if they did come up with a solution, then from a business perspective the solution would no longer necessitate the huge charges of software consulting services. The problems would go away and so would entire software consulting industries. One must admit there is some truth to this rationale.
So who's working on a chainsaw these days? And how does open-source play into this? I want to hear your opinions.