This week, we had to read Is Design Dead? by Martin Fowler. Just by reading the title, the thought of agile methodologies popped into my head, since they do involve design, just not as much as we're accustomed to. And not too surprisingly, Fowler reached a similar conclusion: design is NOT dead, it has just evolved along with us to keep up with today's standards.
Before, design was used to make sure that you knew everything you needed to get done, and it let you find any flaws in your plan beforehand. It was meant as an all-encapsulating process that all future code will be based on. Today, it has maintained its role as a guide, as to not make the developer feel totally lost, but with today's fast-paced work environment and ever-changing requirements, with the help of methodologies such as Extreme Programming, it has evolved to become more dynamic and easier to change.
For my personal opinion, I've had experiences (both academic and professional) where a bit of design, or just an idea of what the final product would look like, would've saved me (and my team) a bit of a headache. However, I've also been on the other side. While a too-thorough design has never been an issue in the sense that it's stopped our workflow, it has slowed us down, because going back to change the documentation and redesign future steps after a small change is very counterproductive.
I'm very aware that there is more than one right answer (which is not the same as saying there are no wrong answers, because there certainly are), and that how much effort you put into the design fully depends on the scope and type of project you're developing. As is almost always the case, in most instances, the answer will lie somewhere in the middle; it's definitely not a good idea to begin a project without any design at all, but we should also be aware that it shouldn't shape our future decisions if it makes sense for something to change, and knowing when it's right to change our design will only come with experience.
Comments
Post a Comment