quinta-feira, 6 de junho de 2013

A empresa e a qualidade de código - Parte 1

Depois de falarmos do papel do novato, da equipe, do chefe e do cliente com relação a qualidade de código, vamos falar finalmente do papel da empresa.

Não sou exatamente um empresário do ramo de software, então deem uma aliviada no que vou dizer agora. Pelo que consigo observar nos meus anos de experiência, os principais objetivos de uma empresa de desenvolvimento de software incluem: ver seus clientes utilizarem o software o mais cedo possível, ficarem satisfeitos com o produto entregue, procurarem a empresa novamente para novos projetos e sempre cobrarem um preço justo do cliente, o suficiente para gerar lucro para a empresa.

Para estes 4 objetivos serem alcançados, todos eles passam pela qualidade do software:

  1. utilizarem o software o mais cedo possível: o software precisa estar nas mãos dos usuários do cliente o quanto antes. De preferência, se assim for possível, o software deve estar o quanto antes em ambiente de produção.
  2. satisfeitos com o produto entregue: o software faz exatamente o que o cliente quer. Foi o produto que o cliente imaginou e que foi entregue
  3. procurarem a empresa novamente: o software não só atendeu perfeitamente os anseios do cliente, como o mesmo gostou da experiência e preço da empresa, procurando-a novamente em projetos futuros.
  4. lucro para a empresa: a empresa conseguiu atender a demanda do cliente e conseguiu lucrar conforme o planejado.

Para conquistar estes objetivos, podemos descartar de início algum processo de desenvolvimento "travado", pouco ágil, que comumente encaixa-se no termo "fábrica de  software". Embora processos não-ágeis possam garantir a qualidade do código gerado, são processos muito caros (indo contra o item 4), demorados pela burocracia envolvida que agrega pouco ou nenhum valor (indo contra o item 1) e que tem um risco alto da entrega não atender o que o cliente deseja (indo contra o item 2). No final disto, o item 3 dificilmente pode ser alcançado.

Em geral, uma metodologia ágil acaba sendo a escolha mais natural, pois consegue contemplar melhor os objetivos acima e manter a qualidade do código. Contudo, a empresa precisa permitir que os softwares sejam construídos desta maneira.

É muito comum encontrar empresas com cultura de anos atrás, de "fábrica de software", onde os empregados são chamados de "recursos" e os seus gestores acreditam que este modelo é o único que funciona. Aliás, não só gestores podem ser resistentes a mudanças nesta cultura dentro da empresa, mas também os desenvolvedores, que se acomodaram com o que sabem e não vão em busca de atualizar seus conhecimentos. Este desconhecimento de outras metodologias e tecnologias por estes profissionais são praticamente um reflexo do atraso da empresa na área de desenvolvimento de software.

No próximo texto vou explicar a relação do que foi escrito acima com qualidade, encerrando (finalmente!) a "série"!