Tuesday, January 10, 2006

The Downside(?) of Simple Design

I was chatting with this friend of mine and he was telling me about his project. He was saying that the software that they (his team) are working on has evolved to a stage where adding new functionality to their application has become very simple. Probably it might at the most, just involve implementing an interface with a few simple methods.
The design is so simple that on a day-to-day basis, they wouldn't need to use any brains at all for working on that software. That set me thinking...

Is it really possible that you can arrive at a stage where the design is so much maintainable, flexible, and whatever?
Maybe.
But is it the time to stop thinking about the design of the software?
No.
I think That is the time to sit back and look at the design from one level higher. That might be the time to try to bring in some domain language. That might be the time to figure out a way to automate the day-to-day tasks. That might be the time to bring in a new paradigm to the software. Maybe AI, maybe functional programming. I don't know the possibilities.

Bottomline: It is the time to take "The Next Step".