Os 8 principais mitos do desenvolvimento de Software

Os mitos de software são “falsas verdades” que existem no mundo da indústria de software.

Tanto jovens engenheiros quanto profissionais mais experientes tendem a acreditar neles, distorcendo a verdadeira face do processo de engenharia.

Veja abaixo os 8 principais mitos do desenvolvimento de Software

1. Um bom manual, repleto de padrões e regras, fornecerá a equipe tudo que ela precisa saber

Desenvolvimento não é uma receita de bolo! Os clientes são diferentes, os projetos são diferentes, os programadores são diferentes, as prioridades dependem do projeto. Basicamente, TUDO é diferente. Não pense que um site de ecommerce que você desenvolveu para a empresa X valerá para a empresa Y, e vice-versa. O planejamento é fundamental e só então você poderá levantar os requisitos necessários e trabalhar em cima de um novo projeto.

2. Caso ocorra atraso no cronograma este poderá ser contornado alocando-se mais programadores ao projeto

Por mais que exista o conceito de “Fábrica de Software” não podemos pensar no processo de desenvolvimento como uma linha de produção. Ao se inserir um programador em um projeto, ele levará algum tempo para se familiarizar com o código e com o que está sendo feito, para então, começar de fato a produzir. Outro grande pecado que muitos gestores comentem é tratar o programador como “pedreiro”, como um “peão”. Se o o desenvolvedor não entende nada do processo da empresa para o qual está desenvolvendo, tenha certeza que não poderá contribuir da melhor maneira possível. Mais um vez, quero frisar: Desenvolvimento não é linha de produção. Alocar programadores para resolver um problema de cronograma poderá surgir efeito contrário, causando mais problemas!

3. Terceirizar um projeto é garantia de tranquilidade e nenhum trabalho

Quando um projeto é muito trabalhoso, requer know-how maior do que a sua equipe possui ou o cronograma está apertado, muitos optam pela terceirização achando que esta é uma garantia de tranquilidade e nenhum trabalho. Contudo, tome cuidado: Se a empresa X contratou você, você é o responsável pelo trabalho que está entregando. Ou seja, qualquer problema será um problema seu também! A maioria das empresas terceiriza o serviço, mas ao comprar o código, fica responsável por suas manutenções. Aí fica a pergunta: A terceirização fez o serviço direito? Comentou o código? Documentou o que foi feito? Sua equipe tem pessoal para trabalhar nesse código? Pense bem antes de terceirizar algo que não poderá trabalhar bem no futuro. É melhor recusar um projeto do que faze-lo mal feito.

4. Um software pode ser construído observando-se o seu propósito geral – os detalhes podem ser levados em conta posteriormente

Se você é desenvolvedor já deve ter se deparado com um usuário que só queria um ajustizinho no sistema: “só adicione um botão que faça isso e busque aquilo e faça isso ficar cor de rosa e brilhar girando”. Sim, essas coisas acontecem! Ao se pensar em um software deve-se mapear o máximo possível de suas funcionalidades a serem desempenhadas. É claro que em um primeiro momento é difícil pensar em tudo, alguma coisa ou outra vai entrar como correção. Mas pensar em algo básico demais e querer enfeita-lo demais depois, envolve mais tempo e o pior: retrabalho! Desenvolvedores geralmente não gostam de destruir algo para faze-lo de outra forma, pois o cliente mudou de ideia. Aliás, ninguém gosta. Como eu disse, existem exceções, mas se você não entende de desenvolvimento e só gerencia o processo, não pense que os seus “detalhes” são realmente detalhes quando viram linhas de código!

5. Mesmo que os requisitos de um software mudem, as alterações são realizadas facilmente pois temos uma boa equipe que sabe como fazer o serviço muito bem

Mais uma vez, se você não é desenvolver e não entende do processo, não julgue uma atualização como simples. Somente um programador poderá avaliar o quão simples uma alteração é – e muitas vezes, ela só vai realmente ter a ideia depois que estiver trabalhando com o código. Mesmo que você tenha uma boa equipe, modificações devem ser analisadas, discutidas com relação a sua viabilidade e testadas. Lembre-se sempre: alocar um programador requer algum tempo para que esse se familiarize com o que vem sendo feito. As coisas não são tão simples.

6. Se o programa funciona, nosso trabalho está completo. Se o programa ainda não está finalizado e “rodando”, não posso avaliar sua qualidade

Esses dois tópicos são assustadoramente passados adiante e você já deve ter ouvido isso de alguém. Se um programa roda isso não garante que o seu trabalho está feito. Todo o processo de desenvolvimento deve buscar a qualidade e apenas funcionar não lhe garante isso – ou seja, o processo da avaliação de qualidade não se limita a essa etapa. O seu código é bem comentado? Está bem feito? Otimizado? A tecnologia utilizada é adequada? Os banco de dados estão otimizados? Sua relações foram criadas corretamente? A infraestrutura do cliente suporta o que está sendo desenvolvido? Se o seu sistema foi feito para suportar vários acessos, ele realmente suporta isso? Um programa é mais do que o executável. Você vende todo o processo.

7. O único produto que entregarei ao cliente é o código executável

Em alguns casos, o produto “palpável” que o cliente recebe é somente o executável. Em outros, trabalha-se com o código fonte e com a documentação. Contudo, independente do caso, lembre que, como foi dito no item anterior: Um programa é mais do que o executável. Você vende todo o processo de desenvolvimento. Por isso, deve-se pensar e faze-lo com perfeição.

8. O processo de planejamento fará com que criemos documentação volumosa que atrasará a execução do projeto, atrasando o cronograma

Planejamento é fundamental! Muitas pessoas ainda confundem planejamento com “papelada” e estas estão terrivelmente enganadas! Mesmo trabalhando-se em um time Agile, planejar é fundamental! A documentação do projeto será trabalhada na melhor metodologia adotada, mas um plano do que será feito deverá ser estudado antes de “colocar a mão na massa”. Somente com o estudo dos processos e necessidades do cliente você conseguirá criar um software que trabalhe com excelência!

Originalmente postado em Eu Faço Programas

Gabii Fonseca

Mais artigos deste autor »

Gabriella Fonseca Ribeiro tem 21 anos e cursa Sistemas de Informação. Trabalha com desenvolvimento, pesquisa e otimização de websites - SEO, marketing digital, redes sociais e comunicação interativa. || www.eufacoprogramas.com


4 Comentários

Andr'e
1

Realmente, ja entrei em alguns projetos onde o chefe nao sabia de nada e o cliente queria realizar sempre “pequenas” atualizaç~oes no sistema. Isso era de doer. Depois de muitas linhas de c’odigos perdidas por conta das “pequenas” atualizaç~oes feitas at’e diversas vezes numa ‘unica fucionalidade, resolvi pedir as contas e procurar outro emprego. Graças a deus ja estou alocado e num lugar mais organizado.

rodrigo
2

Excelente texto: concordo com a sustentação dos argumentos correlatados ao longo da retórica contextual.
Ainda acho que a causa raiz de todo o imbróglio no processo de software é tão somente a inexistência completa, total e absoluta de como o cliente deva demandar atividades para a área de TI, sem interferir tecnicamente no processo produtivo.

Robson
3

Achei o texto bastante esclarecedor, estou começando agora na área e essas experiências citadas são de grande valia, espero passar por elas para o melhor desenvolvimento profissional.
parabéns pelo artigo

Deixe seu comentário

Seu endereço de e-mail não será publicado. Campos com * são obrigatórios!