Tuesday, July 28, 2009

Does design really matter?

Do the internals of software really matter? If you could ignore need for maitenance/recompile, who cares how elegant code is or if you used cutting edge technology. If from the outside, if the compiled program is perfect from the outside, what difference does it make what construction tools methods you used ? Is the bottom line ever the factor?





For example, if you run calc.exe in windows it is perfect and will never need to be changed. Did it matter if they used C#, VB Net, Java, C++, Extreeme programing or Borland to make it?

Does design really matter?
Yes it matters. What if the person that designed the calculator program designed it so that you had to press enter after each button? Or what if it were designed so that the number being entered isn't shown until an operator is pressed? These are design factors.





Java vs. C#/C/C++ vs. VB vs. ??? has little to do with design. Those are technical aspects of the construction. Extreeme programming is not a design factor - that's a development approach.





The problem is you can't ignore the need for maintenance in most cases. Even the calculator program has been maintained... If you remember from Windows 3.x, the calculator didn't have the Scientific options. (I'll have to fire up my old Win3.1 machine, but I think it didn't support copy/paste either.)





In my opinion, design is the most critical part of the sdlc. A poorly designed program will certainly at some point cause problems.
Reply:Design is independent of the technology used. So it design matters, however the technology used matters to a lesser extent.





Design does matter. Bad Design can lead to making a solution not scalable, Performance problems and maintenance problems to say least.





Real World problems arise when applications are poorly designed. Examples would be (and am not talking theory, rather real scenarios)





1) Poor database design


2) Single-threaded execution for everything





If you bother to diagnose these problems beforehand, you will save a lot of money and time instead of blaming network configuration and poor hardware.
Reply:Depends on the end result ... if you know that your end result will be a small software that you can check extensively then it doesnt matter....





but if you are looking of efficient code and you may need to change the software at latter stages according to clients request then design should be done properly ... as well as lanugage selection should be done carefully....


No comments:

Post a Comment