Resolver problemas é parte inerente da rotina de um desenvolvedor de software, seja na escrita de códigos para features descritas em novas regras de negócio, otimização de código legado, ou ainda refatoraração de estruturas existentes. Para garantir a qualidade na resolução destes problemas, é natural e imprescindível que o desenvolvedor