QCon São Paulo 2017

Ano passado tive a oportunidade de participar no The Developers Conference e na AWS Summit São Paulo. Para estrear 2017 cheguei com os dois pés no peito da QCon! 3 dias de evento começando na última segunda-feira de abril. Oportunidade para agregar mais em tudo, tanto no profissional como na vida pois não tem só assuntos estritamente técnicos, mas também sobre gestão de pessoas e até política (chegaremos lá).

Self honesta com o famoso letreiro
Tópicos da postagem:
Assim como na TDC, a QCon separa cada dia por trilhas sendo que no primeiro dia teve:
  • Culturas de engenharia e equipes de alto desempenho.
  • Arquiteturas que você sempre quis conhecer.
  • Java e JVM: Inovações no ecossistema e linguagem.
  • Desenvolvimento front-end no estado da arte.
  • Solutions Track 1 de 3.
Antes de começar as trilhas, rola abertura e keynote sendo que no dia 1 começou bem interessante com a apresentação do Jim Webber sobre The Panama Papers, Graphs and Data Science: Unravelling the Shady World of Offshore Finance One Data Structure at a Time.

Jim Webber mostrando a pilha de soluções utilizadas no projeto
Praticamente de bate-pronto ele começou a apresentação explicando sua visão política que atualmente é socialista (vide página 2), embora saia do propósito central do evento, deu um tempero diferente na apresentação causando até um rebuliço nas redes sociais (foi possível acompanhar no aplicativo desenvolvido especificamente para o evento). Ele explicou por cima como foi desenvolvida a solução para processar 2,6 TB de dados totalmente desconexos detalhando arquitetura, bibliotecas, frameworks e projetos open-source usados para mastigar tudo isso a fim de prover a ferramenta:
Um outro detalhe fora da parte técnica foi que durante a apresentação teve um momento que ele perguntou esperando que ninguém levantasse a mão se alguém tinha offshore, só que um único sujeito levantou. No final, teve abertura pra perguntas e o tal sujeito explicou o porquê tinha uma offshore e perguntou pro Jim se ele sabia que alguns países aceitavam (acho que foi isso), mas enfim, momentos que marcaram de fato o começo do evento!
Cada sala tinha o nome de alguém importante para a computação e por que não do mundo! Jogada sensacional do pessoal da InfoQ.
Antes de efetivamente começar as apresentações, em algumas salas, ficava um "whoami" da sala no telão.
Depois do keynote, começaram as trilhas e antes do evento eu já tinha feito todo o agendamento pelo aplicativo do evento. Para não ficar muito extenso a postagem, vou colocar apenas as apresentações que participei e um breve comentário no final:

A moda é a programação reativa funcional, entendi que é algo definitivo, ou seja, é necessário mudar o modo de se programar imperativamente trabalhando efetivamente com fluxos (streams) de dados assíncronos e orientado a eventos. Isso tem uma série de implicações boas e ruins como a dificuldade de debugar e de até criar mais linhas de código para realizar algo simples como o famoso CRUD, contudo os ganhos são substâncias e as empresas perceberam isso, pelo menos as que participaram do evento e em especial a ifood e o NuBank. Algumas linguagens estão correndo atrás do atraso e o Java é uma delas com toda a sua burocracia e complicação para liberar algo graças ao JCP. O projeto MicroProfile entende esse processo de liberação como um problema e propôs um processo contínuo de melhoria e focada para microserviços. Uma hora ou outra a Oracle terá que lançar uma versão nova do Java sem a tal retrocompatibilidade, justamente para evoluir e acompanhar a evolução do mercado rapidamente, embora muito provavelmente a segurança e estabilidade da linguagem que as empresas tanto confiam sejam afetadas. É bom pensar entre a tipagem estática e a dinâmica, os ganhos da primeira com a segunda são interessantes e até cruciais, mas pode variar muito. Container com Java/JVM não é fácil e exige testes, justamente pelo JDK não estar preparado para trabalhar 100% com containers e a ideia é que ele esteja apto na versão 9 e de repente só na 10, o que justifica a preocupação e o cuidado.

Tem que pensar diferente e lutar contra a inércia.



No segundo dia teve as seguintes trilhas:
  • Construindo e evoluindo produtos de sucesso.
  • Ciência da computação aplicada.
  • Resiliência na prática: performance com qualidade e segurança.
  • Microservices e arquiteturas API-first.
  • Solutions Track 2 de 3.
Como no dia anterior, antes do início das trilhas teve o keynote do Ryan Huber sobre Security as Development.

Ryan explicando sobre go-audit.
Ao contrário do dia anterior, esse foi mais light e não tão pesado tecnicamente porém focado nos porquês de se preocupar com segurança em ambiente corporativo em função do próprio case do Slack. O fato é o seguinte, embora seja algo evidente o cuidado que todas as empresas precisam ter com seus dados e produtos, muitas empresas priorizam o que de fato traz valor ao usuário em detrimento total da segurança, praticamente um negligência.

Após o keynote, tomei aquele café honesto e justo e consultei no aplicativo da QCon minha agenda pré-programada com as apresentações. Marquei as seguintes:
Quando seu server não tem SNMP e uma merda só é percebida quando um cliente notifica você!

Muitas vezes questionamos qual solução comprar, qual é a mais madura para determinada situação, enfim, uma série de coisas para termos algo seguro, confiável mas que junto com isso traz consequentemente muito custo, tanto a nível de suporte como de licença de uso e mão de obra especializada no determinado produto. Por que não partir para in-house software? Lógico, com sensatez, muitas vezes é melhor até em função de uma equipe bem entrosada, sênior e com bom conhecimento das ferramentas open-source.

