In this article they focus on two topics: design and extreme programming. What I understood from what I read was that design is no longer so important in an environment where extreme programming is done. Programming refers to a way of programming in a fast way, so certain phases are ignored, so that results can be obtained quickly. This still implies that not so much time is spent on documentation, the major effort is concentrated on coding.
In my opinion, I think that for any project, the design phase is very important. It is fundamental to know the system requirements, analyze the problem and design solutions, as well as define the tools to be used and estimate the time to complete the project. In this way, a date can be given to the client so that a quality result can be generated, which will be functional, scalable and understandable in case a developer wants to improve it or simply to give maintenance.
However, the author mentions interesting things about extreme programming:
In my opinion, I think that for any project, the design phase is very important. It is fundamental to know the system requirements, analyze the problem and design solutions, as well as define the tools to be used and estimate the time to complete the project. In this way, a date can be given to the client so that a quality result can be generated, which will be functional, scalable and understandable in case a developer wants to improve it or simply to give maintenance.
However, the author mentions interesting things about extreme programming:
Do the Simplest Thing that Could Possibly Work"
and "You Aren't Going to Need It" (known as YAGNI). Both are
manifestations of the XP practice of Simple Design.
The way YAGNI is usually described, it says that you
shouldn't add any code today which will only be used by feature that is needed
tomorrow. On the face of it this sounds simple. The issue comes with such
things as frameworks, reusable components, and flexible design. Such things are
complicated to build. You pay an extra up-front cost to build them, in the
expectation that you will gain back that cost later. This idea of building
flexibility up-front is seen as a key part of effective software design.
In general this concept is good to defend extreme programming, however in my opinion I prefer the traditional way with each phase well developed.
Comentarios
Publicar un comentario