The essence of writing clean code: Part I