Em um processo de troubleshoot quem nunca quis saber o fluxo completo da mensagem trafegando no sistema distribuído a fim de descobrir onde ocorreu erro para o tal cliente? Existem muitas estratégias como atribuir uma chave/valor no cabeçalho HTTP que sirva como meio de associação para todo o tráfego da mensagem ou até mesmo algo no payload da requisição, isso varia. Além do rastro ser bem definido, é possível por meio de uma regra inteligente termos noção do tempo de processamento de cada nó, execução de queries (Hibernate Statistics é um bom exemplo), requests a web services fora da organização, etc., ou seja, tem um momento onde a telemetria é alcançada e o jogo fica totalmente diferente. Muitos colocam o sistema de log como um gargalo nefasto para a solução por causa dos I/Os supostamente frequentes. Será que é isso mesmo? O palestrante Uemura explica que não. A resposta está na medição.

Segurança, como sempre, não é levado tão a sério e isso foi enfatizado pelo keynote Ryan e algumas apresentações de hoje, mas quando é considerado, é importante aplicar o que existe de melhor para minimizar (por que eliminar é impossível) ataques, brute-force, quebra de serviços e outros, e uma boa maneira é seguindo um guideline confiável como o Common Weakness Enumeration. Por exemplo quais as principais fraquezas no desenvolvimento Java? Tem uma lista aqui com modelos e propostas de soluções, o mesmo vale para o front-end e outros.

Assim como no dia 1, foi enfatizado o sucesso na prática de programação reativa e dessa vez com Java no ifood. Dias atrás um colega do serviço (valeu, Sidney Coelho!) comentou comigo o livro gratuito do dia ofertado na Packtpub e consegui o Learning Reactive Programming with Java 8 do Nickolay Tsvetinov que ensina a nova abordagem de programação com RxJava. Confesso, tinha deixado para estudar mais pro final do ano, mas já iniciei.

Viva a revolução!



O último dia foi bem legal! Antes do keynote teve um overview do último dia e uma apresentação em especial chamou muito a atenção. A foto abaixo ilustra um pouco.

Explicação sobre "technology life cycle" e seus impactos
A ideia é mais ou menos assim, a imagem ilustra 5 tipo de perfis de empresas e desenvolvedores sendo innovators, early adopters, early majority, late majority e laggards, ou seja, quem está mais a direita tende a ser inseguro, conservador e até cético as novas tecnologias pois prefere vê-las maduras e bem consolidadas/aceitas no mercado, enquanto o da esquerda é aberto a novas práticas, modalidades e inovações, mesmo que isso não esteja bem validado, afinal, é experimentando que se avalia se algo é bom ou não, embora o resultado possa ser amargo.

Como funciona os 5 perfis em função das tecnologias/expectativas
O funcionamento de cada perfil é mostrado na foto acima. Muitas tecnologias que aparecem justamente surgem atoladas em especulações e muitas expectativas, contudo, ao atingir o ápice, existe uma brusca caída para a "realidade" que na imagem está descrito como "trough of disillusionment". Junto com isso, vem a maturidade e a confiança até chegar ao estado "plateau of productivity".

Atualmente eu me vejo entre Early Adopters e Early Majority.

Enfim, começa o keynote da Meri Williams sobre Modern Leadership and Team Science: Creating Space to Be Awesome.

Sinais de alta performance. Entendendo motivação pelo propósito, autonomia, inclusão e domínio.
A palestra não foi técnica e trouxe uma série de questionamentos a serem pensados no dia-a-dia do nosso trabalho. Em suma a palestra além de super interessante para cargos que não envolvam gestão, entendo como especial para todo RH, gerente, diretor, etc. pois a produtividade não só pode ser maximizada como também explorada e estudada pela motivação dos colaboradores. No final teve relatos dela sobre discriminação e privilégios na sociedade. Não é fácil e a luta tem que ser diária.

Trilhas do último dia:
  • .NET: muito além do Framework.
  • Containers e DevOps: entregando software na era da nuvem.
  • IoT, mobile e computação onipresente.
  • Machine Learning e Data Science: aplicações que aprendem.
  • Solutions Track 3 de 3.
Participei das seguintes palestras:


Híbrido ou nativo? O pessoal da GreenMile explicou muito bem na prática a adoção por híbrido. Os ganhos com pessoal, produtividade e presteza nas entregas são notórios. Segundo eles no mercado é difícil achar especialistas e quando achados geralmente são rígidos e irredutíveis na mudança de tecnologia. Com o híbrido a empresa tem mais poder de escolha. O Apache Cordova favoreceu tanto desenvolvedores front-end como back-end atuarem no projeto e mais uma vez a programação reativa com React Redux foi destaque.

Quando se tem uma aplicação monolítica e é necessário quebrá-la em vários microserviços distribuídos, muitas vezes a primeira pergunta que surge é: como fazer? Separando responsabilidades, comportamentos, estados, enfim, o Marcelo Flores compartilhou o passo-a-passo feito na OLX e as dificuldades que enfrentaram no caminho. Essa mudança pode ser custosa no âmbito do tempo mas os ganhos são substanciais. Essa ideia foi reforçada pelo Eduardo Ximenes do iFood.

Terminando, vejo que tenho muito que estudar (como nossa área sempre demanda), porém mudando o foco para as novas tendências, mas não saindo muito do meu posicionamento entre Early Adopters e Early Majority.

Ao som de Cazuza - O Tempo Não Para.

Comentários