Creating software requires from us developers to make a constant stream of choices. Each of the choices we make hopefully brings the software we are writing closer to the state of functionality it is required to have. At the same time, each of the choices we make forms the code in a way that impacts how we can continue to work with it, how easy it is to expand and build on to, how simple it is to understand, and how many bugs we will allow to creep in. In short, the choices we make impact the cost of development. This talk is about development guidelines for those choices that allow us to save time and money. Contradicting the intuitive conclusion that this means cutting corners, it actually means that we have to focus on creating programs with a high external and internal quality; that clean code pays off.