{"id":6400,"date":"2017-05-31T15:20:52","date_gmt":"2017-05-31T18:20:52","guid":{"rendered":"http:\/\/blog.plataformatec.com.br\/?p=6400"},"modified":"2017-08-23T11:28:48","modified_gmt":"2017-08-23T14:28:48","slug":"sintomas-da-baixa-qualidade-interna-de-software","status":"publish","type":"post","link":"https:\/\/blog.plataformatec.com.br\/2017\/05\/sintomas-da-baixa-qualidade-interna-de-software\/","title":{"rendered":"Sintomas da Baixa Qualidade Interna de Software"},"content":{"rendered":"

Primeiro post da s\u00e9rie Baixa Qualidade Interna de Software<\/em><\/p>\n

N\u00e3o s\u00f3 bens f\u00edsicos se deterioram, isso tamb\u00e9m ocorre com software.<\/h2>\n

Todos sabem que bens f\u00edsicos se deterioram. As pessoas aceitam este fato e sempre lidaram com isso. O que as pessoas n\u00e3o aceitam t\u00e3o facilmente \u00e9 que software “se deteriora” tamb\u00e9m. Ao contr\u00e1rio dos bens f\u00edsicos, isso n\u00e3o acontece devido a algum fen\u00f4meno f\u00edsico ou qu\u00edmico. Essa deteriora\u00e7\u00e3o ocorre geralmente devido a mudan\u00e7as de neg\u00f3cios ou de profissionais. Vou dar um exemplo.<\/p>\n

Imagine que voc\u00ea \u00e9 o l\u00edder de uma equipe de produto ou tecnologia em uma startup; voc\u00ea \u00e9 o CTO. Voc\u00ea j\u00e1 lan\u00e7ou a primeira vers\u00e3o do seu produto e foi um sucesso. Seu modelo de neg\u00f3cio foi validado e agora voc\u00ea est\u00e1 em fase de crescimento. Isso \u00e9 fant\u00e1stico! Mas tem seus custos, al\u00e9m de novos desafios.<\/p>\n

A primeira vers\u00e3o do seu produto est\u00e1 funcionando, mas a base de c\u00f3digo n\u00e3o est\u00e1 como voc\u00ea precisa a partir de agora. Talvez sua equipe n\u00e3o seja t\u00e3o veloz quanto antes. Sua equipe reclama continuamente da qualidade do c\u00f3digo. O CEO e o diretor de produto querem novas features e suas estimativas atuais n\u00e3o atender\u00e3o \u00e0s necessidades do neg\u00f3cio.<\/p>\n

N\u00e3o raro, baixa qualidade da base de c\u00f3digo est\u00e1 entre as principais origens de todos problemas. Talvez voc\u00ea precise refatorar\u00a0(refactor) ou reescrever (rewrite) o software.<\/p>\n

Quando a base de c\u00f3digo n\u00e3o est\u00e1 em boas condi\u00e7\u00f5es, todos podem ficar frustrados.<\/h2>\n

Sua equipe inteira, incluindo os desenvolvedores, se sentir\u00e3o frustrados porque gostariam de liberar features com maior velocidade, por\u00e9m a qualidade do c\u00f3digo e a arquitetura atual n\u00e3o ajudam.<\/p>\n

Os departamentos de TI, produto e software sofrem por n\u00e3o atenderem \u00e0s expectativas das outras \u00e1reas.<\/p>\n

O cliente tamb\u00e9m sofre devido aos bugs frequentes, o tempo gasto para que sejam corrigidos, al\u00e9m da demora para lan\u00e7ar novas features.<\/p>\n

Voc\u00ea conseguiu entender.<\/p>\n

Identifique os sintomas<\/h2>\n

\u00c9 papel do l\u00edder (por exemplo, o CTO) identificar quando \u00e9 necess\u00e1rio refatorar ou reescrever o software. Para isso, ele(a) pode fazer uma an\u00e1lise em busca de alguns sintomas, como os listados abaixo:<\/p>\n