Conheça as etapas de processo de desenvolvimento de softwares e a contribuição dos gestores em cada uma delas.
Atualizado em: 05 de jul. de 2021
Todo sistema de informação empresarial surge, obviamente, da necessidade que alguma organização tem do acesso a algum tipo de informação. A partir dessa necessidade, o gestor deve procurar no mercado alguma solução que seja capaz de fornecer acesso às informações que a empresa precisa.
Nesse momento ele tem sempre duas opções: escolher uma entre as diversas opções de sistemas já existentes, ou encomendar o desenvolvimento de um sistema exclusivo sob medida para suas necessidades.
Como você deve imaginar, para cada uma dessas opções existem vantagens e desvantagens.
Sistema já existente ou sistema exclusivo?
Caso opte por escolher um sistema já existente, as vantagens serão possivelmente o prazo e o valor do investimento. Como o programa já está pronto, ele pode ser implantado imediatamente, e como é vendido para várias empresas diferentes, seu custo tende a ser menor. A principal desventagem é que nem sempre esse sistema atenderá plenamente todas as necessidades da empresa, uma vez que ele foi projetado para resolver problemas gerais e não de um cliente em especial.
Já no caso de optar por desenvolver um sistema exclusivo, o gestor terá como vantagem a certeza de que o software atenda plenamente suas necessidades, mas terá como desvantagem o prazo de entrega - uma vez que ele será desenvolvido apenas após a contratação - e o preço - que pode ficar mais alto pois os custos não serão divididos com outras empresas.
Seja qual for a opção do gestor diante dessas vantagens e desvantagens, para fazer a melhor escolha ele deve fazer um rigoroso levantamento das suas necessidades e dos recursos que ele espera que esse sistema tenha.
O processo de desenvolvimento de um software empresarial deve ser sempre uma colaboração entre o gestor e o desenvolvedor. O gestor é quem melhor conhece as necessidades da empresa e sabe melhor do que ninguém o que o software precisa fazer para atender estas necessidades. Já o desenvolvedor é quem conhece as possibilidades da tecnologia e sabe o que precisa ser feito para que o software tenha as funções esperadas pelo gestor.
Essa colaboração entre o gestor e o desenvolvedor se dará em um processo de desenvolvimento de sofware, que pode ter muitas etapas e muitos momentos de contato entre eles. Há muitas abordagens diferentes sobre quais seriam essas etapas, então aqui serão apresentadas as que são mais comuns. São elas:
Em cada uma dessas etapas o gestor e o desenvolvedor devem compreender qual o seu papel.
1ª etapa: Levantamento de requisitos de negócio
A primeira etapa é logo a mais importante. É aqui que nascem as expectativas da empresa, dos seus gestores e dos desenvolvedores sobre o software. Essas expectativas são chamadas de Requisitos de Negócio e no futuro serão utilizadas como medida para a qualidade desse sistema.
Nessa etapa é feito um levantamento das necessidades que o gestor tem a respeito do software. O gestor deve tentar responder as seguintes perguntas:
O que se espera que o software faça?
Que funções o sistema deve ter?
O que o sistema não pode fazer?
O objetivo é identificar quais recursos o software deve entregar para garantir que as necessidades da empresa sejam atendidas.
Papel do gestor: ele é o protagonista nessa etapa. Deve apresentar o mais detalhadamente possível quais são suas necessidades e suas expectativas sobre o software. Qualquer coisa que seja omitida nessa etapa ficará de fora do projeto e não poderá ser cobrada posteriormente.
Papel do desenvolvedor: ele deve ser uma espécie de orientador nessa etapa. Deve ajudar o gestor a identificar sua necessidades e expressá-las na forma de requisitos. Ele também deve tentar encontrar necessidades que o gestor tem mas não sabe que tem. Isso mesmo! Muitas vezes por estar envolvido exclusivamente com seu próprio negócio o gestor tem uma visão limitada sobre as possibilidades da tecnologia. O desenvolvedor deve então, nessa etapa, apresentar essas possibilidades a ele.
Em seguida, após ser feito o levantamento dos Requisitos, eles devem ser classificados de acordo com as seguintes categorias:
Requisitos necessários: são aqueles que o software deve obrigatoriamente e imediatamente atender.
Requisitos desejáveis: são aqueles que são importantes, mas não são prioridades. Podem ser atendidos em outro momento ou podem ser reavaliados pelo desenvolvedor.
Requisitos indesejáveis: são as funções que o software não pode ter. Em deterinadas situação é necessário que o sistema não permita certos tipos de operações ou certos tipos de acesso e isso também deve ficar claro nessa primeira etapa.
2ª etapa: Restrições e limitações
Todo projeto enfrenta, em alguma medida, restrições e limitações e elas devem ser levantadas aqui. Algumas coisas que funcionam como limitação ao desenvolvimento de um sistema:
Prazo: o gestor que está demandando o sistema tem a necessidade de que ele entre em funcionamento em um certo tempo. Se esse tempo for muito curto pode ser um forte empecilho para o projeto.
Recursos: desenvolver um sistema envolve uma série de recurso como dinheiro (o investimento do contratante), pessoas (que irão desenvolver) e infra-estrutura (servidores, rede, internet etc.). Caso alguma dessas coisas não esteja disponível na medida em que o projeto demanda, deverá ser considerada uma limitação.
Disponibilidade de tecnologia: muitas vezes se cria muita expectativa em torno do software e podem ser levantados requisitos na etapa anterior que são tecnologicamente impossíveis de serem implementados.
Impedimentos legais: os sitemas de informação, principalmente os que coletam e armazenam dados de consumidores, estão cada vez mais sujeitos a regulação legal. Deve ser feita uma avaliação com o objetivo de identificar se os requisitos levantados são permitidos pela legislação vigente ou se há alguma restrição.
Papel do gestor: aqui ele ainda é o protagonista e deve ser bastante honesto ao informar o desenvolvedor sobre suas limitações, principamente no que diz respeito ao prazo e aos recursos disponíveis. Qualquer discordância a esse respeito poderá gerar atritos entre ambos, comprometendo o espírito de colaboração que deve existir em todas as etapas.
Papel do desenvolvedor: deve auxiliar o gestor a encontrar suas limitações e também deve ser bastante honesto quanto à necessidade de tempo e de recursos para o desenvolvimento, não assumindo tarefas que não poderá cumprir posteriormente.
Caso a opção do gestor tenha sido por adquirir um software já existente, o processo termina aqui, pois ele já tem condições de escolher, entre as opções disponíveis, a que melhor atende seus requisitos.
Caso a opção deja por desenvolver um software novo, a partir dessa etapa o gestor deixa de ser o protagonista e as atenções se voltam para o trabalho do desenvolvedor.
3ª etapa: Análise dos requisitos
Nessa etapa o desenvolvedor irá transformar os requisitos de negócio que foram levantados na primeira etapa em Requisitos de Software. Se os requisitos de negócio são as necessidades do gestor, os requisitos de software são as necessidades dos programadores.
Nessa etapa ele irá mapear cada operação que o software deverá de desempenhar e também fará uma correlação entre essas operações, identificando quais são as dependências e os pré requisitos para que cada uma aconteça.
Para os desenvolvedores essa etapa pode ser chamada de Modelagem. Eles possuem técnicas e ferramenas, como a UML (Unifiel Modeling Language ou linguagem unificada de modelagem) para construir diagramas que cumpram esta etapa de modo eficiente.
Papel do desenvolvedor: deve fazer a modelagem do software de maneira adequada e detalhada, unindo todos os requisitos levantados em um único sistema.
Papel do gestor: deve aprovar a modelagem feita pelo desenvolvedor, autorizando o seguimento para a próxima etapa.
4ª etapa: Projeto do software
Aqui o desenvolvedor irá organizar o desenvolvimento do software de acordo com seu sistema de trabalho. Essas são algumas coisas que ele pode fazer nessa etapa:
Arquitetura da informação: organização dos menus e das telas de um modo lógico e racional, de modo que as funções do sistema possam ser facilmente encontradas pelos usuários.
Design da interface: escolha da linguagem visual que será utilizada. Definição do padrão de cores, modelos de ícones e tipografia padrão. Desenho do visual padrão para formulários e relatórios etc.
Plataforma: de acordo com as necessidades levantadas nas primeiras etapas o desenvolvedor irá determinar em que tipo de plataforma o sistema irá rodar. Pode ser em uma máquina local ou em um servidor com um determinado sistema operacional... Sistemas mais modernos podem funcionar na chamada núvem ou em plataforma web.
Linguagem de programação e banco de dados: serão escolhidas as linguagens de programação e suas bibliotecas, bem como os tipos de banco de dados que serão utilizados.
Papel do desenvolvedor: fazer as escolhas acima de modo a atender da melhor maneira possível os requisitos do sistema. Transformar cada função do sistema em uma tarefa a ser desenvolvida e estabelecer os prazos.
Papel do gestor: aprovar as escolhas feitas pelo desenvolvedor e fazer sua parte no que diz respeito à contratação de servidores, bancos de dados e outras demandas que possam surgir no planejamento.
5ª etapa: Desenvolvimento
Essa etapa é desempenhada quase que exclusivamente pelo desenvolvedor. Aqui ele irá escrever os códigos e executar as tarefas determinadas no planejamento.
O gestor/contratante pode ser acionado ocasionalmente para esclarecer alguma dúvida ou colaborar em alguma decisão importante sobre o formato final do sistema.
6ª etapa: Testes
Aqui os esforços voltam a ser compartilhados. Gestor e desenvolvedor passam a ter responsabilidades equivalentes.
Papel do desenvolvedor: realizar os testes de software de acordo com as metodologias e técnicas existentes para isso, corrigindo os erros e falhas que venham a ser encontrados.
Papel do gestor: fazer testes simulando situações reais de uso. Avaliar a usabilidade do sistema e sugerir pequenas correções que possam torná-lo mais eficiente.
7ª etapa: Entrega
Essa talvez seja a etapa mais sensível e requer mais do que nunca um esforço compartilhado do gestor e do desenvolvedor, pois é o momento em que o software será colocado em uso e passará a mudar a rotina das pessoas.
Todo software, ao ser adotado por uma empresa, causa algum tipo de mudança e é muito comum que as pessoas ofereçam resistência, podendo ocorrer até mesmo episódios de sabotagem.
Papel do desenvolvedor: acompanhar a instalação e oferecer treinamentos para as pessoas que irão utilizar o sistema.
Papel do gestor: acompanhar a instalação e orientar as pessoas sob sua gestão, vencendo eventuais resistências.
8ª etapa: Manutenção
Em algumas abordagens essa etapa é tratada como opcional. Porém é cada vez mais difícil pensar em um sistema que não precise de um processo de melhoria contínua. Todo desenvolvedor deve, obrigatoriamente, oferecer uma garantia pelo software que desenvolve, porém essa garantia é limitada.
A tecnologia tem mudado tão rápido que um software sem manutenção permanente se torna ultrapassado e perde sua utilidade muito rapidamente.
O esforço de manutenção pode incluir:
Suporte técnico à utilização do sistema, orientando os usuários sempre que necessário.
Correção de problemas que venham a surgir em decorrência do uso ou de mudanças na infra-estrutura de TI.
Atualização permanente, oferecendo correções de segurança e ajustes que garantam que o software esteja sempre atualizado e 100% funcional.
Evolução contínua, tendo sempre novas funções sendo desenvolvidas ou ajustes nas funções já existentes para se adaptar aos avanços da tecnologia e às eventuais mudanças no modelo de negócio da empresa que impliquem em mudanças em sua operação.
Papel do desenvolvedor: oferecer a possibilidade de manutenção englobando as funções apresentadas acima e se comprometer a desempenhá-la com eficiência.
Papel do gestor: compreender a importância da manutenção permanente e destinar recursos para a contratação desse tipo de acompanhamento, garantindo assim a eficiência do software ao longo do tempo.
MARI JR. Sergio. Processo de desenvolvimento de sistemas. Infonauta, 2019. Disponível em: <https://infonauta.com.br/sistemas-de-informacao/processo-de-desenvolvimento-de-sistemas>. Acesso em: 17 de jan. de 2022.