I was searching for  “design flexibility” in google today and came across this interview  with Martin Fowler. I was looking for general best practices in  making the design flexible enough to make maintenance and changes easy.  Something like flexible molding material which you can change without  much effort. I had read about regenerative systems some time back. Some  fantasy about self-healing or intelligent error handling programs. If  these errors out, then it can start looking for the actual cause of  error by itself, fix that and start running again without manual  intervention. Sounds fantastic. It is not a sophisticated idea which  sounds good on paper but not good for real life application development.  Maybe not in an expansive manner, at least the idea can be implemented.
Following  are some quotes from this article.
“We seem to have a notion in  the software industry that doing a good job slows you down.”
Yes,  I have this opinion some times. Not literally, but pulling off a  perfect job takes time. I always work within pre-set time limits and one  prime objective is to deliver good quality product within set time  lines. If you have unlimited time at your disposal, then making  something perfect is just a matter of patience.  I have also advised  others that don’t tinker with something until you get satisfied, but  rather finish it off and proceed with next life cycle. It is not for  just finishing the task for the sake of it, but to take care against  next cycles getting squeezed because of this.  The theory is, if making  it 90% perfect took 100% of time, then the rest 10% will take much more.
In  this model of working (waterfall) in a one-dimensional manner, there is  little choice but to start with coding once you think design is more or  less correct. Is this where iterative, agile, extreme methodologies  makes a difference? Making a perfect design of a part is easier than  designing a complex system at one go. When you have to compromise  because of time lines, this axiom is true.
“Planned design's  weakness is that creating a well-planned design is actually really  tough.”
“Why?”
“Martin Fowler: I don't know. Why is composing  symphonies tough? I don't know. It's just very few people in the world  can do it well. And I think that's the case with upfront design. It is  very hard to do well. “
It is true that making a perfect  upfront design is tough. You have to visualize the complex system which  you are designing completely. You have to be imaginative enough to see  all its flow from start to finish. You are expected to fill in all the  loopholes and all the tiny cracks. 
I just had a brainwave - let  me take the example of cooking. If I decide beforehand that I am going  to use a certain amount of vegetables, water, salt, pepper etc and start  cooking, chances of it being edible is less. I am least experienced in  cooking, but from my limited experience, adding ingredients as needed  into a basic mix with multiple iterations helps to test the taste  regularly and improve. Final product is always tastier compared to first  method.  But somehow, I was not able to practice the iterative  development in a full-fledged manner so far. So I don’t know the other  side of the story.
“focusing on superficial problems can lead  to the discovery of substantial problems”
This is true not only  in design, but in other areas also. Biggest hurdle when I face new  situations or new problems is courage to attempt solving it. Fear of  unknown is one big deterrent which makes people believe that it is  complex. But scratch the surface, series of small discoveries will add  to the confidence for exploring more. The problem will get solved by  itself. 
Subscribe to:
Post Comments (Atom)
aspen, blinding light
I took a day off today, just to avoid leaves expiring by month end. It was a relaxing day and had two instances of curious connections. I di...
- 
അടുത്ത രണ്ടു വർഷം അഞ്ച് മണിക്കൂർ വീതം ഉറങ്ങിയാൽ മതി എന്നാണ് entrance കോച്ചിംഗ് കാരുടെ മോട്ടിവേഷൻ ക്ലാസ്സിൽ പറഞ്ഞത്. Tuition ഉം സ്കൂളും പിന്ന...
- 
I took a day off today, just to avoid leaves expiring by month end. It was a relaxing day and had two instances of curious connections. I di...
- 
1. It is permanently dark under rain clouds. Low lying areas are flooding. People are complaining about road work everywhere combined with r...
 
 
No comments:
Post a Comment