Construir um bom software equivale à busca incansável de suavizar arestas duras