Estratégias para Desenvolvimento e Gestão de Aplicações

Por Marcos de Araújo

Com o aumento da competição devido a vários fatores econômicos e também a Internet temos um maior tempo gasto para a escolha de estratégias, plataformas, ferramentas, conversão e/ou migração de sistemas legados e utilização dos recursos e conhecimento disponíveis. De uma maneira geral temos para o desenvolvimento de projetos dois diferentes modos para gerenciamento os quais podemos denominar de “Projetos Oportunistas” e “Projetos Sistemáticos”.

Projetos oportunistas privilegiam o time to market visando o aproveitamento de uma oportunidade, como o próprio nome já diz, e em detrimento desta estratégia, pontos tais como qualidade e longevidade da aplicação em questão, metodologia, requerimentos detalhados, seleção de fornecedores e a estratégia de longo prazo de TI ficam em segundo plano e/ou muitas vezes são esquecidas momentaneamente.

Para os projetos Sistemáticos, ocorre o contrário. Como o time to market não é o fator chave de sucesso, todos os outros fatores são levados em consideração de maneira detalhada, e como consequência, temos aplicações para alta disponibilidade, escalabilidade e manutenabilidade.

Ambos – Sistemáticos e Oportunistas – são importantes para a organização e requerem um gerenciamento distinto, pois a demanda por rapidez e as grandes mudanças no mercado ditam muitas vezes as regras.

Pontos importantes:

É difícil muitas vezes, em um primeiro momento, analisar fatos relacionados à integridade e disponibilidade, que pode em um segundo momento fazer grande diferença para a empresa, requerendo investimentos em adaptações que garantam um pouco mais de qualidade e longevidade bem como a adoção da tecnologia em si.

O que ocorre usualmente é a adoção dos dois modos para a condução dos projetos, utilizando-se o mais apropriado em cada caso. Usualmente empresas pequenas e/ou jovens tem maior flexibilidade na escolha de tecnologias simples porque não tem uma base de sistemas legados estabelecida. Pode-se iniciar usando somente um tipo de tecnologia, por exemplo Microsoft, obtendo serviços baratos de terceiros e adquirindo-se pacotes para algumas soluções, no entanto, a maioria das empresas tem uma grande variedade de sistemas legado funcionando.

Dependendo do porte da empresa, para cada projeto pode-se encontrar uma solução tecnológica distinta, por exemplo Microsoft ou Java. Normalmente os pontos que devem ser considerados são os relativos à custo, risco e tempo para implementação.

Essa é a recomendação que faço, inclusive ponderando também alguns pontos importantes que são o custo da tecnologia, desenvolvimento, manutenção e treinamento e o risco de falhar na adoção de uma nova tecnologia ou do fornecedor não entregar o que foi acordado. Neste caso as questões à serem respondidas são: Quanto a empresa admite pagar? O que é aceitável? Qual a tolerância?

Os projetos também são divididos em departamentais, workgroup, corporativos e globais e diferem nos requerimentos, nível de disponibilidade, escalabilidade, integridade, manutenabilidade e concorrência.

Importante verificar as tendências tecnológicas baseadas nas “quedas de braço” dos gigantes do mercado – IBM, Microsoft, Oracle, etc., que ditam padrões, ocupam nichos específicos e são mais ou menos compatíveis com certas plataformas e objetivos de negócio no que tange a custo, tecnologia envolvida, tipo de solução (robusta, flexível, visionária, tradicional, etc.) e principalmente confiabilidade e continuidade.

Para projetos e-business, as empresas preferem adotar de um fabricante, soluções completas ou quase completas que incluem :

  • Desenvolvimento de conteúdo
  • Personalização e gerenciamento
  • Lógica de programação para Client Server e Web
  • Desenvolvimento de componentes
  • Mecanismos de colaboração e de processamento transacional
  • Integração de dados e aplicações

