Practical examples about how bad code smells, and how to change it in a better way. How to add new functionalities to live running legacy system without breaking existing code. Discussion about how to write easy maintainable code.