Até onde vão as atribuições do desenvolvedor?
Esta pergunta ronda as empresas, os clientes e os usuários mundo afora. Para respondê-la, deve-se fazer uma reflexão e voltar alguns anos para entender melhor porque esta pergunta é feita.
No início da carreira de desenvolvedor não existia a grande série de carreiras que hoje compõem o ciclo de desenvolvimento de sistemas. Há duas décadas, analista de requisito, testes, arquiteto de sistemas, analista de homologação, web designer e tantas outras carreiras que nascem todos os dias não existiam. O desenvolvedor “reinava” sozinho. É bem verdade que também não existia a enorme variedade de tecnologia que temos hoje; desenvolvimento de sistemas resumia-se às tecnologias ligadas à main frame, e a plataforma open, mal engatinhava. O que também é verdade, é que o nível de senioridade e comprometimento dos desenvolvedores era bem maior que hoje em dia.
Atualmente as funções foram divididas e o desenvolvedor ficou restrito a receber as definições advindas dos analistas de requisitos, elaboradas e projetadas pelos arquitetos e desenhadas pelos web designers, e limitado a rechear linhas de código.
É claro que seguir à risca as metodologias de desenvolvimento de sistema está longe das pretensões da maioria dos desenvolvedores. Muitos ainda acreditam que devem acompanhar cada fase do desenvolvimento.
Por mais que as metodologias de desenvolvimento de sistema demonstrem que sua aplicabilidade reduz custos e aumenta a qualidade, muitas empresas ainda permitem que os desenvolvedores palpitem livremente por todo o ciclo do desenvolvimento, agredindo as melhores práticas do mercado.
Mas afinal qual é o limite da atuação dos desenvolvedores?
Nas empresas onde as metodologias são implementadas e seguidas, fica claro que o desenvolvedor ficará limitado, como dito anteriormente, a rechear as definições que recebe com as linhas de código e passar para os analistas de testes validarem se o que eles fizeram está a contento. Porém, em boa parte das empresas onde as metodologias estão mais ligadas à retórica do que ao desenvolvimento de sistemas, não é raro encontrar desenvolvedores fazendo análise de requisitos, elaborando a arquitetura, desenvolvendo, testando e, claro, brigando com o cliente para aceitar as “sugestões” que eles, dentro da sua enorme experiência no negócio do cliente, possuem.
As melhores práticas mostram que quanto mais processual for o desenvolvimento do sistema, mais assertivas serão suas funcionalidades, menor será seu tempo de desenvolvimento e, consequentemente, mais barato.
O certo é que, infelizmente, não é mais possível o mesmo profissional, que na maioria das vezes possui um nível de maturidade pequeno, agregar todos os conhecimentos necessários para atuar em todas as frentes do ciclo de desenvolvimento de sistemas. E o profissional que já adquiriu a maturidade e poderia agregar mais atribuições prefere assumir um cargo de chefia a acumular funções técnicas.