Thursday, January 27, 2005

Most of the software designs happens in the corridor.

The above title is an anonymous quote (I have no clue who said this :) ) made in the software industry. The sentence just stirred a few thoughts in my mind and the result is this blog post. I really don't know the veracity of this statement, but digging into the details, I am inclined to believe, it is not far away from the truth.

I have been part of various design level meetings myself. The setup is usually a wooden paneled 6x8 room (but sometimes bigger too) with a table surrounded with ergonomic chairs and the centre of the table holding the proud invention of Graham Bell-the multi conference VoIP enabled telephone, dare I say, far advanced than what Bell conceived? There are all kinds of focus lights to throw the spot on those trying to steal an afternoon fiesta. And finally, the PRD's and FSD's lying all over the table, the fuel material that provides the needed succor to formulate the best possible design.

Now, if you are thinking this is THE place for the best solutions to take form, then I am afraid I will not be able to jibe in with this assumption. Usually, the discussion starts off in the right direction, seem to be going fine, when suddenly some random thoughts completely steer the talks from its course and before we realize, the discussion will head in all tangential directions. We go back and forth trying to stay on track, but things do tend to go awry. By the time, we think we are seeing some light, our allotted time gets over and some other team knocks on the door, so that they can find their comfort zone in the room. Slightly vexed, we move out of the room and to release the tension, grab a cuppa coffee and slouch into the couches. A sip of coffee rejuvenates our brain cells and we try and jabber for a while. Suddenly, some one shouts, "Hey, I've got an idea! "Why don't we try and do it this way"? And then the other guy says, "Yeah, this sounds good, maybe we can slightly modify this to make it scalable". And before the heat goes down, the third one says, "Awesome!, with this approach, I can fit in my module without much of an hassle". Things suddenly seem to take shape and a rapid discussion shows a limn of the design. With half cup of the coffee still remaining, we run to our cubes to jot down the freshly brewed idea, lest the brainwave gets washed away. What ensues after this, is purely refining the idea further till it looks like a real good design. Now, this
can continue to happen in the couch or get back to the meeting rooms.

Now, I am not saying that all the designs always happens this way. I have myself sat in meeting rooms and attended really long teleconferences and formulated design level solutions. At the same time, informal discussions in some one's cube, corridor or the cafeteria have proved to be equally conducive surroundings for taking design level decisions. It is hard to conclude which has the whip hand, but off late, the software environment itself being quite informal, such a surrounding helps us think better rather than confine ourselves into the four walls of a meeting room and try to
incubate on the requirements.

"There are two ways of constructing a software design; one way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult." - C. A. R. Hoare

I tried hard to create a relevance point to include this quote, but did not have much luck this time around. So just adding it for the heck of it, coz I found this quote kewl. Now, this is what is probably another incident of going astray from the centre point of this post;)

No comments: