Desenvolvimento de software com qualidade
Tags: programming, beginners, productivity, opensource
Published: 2021-11-08 20:38:44

Post original: [link](https://medium.com/@jotanlima/desenvolvimento-de-software-com-qualidade-13e50429e938)

Todo processo de desenvolvimento de software começa com uma ideia, geralmente são boas ideias mas acabam se perdendo quando deixamos a emoção falar mais alto.

Você provavelmente já deve ter tido uma ideia que achou incrível, pensou que seria o novo **Steve Jobs**, mudando o mundo e colocando seu nome na história, mas na hora de passar pro papel se enrolou, não soube por onde começar, pulou etapas, começou a modelar banco de dados e pensar em requisitos de layout e bateu no primeiro problema, um novo requisito que não estava previsto apareceu e a implementação dele quebra toda sua aplicação.

Bom esse é o ponto onde muitos desistem, quando os problemas aparecem, quando as coisas não acontecem como o planejado. Tenho uma coisa pra lhe dizer caro amigo, nada nessa vida se comporta como planejamos, controle é uma mera ilusão. Nesse momento você para e se pergunta: **E agora? Como posso desenvolver um bom software, já que você acabou de dizer que não existe controle?**, calma meu amigo, não podemos controlar o clima, a doença, a morte e uma infinidade de eventos que ocorrem ao nosso redor, mas no nosso universo de criação de softwares de qualidade podemos sim controlar alguns eventos.

## Etapas para um bom desenvolvimento

_“Essas são as minhas interpretações, opiniões que construi com minha experiência como desenvolvedor, não significa que são etapas e regras absolutas.”_

* Escreva sua ideia, leia e releia até ficar claro o que o seu software vai fazer, ele terá muitas funcionalidades, mas terá uma que será o seu diferencial, a cereja do bolo. De atenção para ela, mas não esqueça das outras, pois não adianta tem um software que faz sua casa voar sendo que você não consegue mudar o toque da sua campainha.
* Crie protótipos, no mercado tem bastante material para te auxiliar nesse processo, o foco principal é ter uma base simples de como o sistema vai funcionar, qual será o fluxo de telas, coisas simples, sem designer, recomendo fazer no papel ou utilizar o **Balsamiq**.
* Faça um esboço do banco de dados, gosto muito de usar papel nessa etapa, seguindo o modelo de mapa mental, tem um aplicativo muito bom pra criar mapas mentais, o **MindNode**, nessa etapa não me preocupo com colunas, maxlenght e etc, deve ser algo simples mas que já mostre como o banco vai se comportar a nível de tabelas.
* Modele o banco de dados, de maneira progressiva, lembre-se que a tendência é que seu sistema cresça e junto com esse crescimento seu banco deve acompanha-lo, use relacionamentos coesos.
* Utilize TDD, teste seus modelos, teste suas funções, teste rotas, teste views, teste TUDO, TESTES SALVAM!!! Lembre-se “TODO CÓDIGO NÃO TESTADO É LEGADO”.
* Independente da linguagem que você escolha, divida a responsabilidade, use controller, service, interface, factory, nada de colocar toda a responsabilidade no controller ou em um único lugar.
* De importância para o Designer, UI e UX. Não adianta ter uma casa incrível por dentro se por fora ela está toda suja, e descuidada.
Essas são etapas, assuntos que acho importante no processo para o desenvolvimento de um software de qualidade.

**Fiquem com Deus e até a próxima.**

_Nunca desista de correr atrás dos seus sonhos_