Esse artigo tem como objetivo demonstrar e alertar aos desenvolvedores, em especial os iniciantes, sobre os grandes desafios que nós profissionais enfrentamos durante todo o processo de desenvolvimento de um software, desde o levantamento de requisitos até a implantação do mesmo.

A cada dia que se passa as pessoas estão mais dependentes de softwares, desde um simples usuário doméstico até grandes empresas que dependem 100% de softwares. Com isso os usuários se tornam cada vez mais exigentes, solicitando a cada dia que se passa programas mais complexos de serem implementados e que satisfaçam seus objetivos de modo eficiente. Então descrevo abaixo cinco dos principais desafios enfrentados por nós desenvolvedores:

1 - Análise de Requisitos:

A análise de requisitos é um fator essencial do sucesso de um software. Se a análise for feita de maneira incorreta o resultado final será completamente inaceitável. A má notícia é que a análise de requisitos correta não depende apenas de nós, mas também dos clientes. Clientes que muitas vezes não sabem realmente o que eles querem e acabam passando de forma errônea o que desejam que o sistema faça.

É nesse ponto que entra a importância do analista, gerente de projetos ou mesmo o desenvolvedor, manter sempre contato com o seu cliente. Um outro erro muito comum, principalmente para os profissionais que estão começando, é achar que uma breve conversa com o cliente sobre o sistema, uma simples explanação a respeito dos objetivos e das funções do software, é o suficiente para desenvolver um sistema de maneira correta.

2 - Tempo:

Todos nós sabemos da grande dificuldade de seguir o cronograma previsto sem atropelar os prazos. Então, manter os prazos em ordem é um outro grande desafio a ser enfrentado. A maior conseqüência de não entregar o produto no prazo determinado, é a desconfiança e a perda de credibilidade que o cliente vai ter com relação a você ou a sua empresa. No grande esforço para entregar o software no prazo previsto, muitas vezes os profissionais atropelam etapas importantíssimas do desenvolvimento, como, por exemplo, a fase de testes, comprometendo e muito a qualidade do produto final.

3 - Complexidade e eficiência:

Como citei no inicio do artigo, os usuários estão cada vez mais exigentes, solicitando sistemas complexos e que sejam eficientes, ou seja, eles querem que o software, independente da sua complexidade, tenham um tempo de resposta mínimo, não hajam nenhum tipo de falha e atenda a todas as suas necessidades.

4 - Mudanças durante o desenvolvimento:

Estamos sempre sujeitos a ter que modificar, remodelar todo ou grande parte do nosso sistema durante o desenvolvimento. Isso porque o nosso cliente, durante a análise de requisitos, não nos fornece tudo o que o sistema necessita, trazendo sempre novas idéias e pedindo modificações durante os processos pós-análise de requisitos. Isso compromete em muito o resultado final.

5 - Usabilidade:

Independente da quantidade de funcionalidades do nosso sistema, sempre temos que preocupar com a sua usabilidade, ou seja, com a facilidade que o usuário terá para interagir com o sistema. Hoje com inúmeros softwares no mercado, é muito fácil o cliente migrar de um software para outro na primeira dificuldade que encontra.

Acima listei apenas 5 grandes desafios, que considero muito importantes, e que nós desenvolvedores, encontramos e encontraremos durante o processo de "fabricação" do software. Espero que tenham gostado, e sintam - se a vontade para dar sugestões, opiniões e críticas a respeito do artigo. Muito Obrigado!