Desenvolvimento personalizado e Inovação em TI (por Daniel Oliveira, MVP)

 

Recentemente assisti duas excelentes palestras do David Chappell: The Case for Custom Development e IT Innovation: What it is and how to get more of it. Convido vocês a fazerem o mesmo.

Neste post gostaria de colocar um resumo das duas palestras junto com algumas opiniões pessoais.

Ninguém questiona o valor de TI em uma organização, mas, se pensarmos: porque TI é importante para as organizações? Por causa das aplicações e seus dados!

Empresas que querem estar na vanguarda precisam ser boas em criar aplicações customizadas! Porque? Por que TI realmente tem valor e realmente ajuda uma organização a estar na vanguarda se estiver alinhada com a estratégia de negócio da empresa.

Vamos definir estratégia de negócio: Criar vantagem competitiiva! Para criar vantagem competitiva você precisa fazer diferente, precisar de algo diferente e é ai que entram as aplicações customizadas apoiando o negócio e a estratégia da empresa.

Mas por que TI?

Praticamente todas as estratégias de negócio contém algum componente de TI. Vamos olhar uma lista com as maiores inovações dos últimos 30 anos segundo a Wharton School:

  1. Internet, broadband, Web browser, and HTML
  2. PC/laptop computers
  3. Mobile phones
  4. E-mail
  5. DNA testing and sequencing/Human genome mapping
  6. Magnetic Resonance Imaging (MRI)
  7. Microprocessors
  8. Fiber optics
  9. Office software (spreadsheets, word processors)

10. Non-invasive laser/robotic surgery (laparoscopy)
É fácil ver, todas as inovações acima listadas são baseadas em TI. Algumas são puro software como email e Office, outras só existem por causa de TI como Ressonância Magnética (MRI). Assim fica fácil de entender porque as estratégias das empresas tem algum componente de TI.

Pois bem, se para criar vantagem competitiva precisamos desenvolver aplicações customizadas, precisamos ser bons em desenvolver aplicações customizadas. E quem pode nos ajudar isso é um processo eficaz de Application LifeCycle Management (Gerenciamento do Ciclo de Vida da Aplicação). ALM é diferente de ciclo de vida de desenvolvimento de software (SDLC em inglês). ALM, é na verdade, muito maior do que SDLC. Podemos definir que ALM cobre as seguintes áreas: Governança, Desenvolvimento e Operação.

Governança

É na fase de governança que você define qual aplicação deve ser criada, por que deve ser criada. O importante aqui é definir quais aplicações trarão valor ao negócio da empresa e de preferência que tragam inovação, caso contrário serão só aplicações obrigatórias para uma eficiencia mínima na operação da empresa. Outras decisões importantes devem ser tomadas neste momento, por exemplo, quais aplicações continuam trazendo valor à empresa? Quais aplicações podem ser descontinuadas?

A questão é: quem decide o que criar, no que investir, e o que descontinuar? Não é a TI, é o pessoal de negócio! Porque? Porque eles conhecem o negócio da empresa, eles sabem o que deve ser feito para posicionar a empresa na vanguarda do mercado. É claro que é vital a participação da TI apoiando essas decisões, mas não tomando-as.

Fica claro aqui que o pessoal de negócio é que define os investimentos feitos em TI, pois bem, para eles investirem precisam ter confiança, o setor de TI precisa ter credibilidade. Como ter credibilidade? Executando as próximas duas fases corretamente: Desenvolvimento e Operação.

Desenvolvimento

Aqui sim entramos no SDLC, definimos documentação técnica, processo de construção da aplicação, processo de build, qualidade de código, testes e outras disciplinas que sabemos que são necessárias no SDLC.

Nos últimos anos vimos duas grandes melhorias no mundo de desenvolvimento de software: Integrated Development Tools e desenvolvimento iterativo.

Não confunda integrated development tools com integrated development environment (IDE). Quando falamos de IDE estamos falando de um ambiente para desenvolvedores trabalharem, quando falamos de Integrated Development Tools estamos falando de diferentes aplicações usadas por diferentes papéis em um projeto e estas se integrando. Um exemplo, o ambiente de desenvolvimento estar integrado com o de testes, assim o desenvolvedor tem visibilidade do que foi testado, o que deve ser testado na próxima release e bugs que tragam informações que permitam uma correção mais eficaz.

Se eu pudesse reduzir sucesso em desenvolvimento à uma fórmula seria: Ferramentas Integradas (verticalmente e horizontalmente) + Processo Ágil de Desenvolvimento (Scrum) + Boas Práticas de Engenharia de Software (CI, TDD, ...).

Operação

Pois bem, tendo criado as aplicações inovadoras e que colocarão a empresa na vanguarda, agora um passo vital e negligenciado: colocar a solução em produção. É muito mais fácil uma empresa decidir investir em desenvolvimento do que em infraestrutura, mas o que acaba acontecendo é que aquela aplicação criada pode se tornar um fracasso se não existir uma infraestrutura robusta que suporte a execução dessa aplicação, todo o valor que ela agregaria ao negócio da organização vai pelos ralos.

Será que vale a pena?

Lendo tudo aquilo acima fica a dúvida: será que vale o trabalho? Será que inovar realmente faz diferença? Não é melhor simplesmente comprar soluções prontas?

A resposta é: sempre que possível compre soluções prontas, mas para o core business, para o coração da empresa, desenvolva aplicações customizadas, só assim ter o benefício da inovação:

Figura 1 - Janela de Diferenciação

O que vemos na figura 1 é justamente isso, o que as primeiras empresas a inovar ganham, que é vantagem competitiva sobre seus adversários. Depois de um tempo o que era inovação torna-se obrigação, a empresa daquele setor que não tiver essa oferta/funcionalidade/produto/serviço está fora do jogo!

Um ponto importante sobre inovação é: Inovação é muito mais do que uma idéia inovadora. Neste ponto o David Chappell tem um modelo que ele chamou de I3 Model: Idea, Implementation e Infusion.

Idea: pensar em algo diferente que agregue valor à estratégia da empresa;
Implementation: tornar a idéia real, implementar aquela idéia;
Infusion: fazer com que as pessoas utilizem o que foi criado.

Quem quiser saber mais sobre inovação recomendo o livro: A Estratégia do Oceano Azul. Neste livro esse tópico é muito bem abordado e quero compartilhar uma das coisas do livro que é, como você cria algo inovador, como você cria uma oferta diferente do que o resto do mercado (O Oceano Vermelho) está oferecendo. Através de quatro ações. Defina os atributos do seu serviço/produto e aplique a seguinte metodologia: destes atributos o que deve ser reduzido, o que deve ser eliminado, o que deve ser criado e o que deve ser elevado, conforme a figura 2.

 

Figura 2 - Modelo das quatro ações

É isso, recomendo muito assistir às duas palestras e ler ao livro citado.

Abraços.

Daniel Oliveira é MVP e trabalha como Consultor em ALM na TechResult.Seu email de contato é d_foliveira@hotmail.com , twitter https://twitter.com/dfaoliveira e blog https://dfaoliveira.wordpress.com.