Is Design Dead?

The article unify the previous topics of the articles we've readed, also I can notice a relation with other topics I'm taking in other classes. The three principal axis of the article are refactoring, use of patterns and "code and fix vs. planned design". The relationship between the first two topics with the third one is the way to use them combined with an agile development methodology. The article also specifies the advantages and disavantages of the methodologies. The whole article tries to decide if the advantages of the agile methodologies have already overpased the advantages of the classic ones.

The author explains that the work throught an agile methodology should contemplate to refactor the code. That this practice is good to make more easier to read and use the code, because refactoring can help us to know if the code has no duplication, helps reveal the intention and know if we have the fewer number of classes or methods as possible,etc. The beniefits of refactoring can directly improve the effectiveness of the code and the system. As the agile methodologies try to deliver functional pieces of a system incrementally, the development team needs to ensure the funcionality of the component. We can consider refactoring as a tool to get this. 

When refactoring, we may notice that some changes need to be done. And we may think that it would be a good idea to use some patters. The patterns will help us to simplify the design too. The refactoring activity can be seen as a "review activity" that lead us to an "improvement or recode activity". The patterns may help us to identify some parts of the code that could be modified to improve their usage or their design. Improvements that will lead us to our final goal when using an agile methodology. Deliver a product that could have the minimum of the disavantages.

In addition to these "recommended practices" the article recommend us to keep the things simple, to consider to implement the simplier and most flexible possible design and take in count the YAGNI way. We need to avoid adding features that aren't needed now, even if this doesn't have a cost, because it may have it when a needed modification. This will help us to avoid having a product with irreversible modules, something good because with agile methodologies we want to be able to respond quickly and effective to new or changed requirements.  

Comentarios

Entradas populares de este blog

WarGames

First Entrance

Ethical Reflection on Ready Player One