Postagem em destaque

Procurando Profissional em Análise de Processos de Negócios, BPM, BPMS e Melhoria de Processos, para atuar na Região Metropolitana de Belo Horizonte?

Marco Gandra Brasileiro – Casado 41 anos - CNH B Nascido em Belo Horizonte e-mail gandraribeiro@gmail.com ...

Pesquisar neste blog

7 de mai de 2012

Como será o futuro do desenvolvedor?

Por: Cezar Taurion
Em: http://www.tiespecialistas.com.br/2012/04/como-sera-o-futuro-do-desenvolvedor/


Outro dia recebi um e-mail muito interessante de um desenvolvedor, que recém-formado, se questionava sobre que tecnologias deveria se dedicar nos próximos anos. Debatemos o assunto pelo Skype e creio que um pequeno resumo do debate pode ser de interesse para outros desenvolvedores que estejam diante da mesma dúvida: como será o futuro do desenvolvedor?

Bem, minha bola de cristal dá “tela azul” toda vez que tento fazer previsões, mas podemos discutir alguns cenários que já estão claramente delineados.
Os desenvolvedores estão às voltas com uma verdadeira convergência tecnológica, onde Cloud Computing, mobilidade, social business, Big Data e Internet of Things requerem novas habilidades para o desenvolvimento de aplicações inovadoras. As empresas esperam que sejam desenvolvidas novas aplicações para novos dispositivos, para resolver novos tipos de problemas.

O desafio das empresas e de seus desenvolvedores é de criar estas novas aplicações, ao mesmo tempo em que devem manter as atuais funcionando sem interrupções. Em muitas organizações isso significa manter programas Cobol e escrever aplicações PHP ou Ruby simultaneamente.

As aplicações que farão diferença em um mercado altamente competitivo criam grandes oportunidades, mas ao mesmo tempo, geram novos desafios. Desenvolver uma aplicação usando interfaces touch-screen ou de reconhecimento de voz, que interaja com tecnologias de mídia social como Facebook ou Twitter demandam skills, métodos e processos diferentes. Por exemplo, a computação social demanda skills sociológicos e antropológicos para criar novos processos que atendam à demanda das interações sociais que os usuários desejam. Não espero que os desenvolvedores estudem a fundo antropologia, mas as equipes de desenvolvimento deverão ter uma multidisciplinaridade de skills que trabalharão em conjunto. Assim, métodos e práticas de desenvolvimento colaborativo serão fundamentais para a criação destas novas aplicações.

Também é desafiadora a criação de aplicativos que interajam com tecnologias de Big Data como Hadoop e MapReduce. Juntando com mobilidade e social business teremos aplicações socialytics (social business + business analytics) sendo acessadas por dispositivos móveis como smartphones e tablets.

Hadoop é um desafio à parte. Hadoop é um conjunto de diversos projetos Open Source desenvolvidos para trabalhar com grandes volumes de dados, de forma paralela. Para termos uma ideia do Hadoop pense que ele contém projetos como o Hadoop/MapReduce que é um framework Java para processamento paralelo, HDFS que é um sistema de arquivos distribuídos, Pig (linguagem de programação), Hive (linguagem similar ao SQL, chamado de HiveSQL), e diversos outros. Uma visita ao http://hadoop.apache.org/ mostra os diversos projetos associados ao Hadoop.

Cada projeto não necessariamente se integra com os demais e, portanto, é necessário um exaustivo trabalho de integração. Surgem então as distribuições Hadoop, que atuam mais ou menos de forma similar às distribuições Linux. Existem várias distribuições, cada uma com características diferentes. Entre as mais conhecidas temos a Cloudera, a InfoSphere BigInsight da IBM (que usa GPFS ou General Parallel File System) como alternativa ao HDFS, e DataStax, que usa Cassandra ao invés do HDFS. Portanto, muito estudo e trabalho pela frente!

O recente CES 2012 (Consumer Electronics Show) mostrou mais alguns futuros desafios para os desenvolvedores. Os interfaces estão saindo rapidamente do tradicional contexto teclado+mouse para multitouch, voz, gestos, reconhecimento facial e mesmo “eye tracking”. Já temos casos de sucesso: o Siri do iPhone 4S sinaliza que os usuários começarão a interagir com seus dispositivos através de comandos de voz. A Samsung anunciou um conjunto de APIs abertas e um SDK (Software Development Kit) para desenvolvimento de aplicações para sua Smart TV. Recentemente realizou uma competição para desenvolvedores criarem aplicativos para esta plataforma e coisas muito interessantes foram geradas. Vejam em http://www.samsungsmarttvchallenge.eu/. A LG anunciou o Gesture Cam, que permite o controle da TV através de gestos, de forma similar ao Kinect do Xbox360. Provavelmente em breve as diferenças entre PCs, TVs, smartphones e tablets serão apenas o tamanho da tela, uma vez que todos usarão os mesmos interfaces.

A Internet das Coisas (Internet of Things ou IoT) também abre novas frentes. Estamos falando de coisas como eletrodomésticos, automóveis, ativos das empresas (edifícios inteligentes, por exemplo) e infraestrutura das cidades conectadas à Interrnet e interagindo entre si e com os aplicativos corporativos. Quando adicionamos inteligência (leia-se software) aos objetos e eles começm a interagir e negociar entre si, isso nos abre inúmeras oportunidades de novos negócios. Claro que as empresas vão olhar esta possibilidade de obter vantagens competitivas com atenção. Um exemplo é a criação de uma logistica muito mais inteligente que a maioria das empresas tem hoje. Imaginem uma “self-controlled logistics”!

