domingo, 21 de outubro de 2018

Seu projeto é sustentável?

#gestão #projetos #qualidade
Sustentabilidade é uma palavra muito sobrecarregada nestes dias. Geralmente, está associada ao meio ambiente e à conservação de recursos, o que é bom, mas e quando aplicada aos projetos de software? Nós levamos em conta a sustentabilidade em nossos projetos?




Fazer é mais fácil do que sustentar

Este artigo é propositadamente sem figurinhas e longo. Temos sido muito pictóricos em nossas tecnologias e projetos, e isto é como "fast food": Mata a fome sem alimentar! Precisamos raciocinar mais e a leitura, associada a necessária interpretação e análise do texto, nos ajuda a construir ou reformular conceitos.

Bom, vamos ao cerne da questão...

A minha afirmação, no título deste artigo, é verdadeira? Seria o ato de fazer mais fácil do que o de sustentar? Fazer todos nós sabemos! Criar, desenhar, codificar, comprar, instalar e entregar soluções é o que fazermos o tempo todo. Mas, é sustentar?

Tenho ouvido e presenciado diversas histórias de projetos bem sucedidos, cuja sustentabilidade fracassou. Os motivos são vários:

  • O mercado mudou;
  • Não tínhamos recursos para manter;
  • A plataforma evoluiu rápido demais;
  • A lucratividade ficou abaixo do que era esperado;
Isto é falta de sustentabilidade!

Sustentar um projeto, seja ele de software ou não, requer capacidade, investimento, disposição e planejamento: 
  • Capacidade de manter a solução funcionando, com as manutenções e evoluções necessárias, durante todo o seu ciclo de vida;
  • Investimento de recursos para manter a solução funcionando durante todo o seu ciclo de vida, incluindo períodos de baixo faturamento;
  • Disposição em investir os recursos e as capacidades para manter a solução funcionando durante o seu ciclo de vida, segundo o planejamento efetuado;
  • Planejamento prévio dos gastos de desenvolvimento e manutenção da solução durante o seu ciclo de vida, incluindo reservas e monitoração constante do faturamento e dos gastos.
Sustentar é difícil! Requer pensar, requer reservar, requer gastar e requer observar. E não existem métodos bonitinhos, cheios de práticas coloridas, que nos ajudem a evitar o trabalho duro.

Fatores que influenciam a sustentabilidade

Infelizmente, a velocidade é um fator que influencia negativamente a sustentabilidade. Me arrisco a dizer que são inversamente proporcionais! Quanto mais rápido fazemos algo, menos teremos capacidade para sustenta-lo. É assim mesmo? Por que? 

Eu nem vou usar o mantra "há sempre exceções" por que, na minha experiência profissional, não há! Sempre que um projeto foi desenvolvido "a toque de caixa" houve problemas com sua sustentabilidade que, geralmente, acabam com a sua vida útil. 

Ciclo de vida


Você notou que, quando enumerei os componentes da Sustentabilidade, citei algo chamado de "ciclo de vida"? É outro termo sobrecarregado, especialmente na área de TI, dando a entender que seria o tempo até o software estar obsoleto demais. Bem, esse é um dos componentes do ciclo de vida, mas não é o único.

Pense nisso: Você acabou de lançar um serviço, certo? Por quanto tempo ele será lucrativo? Por quanto tempo ele contribuirá, na proporção esperada, para o custeio e o lucro da Empresa? Quando será necessário descontinua-lo? Ninguém pensa nisso.

Tudo morre, tudo se transforma, por que seria diferente com o seu projeto? 

Existem projetos que dão excelente margem de lucro no início, que decaem rapidamente, tornando sua manutenção inviável. Também existem projetos cuja margem inicia lentamente, atinge um pico e decai longamente, embora com menor lucratividade, ainda são viáveis no longo prazo. São projetos de "cauda longa", em comparação com os primeiros.

