fbpx
Veja como desenvolver um projeto de software

Veja como desenvolver um projeto de software

Gerenciar com excelência os fatores críticos de um projeto de software (tempo, custos e escopo) depende diretamente de uma sistemática de trabalho repetível e que permita que todos os membros da equipe saibam o que fazer e em qual momento atuar. Nesse espectro, ter em mãos um bom roteiro para desenvolvimento de software sempre ajuda a evitar estouro de prazos, reorganização de documentações, ajuste de comandos programados incorretamente etc.

Se você é gerente de TI e está com dificuldades para gerenciar seus projetos de forma lógica e sequencial, vamos te ajudar mostrando um rápido passo a passo para desenvolver um projeto de software eficiente, incremental e que facilite entregas contínuas. Confira agora:

Passo 1: coletando os dados mais relevantes ao seu projeto de software

Para realizar esse passo, é importante atentar-se às seguintes perguntas:

  • Que tipo de projeto estamos tratando?
  • Como iremos esquematizá-lo? (rascunhe as funcionalidades do projeto antes de pensar em design)
  • Quais as áreas envolvidas?
  • Nosso time tem uma ferramenta para integrar equipes no processo de desenvolvimento?
  • Qual o prazo estipulado, quais os custos estimados e qual o escopo idealizado?
  • Quais são as premissas?
  • Vamos precisar de lidar com quais restrições?

Passo 2: organizando a Estrutura Analítica de Projetos (EAP)

De posse de todas as informações necessárias para criar seu projeto (advindas de sucessivas reuniões com stakeholders – desenvolvedores, time de infra e cliente), é chegada a hora de montar um paradigma que sirva indistintamente para diversos projetos. As fases de levantamento de requisitos, desenvolvimento do software, homologação, teste e implantação devem ser delineadas e subdividas em componentes menores e facilmente gerenciáveis. Quem trabalha com metodologias ágeis como o Scrum sabe bem quanto os Sprints auxiliam a monitorar o andamento dos trabalhos da equipe.

Passo 3: criando o caminho crítico do projeto

Em um projeto, uma atividade depende de outra para se realizar. Pintar um muro, por exemplo, é algo que só pode ser feito quando a parede tiver sido construída. Assim, para se organizar melhor e não se perder no oceano de iniciativas de um projeto de software, é preciso delinear os vários caminhos possíveis que conectam as inúmeras atividades de um projeto, bem como entender quais os caminhos possíveis para realização de entregas contínuas e que agreguem valor ao cliente.

O caminho crítico é o caminho mais longo que um projeto pode ter. Trata-se de uma estimativa de prazos máximos de cada atividade, cujas durações somadas culminam no prazo total do projeto. Definir quais as sequências no avanço de cada etapa, as folgas de cronograma e as alternativas em caso de erros são detalhes fundamentais para o sucesso de um projeto.

Cerberon

Passo 4: fixando papéis e responsabilidades a cada membro da equipe

É aqui que os problemas começam a surgir. Em geral, as atribuições entre os membros são segmentadas com tamanha rigidez que, às vezes, um único projeto fragmenta-se em dezenas de microprojetos — que não se comunicam jamais entre si. Isso resulta em bugs sucessivos na fase de implantação, módulos não suportados pelos servidores no dia a dia do uso do software, entre outros produtos melancólicos da Torre de Babel da fase de produção.

Nessa seara, portanto, é essencial que todos os membros da equipe participem diretamente de todas as discussões. Desde a definição dos requisitos até a prova de conceito e posterior implantação, tudo deve ser pensando em conjunto pelos times de desenvolvimento e operações, diluindo a cisão tradicional existente entre profissionais. É isso que a cultura DevOps se propõe a fazer.

Passo 5: materializando o modelo traçado em conjunto com cliente, desenvolvedores e membros do time de operações

