Is design dead?


It might have to do with the way we were educated by our professors, but I have never thought of software design as something dead or that is dying. The article made a very complete explanation why this is not something true: design is not dying, I agree with the article that design is evolving.

As the article states it, going into the extremes of both positions can be something risky, Extreme programming as its prosecutors paint it and with a wrong execution can effectively lead into that glorious spaghetti not understandable code that is difficult to change, to work with and to grow. On the other hand, planning everything and trying to strictly adhere to the original design does not make room for changes that you learn when you are coding that must be made in order to achieve better results and to get to the goal, also if you try to get out a working code as fast as you can, a full old-school planned design is not the best way to go.

What the article states, we experienced with our project last semester. Although we were trying to use a set of best practices for flexible programming, at the beginning we tried so hard to stick to our original design even if it was wrong, that we ended up loosing four solid weeks of deliverables and had to redesign everything mid-semester into the project. And as Fowler states it, a combination of both can be the best choice. This way you do not leave the design to the good faith of refactoring (in our project there was almost none) and you do not waste lots of time in the designing phase.

 Also, I consider this to be a better approach, avoiding software entropy, having a clearer view of what you are aiming to do and also, getting feedback in case something needs to be change you know why it had to be changed. Another important thing is the role that he gives to the software architect. Rather than just give orders, he does not loose programming practice since he has to help his team to improve and sort the different problems that present in the best way possible, so here you may be solving the problem of architects getting outdated because they don’t program and loosing the respect of the team which leads to trouble.

All of this things, I consider, have change along the years in the role that the software design and those who design it play in the creation of software. But you can see it more as it has evolved than that it is dying. It still is important for clarity, communication and as a starting and leading point, but it does not get in the way of changing and improving things. I think that that is what the best practices of agile programming try to capture: flexibility and design working together.

Comentarios

Entradas populares de este blog

War Games

SOLID

Ethical Reflection on R.P.O.