In our daily lives as a developers, testers, release engineers, or other disciplines, we are always pursuing to create the best code as possible but always responding to our customers without taking into account the quality of the code we are delivering. Creating good software is not possible without meeting efficiency, good estimation, previous practice, learning from your co-workers, multidisciplinary teams, teaching to apprentices and having motivation to improve yourself as a professional.