Agile project management with XP Manual
MANUAL GESTIÓN DE PROYECTOS ÁGILES
In the world of software development, simplicity suggests to developers not to think of complex designs for future functionality to be implemented. This is known as over-design. Extreme programming tells you to program just for what you need today, but no more. This has the advantage that discussions with the client are much more focused, there is no future guesswork. Also the code is usually easier and quicker to implement and test. This means that the customer can have that functionality much earlier and can provide feedback. Anglo-Saxons have many acronyms related to this value. KISS is the acronym for "Keep it simple, stupid" which can be translated as "Keep it simple, stupid". They also use the acronym YAGNI, the acronym for "You aren't gonna need it", which can be translated as "You won't need it". Extreme programming believes that if you don't over-design and focus on what is immediately important, you don't run the risk of spending your efforts on doing something that you probably won't need because, although it seems very obvious to you now that you will need it, the client's needs may have changed by the time you get there. And the last one, BDUF, which stands for "Big design up front", refers to the extreme case of completely defining the software architecture before you start programming. These ideas are applied in other engineering disciplines (e.g. construction), but have proven to be very unsuitable for software development, being mainly used in waterfall development. Simpler code is easier to understand (it favours communication, the first value of extreme programming). And if a code is easy to understand, it is also easier to maintain and, therefore, to adapt to the (changing) needs of the client. There are developers who take this principle to the letter and only program what is strictly necessary for the current iteration. But there are other developers who carefully evaluate each case and decide to use more resources in the current iteration so that the incorporation of future functionalities can be done in a very simple way, even if this implies a higher initial implementation cost. As this is quite an important issue in software development, we will come back to it later.
Feedback In the context of extreme programming, feedback is associated with the ability to measure different aspects of software development. In particular, it is often applied to the following aspects:
• System feedback: thanks to automated tests, the system is able to generate an automatic report on its internal status. This is why test programming is so important for the development of quality software.
8
European Open Business School
Made with FlippingBook Ebook Creator