Métodos ágeis, Lean IT e Cloud Computing: Pense Nisso

Vivemos um momento bem interessante na computação hoje em dia. A cada dia aparecem novas tecnologias (smartphones, tablets, sites etc) que parecem que nos sacodem e nos fazem refletir seriamente a maneira como o mundo corporativo pode (e deve) usar essas novidades para promover inovação e ganhar diferencial de mercado. Os ciclos de mudança parecem estar cada vem mais curtos e não ter agilidade de negócio pode ser fatal para uma empresa em segmentos competitivos.

As áreas de TI das empresas sempre foram pressionadas a acompanhar esse dinamismo do negócio, e via de regra existe uma grande dificuldade de fazer isso acontecer. As arquiteturas são complexas, a quantidade de energia e dinheiro para manter o que está rodando é muito grande e a palavra “inovação” muitas vezes causa um misto de calafrio e descrença em quem está suando a camisa para simplesmente manter a cabeça fora d’água. Uma relação de parceria entre TI e negócio acaba virando uma dicotomia complicada de resolver.

Felizmente, algumas coisas bastante interessantes apareceram nos últimos anos. Há alguns anos, o desenvolvimento utilizando o RUP (Rational Unified Process) e seus derivados imperava no mercado. Todas as grandes empresas tinham o seu processo customizado baseado no RUP. A forte estruturação, formalização e uma miríade de artefatos dava o conforto para as áreas de TI de que o melhor possível estava sendo feito. Pena que esse “melhor possível” muitas vezes não vinha acompanhada de resultados rápidos e eficazes para as áreas de negócio. Começou-se então a questionar o modelo, a falar de métodos mais ágeis para construir sistemas. O SCRUM apareceu como um framework bem interessante para implementar o desenvolvimento ágil nas empresas. Entre entusiastas e descrentes, hoje vejo com felicidade cada vez mais crescer a adoção do paradigma dentro de grandes empresas do Brasil e do mundo… mesmo em grandes corporações “transacionais” que achavam que métodos ágeis são muito bons para construir sites estáticos e coisas periféricas.

Complementar e paralelo a isso, o mercado começou a falar de Lean IT. Pegando carona no modelo de gestão da Toyota, o mundo de TI questionou-se se não havia como absorver parte dos princípios e filosofia dentro do próprio processo de desenvolvimento de software. A sinergia com as metodologias ágeis e o SCRUM saltou aos olhos. Duas frases provocativas me chamaram particularmente atenção: “Entenda o que é o valor percebido pelo cliente” e “Elimine desperdícios em toda a cadeia de valor”, onde “desperdício” é tudo aquilo que não é valor percebido pelo cliente. Excesso de documentação gera valor para o cliente? Como posso enxugar meu sistema de modo a enfocar e entregar extremamente rápido aquilo que realmente é vital para o meu negócio?

Agora parece que cloud computing chegou para ficar no mercado. O Gartner apontou em dez/2010 cloud computing como a principal prioridade das áreas de tecnologia das empresas. Muito interessante… quanto mais eu mergulho no tema, mais eu vejo que estamos indo na direção correta. Já percebemos que poderíamos tornar o processo de desenvolvimento mais ágil, que devemos enfocar no valor para o cliente e o negócio e que devemos eliminar desperdícios. Vamos refletir como cloud computing se encaixa nisso?

  • Infra-estrutura como Serviço (IaaS): infra-estrutura elástica, robusta, com custo proporcional ao uso e disponível em poucos minutos. Desperdícios eliminados: longos períodos para aquisição e setup de máquinas, realização de capacity plannings que levam a máquinas super-dimensionadas, custo de montagem e administração dessas máquinas.
  • Plataforma como Serviço (PaaS): além da herança dos benefícios da infra-estrutura, a utilização de componentes prontos para uso e a completa abstração de ambiente físico e de software para implantar aplicações que podem atender vazões de baixas a gigantescas sem se preocupar com o projeto disso. Desperdícios eliminados: projeto de arquiteturas físicas e lógicas, aquisição de stacks enormes de middleware para suportar altos volumes, custo de setup e tuning de toda essa infra-estrutura, custo de gerir a complexidade disso tudo ao longo do tempo.
  • Software como Serviço (SaaS): utilização de softwares prontos, escaláveis, pagando por usuário, sem se procupar com hospedagem e customização, podendo acessar de qualquer dispositivo que tenha um browser (desktops, notebooks, smartphones, tablets etc).  Desperdícios eliminados: todo o ciclo de construção, implantação e hospedagem da aplicação, administração dos servidores e clientes, aplicações de patches, updates de softwares etc.
A computação ficou complicada, e muitas outras complicações aparecem para “resolver” as complicações iniciais. Simplicidade é a palavra-chave quando falamos de cloud computing. Eliminar desperdícios, deixar as áreas de TI mais leves e enfocadas no negócio. Extremamente promissor! Claro que ainda existem inibidores e dúvidas no mercado com relação ao tema, mas não há dúvidas que estamos diante de algo diferente e que pode ajudar bastante a fazer o que muitos estão buscando há muito tempo: garantir que TI seja realmente um viabilizador de novos negócios para as empresas.
Metodologias ágeis, Lean IT e cloud computing: pense nisso!
Abraços e até a próxima!