Como funciona um processo de desenvolvimento de software que entrega resultados

outsourcing). Durante 10 anos de experiência já utilizamos diversas metodologias desde as mais pré históricas às ágeis, como SCRUM e outras. Mas nosso objetivo aqui não é falar de metodologia e sim de PROCESSO. E para que um processo de criação de um aplicativo desde sua fase embrionária até sua maturação e manutenção como negócio deve passar por 3 etapas muito claras:

  1. Fase de projeto / prototipagem  / especificação de requisitos / planejamento
  2. Construção / Desenvolvimento
  3. Manutenção / Evolução
Felizmente essas fases devem existir SEMPRE e se alguém falou ou prometeu algo diferente para você, seu projeto de software tem boas chances de estar afundando nesse exato momento, muito antes de iniciar seu lançamento. Vamos descrever a seguir o porquê de cada uma delas.

Fase de projeto / prototipagem / especificação de requisitos / planejamento

“Quem falha em planejar, planeja em falhar.” – Benjamin Franklin
O planejamento é essencial para qualquer sequência de ações, caso deseja construir uma casa, o caminho inicial e natural é ter uma planta baixa e arquitetural para prosseguir com a construção, na área de aplicativos e sistemas não é diferente disso, primeiro é criado a especificação de requisitos de software ou então um protótipo funcional. A Especificação de Requisitos de Software (ERSw) é um documento no qual é descrito de forma precisa, sistemática e abstrata tudo aquilo que o software deverá ou não fazer, tendo como base o que foi analisado junto com patrocinador do projeto. Na Codificar buscamos documentar o projeto de forma bem didática, com desenhos de telas reais e não mockups, para que o documento tenha o máximo de proveito por toda a equipe e também pelos clientes. Uma outra forma que trabalhamos é a criação do protótipo funcional, que é uma “maquete” do aplicativo ou sistema, nele o cliente e a equipe de desenvolvimento terá a melhor experiência possível através da transformação da ideia em algo palpável, podendo entender melhor o problema com muito mais precisão, antes de iniciar a produção, onde a concentração dos custos será mais elevado. As duas maneiras acima serão decididas de acordo com o nível de maturidade de cada cliente / patrocinador do projeto, mas ao final o resultado atingido é o detalhamento completo do escopo e esforço de trabalho a ser executado na próxima fase.

Construção / Desenvolvimento

Fazendo alusão mais uma vez a construção civil, essa etapa é a de botar a mão na massa, é a construção da obra em si, na qual é alocado os recursos humanos necessários para transformar o projeto em realidade. Com o projeto em mãos é possível determinar de forma precisa qual tipo de trabalhador e qual o volume de horas necessárias para a execução das atividades. Durante essa fase devemos seguir rigorosamente o que foi descrito e desenhado no projeto, para a obra siga o prazo e custos já determinados. É natural que o software seja entregue por módulos, e que a escolha dos mesmos sigam uma linha crítica de entregas que crie o maior valor possível do projeto no menor espaço de tempo, permitindo que o software já seja utilizável antes da sua versão final. Somos da geração Iphone e não aceitamos mais sistemas como era o Windows 98 cheio de bugs, assim a etapa da Garantia da Qualidade de cada entrega é essencial, pois irá garantir que os usuários terão a melhor experiência no uso de cada módulo entregue. Voltando a construção de uma casa, nessa etapa será garantido que o piso está alinhado para o corrimento de água, que os rodapés estão pintados e limpos, que os encanamentos não tem nenhum vazamento e assim por diante.

Garantia / Manutenção / Evolução

Ninguém cria um sistema para depois abandoná-lo, pelo menos essa não é a intenção inicial. Depois da entrega do aplicativo / software nós garantimos o pleno funcionamento do mesmo durante 6 meses, mas é natural que ocorram demandas fora da garantia, como pequenos ajustes, novos campos de formulário, novos filtros, novos relatórios e telas, e por isso se faz necessário que a plataforma seja mantida e evoluída por uma equipe competente, garantido seus crescimento e adaptação ao negócio em operação.  ]]>