Carreira

Ξ Deixe um comentário

Como será o futuro do desenvolvedor?

publicado por Cezar Taurion

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!

Autor

Cezar Taurion é head de Digital Transformation da Kick Ventures e autor de nove livros sobre Transformação Digital, Inovação, Open Source, Cloud Computing e Big Data.

Cezar Taurion

Comentários

You must be logged in to post a comment.

Busca

Patrocínio

Publicidade



Siga-nos!

Newsletter: Inscreva-se

Para se inscrever em nossa newsletter preencha o formulário.

Artigos Recentes