Joel Spolsky has an interesting discussion on his site in which he challenges the Microsoft Solution Framework (if not software development methodologies in general) using the Hebrew terms “rosh gadol” and “rosh katan” to describe the characteristics of two types of developers.
While I would hesitate to try to translate the two terms (I think Tamir Nitzan does a much better job than I could), I thought I’d share my own way of looking at it. Though it may be a bit of an over-generalization, when it comes to approaching a task there seems to be a spectrum.
On one end you have the individual who solves problems. When they have a task or goal, and run into obstacles, they will solve them, overcome them, bypass them, work around, above or right through them, even if it means redefining the problem to do something just as good or better than the original task or goal. These people would, I think, be Joel’s “rosh gadol.”
On the other end of the spectrum, you have the person who stops at the first excuse. In other words, as soon as the individual as a justifiable reason to stop looking for a solution, they are finished. While this can be intentional (Joel’s example of a “work to rule” situation applies), it is more often just part of their nature. These would be the “rosh katan.”
There are, sad to day, a lot more of the latter than the former.
And this also supports Joel’s assertions regarding software methodologies. A true “rosh gadol” won’t actually be suppressed by a restrictive methodology – he or she will likely solve their problem by finding a better company to work for. A “rosh katan” won’t have trouble with it either – as the more complex a methodology is, the more opportunities there are to find excuses (uh, the additional 3 week project delay was caused by the requirement to review and rename every local variable to have camel casing…).
Of course, this isn’t just applicable to software development. It’s part of the human condition. In fact, I strongly suspect that this is part of one’s character that is formed when very young, because I don’t know of any reliable way to convert an adult from a “rosh katan” into a “rosh gadol.”
>>”Of course, this isnât just applicable to software development. >>Itâs part of the human condition. ”
I concur. The education system has a lot to answer for that, me thinks.
>>”In fact, I strongly suspect that this is part of oneâs character >>that is formed when very young, because I donât know of any >>reliable way to convert an adult from a ârosh katanâ into a ârosh >>gadol.â ”
I think we all display adult rosh katan behaviour in some circurmstances, assuming that rosh katan is the small-mindedness associated with traits of behaviour that display a certain lack of initiative. Having said that, some others appear to be eternally in this state and in extreme cases the mentality is permanent.
However I think your view that an adult rosh katan cannot be converted to a rosh gadol is somewhat defeatist. People continue to develop throughout life, well into adulthood – albeit slowly! 🙂
It seems you are suggesting that we should leave our employment if we find the software methodology restrictive? Did I pick that up correctly? I work for such a company, where the software process gets more complex by the day. It fustrates me a lot, but I try to adapt. At the end of the day, I’m doing what the want (i.e. providing the correct documentation, format, structure, etc.). That’s what I get paid for. As long as they understand that by following a methodology the timescales will unavoidably be affected?