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
Publicar un comentario