Antes de sair por aí fazendo "lean canvas", você deve tentar estudar o mercado e a curva de lucratividade possível para o seu projeto. Muita gente ignora este importante componente do ciclo de vida de negócios.

A questão é: Um projeto é sustentável enquanto sua margem estiver dentro do planejado, ou seja, ele está rendendo o que você queria e, se houver queda no faturamento, está dentro do esperado.

Mas há outro componente no ciclo de vida de um projeto: manutenibilidade. Software envelhece, todos sabemos disso. Com o passar do tempo, problemas como "brittleness" aumentam o custo e o risco das manutenções. Outros fatores importantes que influenciam a manutenibilidade são: Falta de mão de obra especializada e falta de updates nas ferramentas utilizadas. 

A plataforma de suporte do seu projeto pode ficar sem manutenção, ou evoluir em ritmo alucinado, tornando os projetos feitos com as versões antigas obsoletos muito rapidamente. 

Desenvolver um software muito acoplado a determinada tecnologia ou versão de ferramenta, sem considerar o "roadmap" delas, é criar as condições para diminuir o ciclo de vida do seu projeto.

A tecnologia muda, as ferramentas entram e saem da "moda", e as pessoas mudam seus interesses, afinal de contas, ninguém conhece bem tudo, logo, abrem espaço para novas tecnologias e versões. Com isso, a mão de obra se torna escassa, mesmo que seja uma grande empresa, as pessoas mudam de equipe e de plataforma tecnológica, perdendo a capacidade necessária para sustentar determinados projetos.

Mercado volátil


O mercado consumidor é volátil. Que o digam serviços muito populares de outrora, que embora continuem a funcionar (e se reinventam) não atraem mais o mesmo público, por exemplo o de-li-ci-ous, que embora continue a existir, quase não ouvimos falar.

Uns sobem e outros descem. É assim que as coisas funcionam. No início dos anos 2.000, quase tudo mundo buscava coisas no Yahoo. Não existiam smartphones e a navegação era feita em PCs. Depois, surgiu o Altavista, mais eficaz e rápido nas buscas pela web. Tudo ia bem até que surgiu a Google... E o resto, você já sabe.

Alguém ainda tem e usa um Palm? Eu ainda tenho vários apps feitos para o Palm, usando o CodeWarrior. O que fazer com elas? 

Ok, isso acontece com grandes corporações, certo. Mas não aconteceria em menos escala! Claro que aconteceria! Acontece todo dia. O mercado muda, as pessoas mudam, a conjuntura política muda, a economia muda, a concorrência aumenta. Antigamente, não havia alternativa para o transporte partticular: Ou você tinha um carro ou usava um taxi. Surgiu o Uber e, logo depois, outros serviços. Hoje, você tem uma gama de prestadores de serviço que oferecem desde o "day rent", modalidade na qual você aluga um carro por um dia ou algumas horas, pegando em um local público, e até "pool" onde o motorista vai catando passageiros, ou seja, a popular "lotada".

Sabemos criar, mas não sabemos sustentar

Sei que parece redundante, mas é verdade. Já notou como existem metodologias e modismos para criar coisas? Lean canvas, Agile, Design thinking, Zero2Hero e várias ideias pouco ortodoxas que prometem (e cumprem) criar algo rapidamente. 

Mas e sustentar? Sustentar exige trabalho ANTES e DEPOIS de criar! Precisamos planejar o ciclo de vida do projeto, seus custos, sua lucratividade, e outros recursos necessários para que fique operacional e lucrativo pelo tempo esperado. 

Antes de criar, precisamos estudar! Estudar o mercado, estudar as alternativas de plataformas, estudar as ferramentas e insumos. Precisamos saber que, ao criar um projeto que utiliza determinadas versões de ferramentas, é necessário planejarmos e prepararmos uma atualização da nossa base de código.

Cleuton Sampaio, M.SC.








Nenhum comentário:

Postar um comentário