Bem, o que os executivos demandarão? Novos aplicativos que explorem a IoT e que por sua vez, demandam novos skills dos desenvolvedores como EDA (event-driven architecture). Um texto basico sobre EDA pode ser encontrado na Wikipedia.

Claro, .NET e Java continuarão a dominar o cenário das linguagens usadas nas empresas, pelo menos no horizonte previsível. Mas começam a surgir espaços para novas linguagens como Perl, Ruby ou PHP. Por brincadeira consultei algumas vagas de desenvolvedores para o Facebook e encontrei de maneira geral demandas por profissionais que conheçam Java e/ou C++ e tenham conhecimento de PHP, Perl ou Python, além, é claro de Hadoop.

Este cenário leva a outra discussão: até que pontos os métodos ágeis de desenvolvimento substituirão ou complementarão os métodos de desenvolvimento mais tradicionais? Me parece que os métodos ágeis estarão mais próximos da velocidade de resposta que os negócios demandam dos desenvolvedores. Além disso, está claro que os desenvolvedores nunca terão todas as respostas para as inúmeras demandas dos seus usuários. Aí é que entra o conceito das aplicações mashup. Os usuários passarão a também desenvolver pequenas aplicações em cima das APIs geradas pelos desenvolvedores. Veremos os desenvolvedores-cidadãos! E isso tende a se acelerar a medida que a geração digital se insere no mercado de trabalho. Eles entram nas empresas já com vários anos de prática na criação de apps para smartphones e tablets (são verdadeiros app entrepreneurs) e vão querer usar seus skills para desenvolver apps para interagirem com as aplicações corporativas.

Na minha opinião, as aplicações serão cada vez mais heterogêneas em tecnologias, misturando diversas linguagens no mesmo sistema. Além disso, novas funcionalidades deverão ser incorporadas de um dia para o outro. SOA (service-oriented architecture) e os métodos SODA (service-oriented development of applications) são a resposta.
Por tudo que debatemos, nosso amigo ficou mais preocupado ainda… Por outro lado enxergou que terá, como desenvolvedor, uma longa carreira pela frente!

4 comentários:

  1. Nao entendo nada de sua area, mas poderia por favor me dizer como sera a conversao para textos digitalizados em uma linguagem, e hoje arquivados em bilbiotecas colossais, com essa rapidez de novas tecnologias? Exemplo quem guardou arquivos em disquetes ou em outro tipo de pacote, hoje nao existente, como tera acesso a essa informacoes?

    ResponderExcluir
    Respostas
    1. Olá Ornilo Lundgren,

      Obrigado pela interação. Sua ponderação é muito pertinente. Há vários documentos em mídias em desuso arquivados nas empresas: disquetes (vários modelos), Fitas (vários modelos), HD com interfaces obsoletas e até mesmo o bom e velho PAPEL. Não há mágica, você terá de ter leitores adequados dessas mídias para que possa ser possível recuperar o seu conteúdo. Esse é o primeiro passo, contudo a próxima pergunta será: O que fazer para preservar esse patrimônio digital? Vejo duas saídas para essa resposta, primeiro é a contratação de um serviço de armazenamento na nuvem (servidores que estão na Internet), temos como exemplo o recém-lançado Google Drives, que permite armazenamento gratuito de 5GB, caso esse tamanho seja pouco, você poderá contratar mais espaço, veja mais informações em https://drive.google.com/. Mas, se esse conteúdo necessitar ser armazenado e recuperado de formar estruturada, a saída e a adoção de um sistema GED (Gerenciamento Eletrônico de Documentos).

      Isso é apenas o básico, o diferencial atualmente para uma corporação que necessite tramitar e recuperar documentos que passam em vários departamentos, se dará com a adoção de GED casados com BPMS. Bom explicando: O BPMS (Business Process Management Suite) é um conjunto de sistemas responsáveis por um ambiente computacional que permitirá visualizar e executar processos (fluxogramas) de forma inteligente, garantindo a gestão das atividades via Workflow, com formulários automatizados e execução regras de negócios explicitas, com possibilidade de auditoria e aperfeiçoamento fácil em todas as etapas do fluxo. O GED garantirá que os documentos que passarem por esses processos serão armazenados adequadamente.

      O papel por sua vez poderá ser “scanneado”, o texto será extraído via tecnologia de OCR, responsável por interpretar caracteres em imagens digitalizadas de texto e transformá-las em texto editável e para o gerenciamento pode-se usar o GED e o BPMS como comentado anteriormente.

      Bom, o caminho não é simples, mas há possibilidades.

      Grande abraço,

      Marco Gandra

      Excluir
  2. Marco,
    Seu artigo esta muito bom, a questão é de fato pertinente ao profissional de software, sobretudo o desenvolvedor. Creio que hoje, qualquer decisão tomada, será uma boa decisão sob a perspectiva de de qual plataforma de desenvolvimento a seguir e acredite, ate mesmo o cobol tem legado para mais algumas aposentadorias a vencer.


    Até mais
    Flavio

    ResponderExcluir
  3. Amigo obrigado pela interação, contudo o crédito sobre ao artigo pervence à Cezar Taurion.

    Grande abraço,

    Marco Gandra

    ResponderExcluir