O Desenvolvimento de Sistemas Evoluiu?

Essa pergunta é uma provocação. Para aqueles que como eu trabalham com TI há tempos, a resposta é contraditória. Se por um lado a Internet e mais recentemente a computação móvel abriu um mundo de possibilidades, está cada vez mais complexa a construção de sistemas para atenderem as demandas do mercado.

Quem usa um smartphone ou tablet não se dá conta que tem nas mãos um computador com capacidade de processamento maior que PCs da época que comecei minha carreira profissional (ver The Future of the Smartphone). Entretanto para quem desenvolve uma aplicação corporativa para esses aparelhos tem um desafio que também é maior em relação ao que se fazia no tempo do DOS.

Fiz a ressalva de que a complexidade de desenvolvimento de aplicações corporativas aumentou porque a construção de aplicativos que exploram recursos do dispositivo (jogos e manipulação de mídias, por exemplo) é relativamente simples, como era de se esperar. A questão é que para as empresas realmente ganharem dinheiro com os usuários de dispositivos móveis elas necessitam oferecer serviços.

Um serviço na perspectiva atual, onde a computação se encontra em todos os lugares, seria uma forma de ganhar dinheiro com o atendimento das necessidades e desejos dos clientes. Para isso ela deve coletar, processar e extrair resultados de dados que trafegam a taxas cada vez mais altas e com um volume cada vez maior de atualizações. Isso leva a um conjunto de requisitos como disponibilidade e segurança que são difíceis de realizar. Por exemplo, o Facebook se destacou da concorrência por garantir um downtime muito baixo, graças a uma combinação de programação mais equipamentos capazes de prover essa confiabilidade.

Segurança é particularmente um aspecto difícil de implementar. Por mais que os fornecedores de sistemas operacionais e demais softwares usados para execução de sistemas trabalhem, sempre há brechas sendo descobertas. E esse aspecto é relegado tanto na formação profissional como na hora em que se negocia os recursos para desenvolvimento de aplicações.

O desenvolvimento de sistemas não evoluiu como esperado porque a computação atual demanda um conjunto de computadores rodando softwares especializados para ter no ar serviços que interessem aos usuários. Cada um desses computadores – servidores de banco de dados, application servers e dispositivos dos usuários (para ficar apenas nos mais óbvios) demandam ferramentas de programação específicas. Tudo isso tem que funcionar de forma coordenada e em caso de mudanças todos precisam atualizar-se de forma sincronizada. Ou seja, há muitos pontos de falha e lei de Murphy garante que estas acontecem…

Para simplificar a TI, deve-se começar com esse questionamento. Ao se buscar respostas para essa essa pergunta, ve-se aspectos que no dia a dia não estão claros para os profisisonais da área, mesmo os mais experientes. Um dos jargões da moda – “pensar fora da caixa” – realmente faz sentido nesta situação.

Comentar

  Country flag

biuquote
  • Comentário
  • Pré-visualização
Loading

Sobre o Autor

Experiência de 25 anos na área de informática, trabalhando com programação orientada a objetos desde 1990, arquitetura cliente-servidor desde 1994, aplicações web desde 1997 e arquitetura distribuída desde 1999. Conhecimento de bancos de dados relacionais, ambientes de desenvolvimento visual, criação de páginas Web, metodologias de desenvolvimento e administração de risco. Realizações em levantamentos de sistemas, avaliação de controles, coordenação de projetos de desenvolvimento, auditoria e consultoria.

Meses