Estas podem ser obtidas separadamente (ou quase). Dependendo do tipo da empresa usuária da tecnologia (agressiva, média ou conservadora), as necessidades de TI serão atendidas diferentemente. Quanto a escolha de linguagens de desenvolvimento, algumas tem sua base de usuários em decréscimo a cada ano, enquanto outras crescem ou já alcançaram um patamar e estabilizaram em um ponto que as farão duradouras no mercado devido a sua maturidade técnica e comercial. De maneira geral, .Net e Java estão bastante maduras. Deve-se levar em conta na hora da adoção de qualquer ferramenta/fornecedor o quão alinhado com a filosofia adotada a ferramenta está.

As empresas devem balancear os esforços para aplicações WEB entre 3 diferentes modos/partes: Habilitação de aplicações legado na WEB, novos desenvolvimentos e novos desenvolvimentos que envolvam legado.

A primeira permite ganhos relacionados à tempo para desenvolver uma melhor solução para WEB; num segundo momento, o novo desenvolvimento é iniciado para a criação de um processo totalmente voltado para o e-business. Neste momento, o segundo modo é estratégico; Estas novas aplicações não tem a robustez, escalabilidade e disponibilidade dos sistemas legado, mas são flexíveis e usualmente conduzidas por projetos oportunistas.

A integração das aplicações, última parte/modo, é o ponto de chegada, por ser ideal a combinação das características de robustez de sistemas legados com a inovação tecnológica implementada. Existem várias ferramentas que podem ser usadas nestes projetos para a conversão de código que permitem que o desenvolvimento seja feito em linguagens proprietárias; mas nem todas as etapas de um projeto desta natureza podem seguir esta linha, por exemplo, acesso ao banco de dados, desenvolvimento de interface gráfica e middleware.

Um projeto com conversão de código tem os seguintes processos: Análise dos sistemas legados, tradução sintática dos códigos, tradução semântica, novos desenvolvimentos, integração dos programas novos com os convertidos e partes do legado, teste e treinamento do usuário, administração e suporte.

As empresas não podem esperar que as ferramentas de conversão de código automatizem completamente esta transformação. Falta no mercado, mão de obra qualificada que cubra todos os necessários pontos destas iniciativas. As empresas terão que se relacionar com integradores de sistemas terceirizados e consultores. O desafio será estabelecer os papéis e responsabilidades, baseado no conhecimento, dos recursos internos e terceirizados.

Profissionais e especialistas que conhecem o negócio e também a alta tecnologia fazem a diferença e devem ser mantidos. Quanto aos projetos B2B (A2A) – Application to application e B2C (A2U) – Application to User, estes requerem tecnologias diferentes pois as interações são diferentes e os propósitos também.

A interface gráfica, por exemplo, é previlegiada no B2C, pois clientes precisam ter uma aplicação user-friendly enquanto que uma aplicação B2B não necessariamente terá interações desta natureza. Da mesma maneira, aplicações globais precisam de suporte local de tributaristas, advogados e pessoal de marketing que traduzem as necessidades e particularidades dos mercados para os times de desenvolvedores locais.

De forma geral, nas grandes empresas, todos estes tipos de considerações são feitas diariamente, pois aplicações são adquiridas de fornecedores locais para projetos que visam uma oportunidade de mercado e portanto são considerados oportunistas bem como a estruturação pesada de projetos globais e suas plataformas exigem grandes interações do mercado Brasileiro para a requisição de modificações e adaptações baseadas em quesitos legais e fiscais.

Neste caso, estes projetos usualmente são sistemáticos. Integrações com sistemas legados, desenvolvimento terceirizado, capacitação de profissionais e adequação e escolha de novas tecnologias são também desafios constantes para a implementação de projetos de sistemas, com as respectivas implementações de novos processos para habilitar o funcionamento de novas plataformas de produtos.

 

Ramo de Negócios agradece Marcos de Araujo pela colaboração!

Dúvidas ou Sugestão para seu Ramo de Negócios? Entre em contato!

contato@ramodenegocios.com

Leave a Reply