"Simplicity is the ultimate sophistication."
– Leonardo da Vinci
In the past, the software industry was focused on developing software at high speed, with nothing in mind but cost and time. Quality was a secondary goal, with the false feeling that customers were not interested in it.
Nowadays, with the increasing connectivity of all kinds of platforms and devices, quality has become a first-class citizen in customer's requirements. Good applications offer a good service with a reasonable response-time, without being affected by a multitude of concurrent requests from many users.
Good applications in terms of quality are those that have been well designed. A good design means scalability, security, maintainability, and many other desired attributes.
In this chapter, we will explore how...