Image Image Image Image Image
Scroll to Top

Topo

10

abr
2012

Sem Comentários

Em Blog

Por Allison

Como será o futuro dos desenvolvedores?

Em 10, abr 2012 | Sem Comentários | Em Blog | Por Allison

Fonte: Cezar Taurion

Outro dia recebi um e-mail muito interessante de um desenvolvedor recém-formado, que se questionava sobre quais tecnologias deveria se dedicar nos próximos anos. Debatemos o assunto 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 as voltas com uma verdadeira convergência tecnológica, na qual 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, com a finalidade de resolver novos tipos de problemas.

O desafio das empresas e de seus desenvolvedores é de criar estas novas aplicações, ao mesmo tempo 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 midia social, como Facebook ou Twitter, demandam habilidade, métodos e processos diferentes. Por exemplo, a computação social demanda habilidades sociológicas e antropológicas 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 habilidades 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 o Hadoop e o MapReduce. Juntamente com mobilidade e social business, teremos aplicações socialytics (social business + business analytics) sendo acessadas por dispositivos móveis, como smartphones e tablets.

O Hadoop é um desafio à parte, pois é 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 e MapReduce, que são 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 site mostra os diversos projetos associados ao Hadoop.

Cada projeto não se integra, necessariamente, 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 caracteristicas 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. As interfaces estão saindo rapidamente do tradicional contexto teclado+mouse para multitouch, voz, gestos, reconhecimento facial e até mesmo “eye tracking”. Já temos casos de sucesso: o Siri do iPhone 4S sinaliza que os usuarios 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. A empresa realizou recentemente uma competição para desenvolvedores criarem aplicativos para esta plataforma e coisas muito interessantes foram geradas. Vejam em aqui. 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 as mesmas 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 da 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çam a interagir e a 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 novas habilidades 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ça a surgir espaço 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 uma outra discussão: até que ponto 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 inumeras 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 à 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 suas habilidades 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. O 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!

Redes Sociais

Tags | , ,

Enviar um Comentário