Tive o prazer de encontrar um amigo com o qual já trabalhei, tanto direta como indiretamente, por mais de uma década. Ele ainda com mais décadas de experiência que eu. Deste encontro surgiram algumas reflexões interessantes sobre como profissionais experientes de TI devem ser reformular para viver os novos tempos.
Nesse encontro falamos muito sobre como profissionais, como nós, com décadas de experiência de TI, estão tendo que se adaptar a Era Digital e ao mesmo tempo mostrar o valor de nossa maturidade. Entendemos que há muitas mudanças de paradigmas, mas também há sempre o mais do mesmo e ciclos de repetições.
Sempre fui um programador desde adolescente, desenvolvi sistemas em diversas linguagens, de perder a conta, e ao longo da carreira formei e liderei fábricas de desenvolvimento, mas passei a ser contratante de serviços de TI nos últimos anos, gerindo equipes multidisciplinares. Com isto veio a provocação: consigo liderar equipes de desenvolvedores com novas linguagens, plataformas e metodologias?
A proposta dele foi a de que eu deveria meter a mão na massa por um tempo afim de ganhar experiência e aprendizado, a exemplo do que fiz ao formar as Fábricas de Software no passado. A partir deste pensamento, fiz uma analise com intuito de criar um plano de ação para promover meu aprendizado.
Metodologias
Sempre gostei muito de metodologias, da década de 90 até metade da década de 2000. Fiz meu trabalho final de graduação em 1998 usando a velha metodologia estruturada da década de 70 – fui conservador pois a metodologia Orientada a Objeto ainda nascia – segui estudando na virada do ano 2000 o UML, surgido da união dos grandes metodologistas que viviam em batalhas constante. O que vi de mais prático e valoroso naquela época foram os Casos de Uso, onde me especializei, e que mantem vivo até hoje na metologia ágil.
Na década de 2000, vi o modelo cascata se fortalecer e engordar demais com muitas técnicas e procedimentos novos. Vivi a dificuldade de tentar fazer meu trabalho de forma ágil e ter que seguir todo o trâmite burocrático imposto pelos metodologistas da empresa. Isso mesmo, naquela época era necessário um especialista em metodologia na empresa! As metodologias ágeis estavam surgindo, mas ainda eram vistas com desconfiança.
Como tive que entregar implantações em períodos muito curtos, chegando a ser semanal, estabeleci um modelo que fosse ágil, no improviso. Apliquei técnicas do Extreme Programming, e logo a equipe a qual liderava se tornou um modelo de eficiência.
Não era só o desafio do desenvolvimento ágil, mas tínhamos que ter implantações rápidas. Os próprios desenvolvedores inicialmente realizavam as implantações. Com o tempo desenvolvi controles e otimizações para agilizar os deploys. Somente em 2010 veio como moda o DevOps e o corpo de práticas formais.
Em 2011 me certifiquei em gestão de projetos como PMP pelo PMI. Fui um conhecimento muito importante, apliquei conhecimentos no dia a dia do trabalho, e na minha vida (como fazer uma obra em casa). O próprio PMI se adaptou e criou a formação de Gerência de Projetos de forma ágil.
Contei um pouco de história para mostrar que por mais que as metodologias estejam sempre mudando e evoluindo, existe muito modismo, comum na área de TI. De fato é importante hoje conhecermos os métodos ágeis e principalmente o Scrum porque o mercado entendeu que este modelo é o que traz melhores resultados para implantações rápidas de produtos que sejam ao mesmo tempo escaláveis.
As grandes corporações investem pesado no modelo ágil porque sofrem ameaças não mais dos concorrentes tradicionais, mas por exemplo de um jovem em sua garagem ou seu quarto, que saiba programar, sem conhecimento de metodologia, capaz de construir uma solução disruptiva e viral por meio de um aplicativo e derrubar um instituição gigante com décadas de existência.
Linguagens de Programação
Ao meu ver, a área de programação em TI vive ondas. Nos primórdios, programar em linguagem de máquina era para poucos, e o resultado era mínimo. Veio a a primeira onda do COBOL na época do Mainframe, uma grande evolução de produtividade para a época. Na micro informática, programar em C, C++ era bastante oneroso. Gerir dados era uma arte. Com a vinda de Bancos de Dados Relacionais, a vida começou a ficar mais fácil.
O tempo passou, e desenvolver aplicações para Desktops nas décadas de 90 e 2000 já era muito produtivo com plataformas de desenvolvimento como o Delphi e o Visual Studio (Visual Basic, C#). Aplicações corporativas eram desenvolvidas com velocidade, mas o desenvolvimento para a Web era muito rudimentar e trabalhoso.
O desejo sempre foi de que o que estava no Desktop devia ser feito para a Web. O modelo do “Fat Client” mudava para o “Thin Cliente” com tudo concentrado no servidor, lembrando os Mainframes. Surgiu o HTML, backends em Java, com alta complexidade de desenvolvimento, compensado pelo PHP e outras linguagens mais práticas.
Nos dias de hoje, com o avanço da capacidade de processamento, o desenvolvimento Web avançou muito em termos de capacidade e produtividade, além de designe e estilo, trazendo a diagramação editorial para o frontend, mas a produtividade ainda está longe de ser como era com aplicativos desktops.
Hoje precisamos aprender sobre Cloud, micro serviços, desenvolvimento NodeJs, CSS. O programador precisa entender de arquitetura, design e user experiencie. Há as segmentações de trabalho, bem como os desenvolvedores fullstack, ou seja os que fazem tudo. As aplicações precisam ser responsivas no desktop pelos navegadores e nos celulares.
Este modelo é menos produtivo que o do auge do desenvolvimento Desktop, mas como em tuda a evolução do desenvolvimento de software, a produtividade tende a aumentar e o trabalho braçal será cada vez mais automatizado, até surgir outra onda e voltarmos para o trabalho braçal novamente.
Plataforma de Tecnologia
No passado as corporações sempre tiveram que adquirir e manter os ativos de tecnologia, que por sua vez depreciavam rápido. Tudo que era feito estava limitado a capacidade de processamento e ao custo de aquisição.
O modelo em nuvem, ou cloud, foi alvo de dúvidas por grandes empresas no começo. Muito natural, afinal colocar toda a informação fora da companhia causava medo, incomodava a área de segurança da informação, além do desafio de conseguir ter meios para fazer o transporte de dados de forma rápida.
As novas empresas entrantes no mercado provaram que para ser rápido e escalável, o modelo de nuvem é essencial. Vou pegar o exemplo de empresas de aplicativos no Brasil, como o iFood e o NuBank. Elas possuem escritórios apenas para terem espaço físico para os colaboradores estarem próximos. Os dados estão em algum Datacenter replicado continentalmente, com toda a gestão e segurança terceirizada, além de poderem ser imediatamente dimensionadas conforme o crescimento viral do negócio. Imaginou se essas empresas tiverem que montar seus Datacenters e comprar e administrar sua infraestrutura?
Analytics
Nos primórdios eram gerados centenas de relatórios gerenciais, muitos inúteis. Com o passar do tempo surgiram os Datawarehouses, que devidamente organizados geravam conhecimento para o negócio – que não se lembra do case da frauda e da cerveja?
O termo evoluiu para Bussiness Inteligence agregando técnicas de mineração de dados, como algoritmos de classificação. O grande desafio foi passar mais de 90% do tempo de trabalho extraindo, transformando e carregando os dados (ETL).
Como lidar com os dados inviáveis de serem estruturado? Com isto veio o Big Data já na década de 2010, onde os dados não estruturados foram onsiderados. O hadoop, modelo baseado na forma de classificação do Google passou a ser adotado pelas corporações, porém ainda exigia trabalho de captação, classificação e armazenamento.
A moda atual é ter Cientistas de Dados, profissionais que pegam uma amostra de dados, organizam e classificam estes dados e aplicam técnicas estatísticas e algoritmos avançados para ter inferências, mas olham para uma amostra controlada, não para o todo necessariamente. Além de serem programadores e estatísticos, precisam entender do negócio. Devem saber python, R, e suas bibliotecas com algoritmos de machine learning. Claro que há ferramentas mais produtivas como as oferecidas pela SAS.
Considero importante os profissionais antigos de TI entenderem esta trajetória e estudarem os algoritmos utilizados pelos cientistas de dados. Muita coisa pode ser aproveitada com estas técnicas em diversas áreas, sem ter que se tornar um cientista de dados.
Conclusão
A área de TI sempre viveu de ciclos, ondas, modas, mas a Era Digital está mudando profundamente a forma com que a TI tradicional deve se posicionar em uma empresa.
A atuação deve ser dinâmica, ágil e menos dependente de plataforma tecnológica. O desapego da plataforma tecnológica desonera grande parte do trabalho, mas esta energia deve ser direcionada para construir os micro serviços e pensar na arquitetura distribuída em nuvem.
O desenvolvimento do software, além de ser ágil, deve ser multiplataforma. Para alcançar a versatilidade a produtividade ainda não é a ideal, mas gradativamente está evoluindo, por isto devemos estar atendo às evoluções. As metodologias ágeis ganham força porque são as que dão resultados, portanto é importante investir em conhecê-las.
Entender de Analytics é fundamental, afinal tudo o que cada uma faz em uma equipe precisa de medido. Passou a ser papel de cada um entender o impacto e o resultado produto do trabalho individual.
Por fim, a mais importante adaptação: a colaboração. O trabalho é cada vez mais colaborativo. Não existe mais lugar para profissionais que trabalham isolados em suas baias ou suas salas de departamento como foi nas décadas de 70 a 90. Prepare-se para mesas compartilhadas e reuniões diárias em equipe de 15 minutos em pé!

Deixe um comentário
Você precisa fazer o login para publicar um comentário.