Uma vez criada uma estrutura analítica e definidas a duração e as relações de dependências entre atividades, é hora de salvar esse modelo para futuras aplicações, além de começar o trabalho de implementação, propriamente dito. Vale alertar que, na gestão de TI moderna, é fundamental trabalhar com abordagem incremental, em que novos insights e possibilidades vão emergindo ao longo da materialização do projeto de software.

Passo 6: validando conceitos

A lógica do modelo efetivamente funciona? É isso que será verificado na fase de validação. Procure trabalhar com prototipagem na nuvem para alinhar melhor o ambiente de produção e o ambiente em que o software efetivamente vai rodar.

Passo 7: monitorando problemas

É preciso ter atenção nos eventuais problemas relatados pelos usuários no dia a dia de uso do software. Essa retroação é chave para melhoria contínua dos modelos já salvos.

Dicas fundamentais para desenvolver um bom projeto de software

a) Privilegie a adoção de padrões abertos

Integração e interoperabilidade são palavras-chaves no desenvolvimento de um projeto de software de sucesso. Com a imensidão de novos apps, dispositivos e plataformas, quanto maior a compatibilidade de um software, menor a complexidade das codificações a serem realizadas em futuras iterações, menores os custos com novas versões e menor esforço de toda a equipe para atualizar projetos já existentes. A adoção de padrões abertos certamente facilitará esse processo.

b) Enxergue os requisitos como um processo incremental e passível de mudança mesmo à beira do release oficial

A vida nos traz apenas 2 certezas:

1) A vida não é infinita;

2) Seu cliente vai mudar os requisitos do projeto depois que toda a fase de criação do protótipo estiver concluída.

Não adianta entrar em conflito com o cliente ou ignorar suas observações. Muitos gerentes de TI, embebidos nas metodologias tradicionais de desenvolvimento de software, têm dificuldades para trabalhar com entregas contínuas e iterações dinâmicas que mantenham seu projeto em constante estado de metamorfose. Mas isso é algo necessário, uma vez que dados de desempenho, integrações, compatibilidade e usabilidade podem sofrer alterações à medida que a experiência de usuário na fase de prototipagem fornecer novos insights de utilização da aplicação.

Para desenvolver um projeto de software com baixo custo, menos refações e mais assertividade às expectativas dos usuários, é altamente recomendável trabalhar com metodologias ágeis de desenvolvimento, como Scrum e DevOps.

c) Aposte na integração entre as equipes de desenvolvimento e operações no processo de definição dos requisitos, desenvolvimento, testes e implantação

Problemas de diálogo na “passagem do bastão” são comuns nas empresas de TI: documentação insuficiente para promover melhorias em caso de bugs, scripts com erros, incompatibilidade de versões de software, aplicações que só rodam no ambiente de produção, alto tempo de espera por problemas com servidores, entre muitos outros colapsos decorrentes da falta de integração entre todos os stakeholders, sobretudo entre o time de desenvolvimento e o de operações. A cultura DevOps nasceu justamente para solucionar esse gap, mediante as seguintes mudanças de postura no processo de concepção do software:

  • Planejamento integrado de todas as atividades desde a definição dos requisitos;
  • Padrões utilizados no desenvolvimento devem levar em consideração as pontuações feitas pelo time de operações (as alterações devem ser efetuadas com o site em uso, a documentação deve ser enxuta mas suficiente para permitir melhorias, deve haver integração com ferramentas de monitoramento etc.);
  • Os processos de deploy devem ser automatizados para assegurar aumento de produtividade, tornar as implementações repetíveis e com menor chance de erros;
  • As melhores práticas de desenvolvimento devem ser utilizadas também pelo time de operações (como testes automatizados, uso de sistemas de controle de versão distribuídos, etc.).

Fim de papo por hoje! Siga-nos nas redes sociais e continue por dentro das metodologias ágeis de desenvolvimento, dicas de projeto de software e ferramentas de automatização de processos. Até breve!

Contato
Contato

Deixe um comentário