A cada ano que passa as empresas que fazem desenvolvimento de software vão se modernizando. Enquanto que algumas evoluções mais óbvias sejam essa e de hardware, estão nos métodos de desenvolvimento e na cultura das organizações os maiores desafios em termos de evolução real e significativa. Afinal, de nada adianta ter as tecnologias mais modernas de desenvolvimento de software e hardware se o time não tem o método de trabalho apropriado ou uma cultura que lhes permita entrega o maior valor possível para a empresa.

Mas quais são os métodos de desenvolvimento que as empresas mais inovadoras do mundo estão usando? Em que direção a cultura corporativa das empresas de tecnologia está caminhando? Como posso me antecipar às mudanças que certamente virão, mais cedo ou mais tarde, para as empresas brasileiras?

Pois é, se você é um profissional preocupado com esse tipo de questionamento o artigo de hoje é para você!

Cultura e Métodos de desenvolvimento de software

Anualmente a InfoQ, um editorial de tecnologia muito importante mundialmente, apresenta as tendências de cultura e métodos de desenvolvimento de software, conforme o resultado de pesquisas e a opinião de especialistas da área. Recentemente em março saiu a edição 2019 do famoso relatório Culture & Methods – the State of Practice, onde os editores do site publicaram em que fase de adoção se encontram os elementos em questão nas empresas mundialmente falando, reproduzidos abaixo.

Não conhece todos esses nomes? Calma, já chegaremos lá!

O modelo apresentado, caso seja novo para você, é adaptado da Curva de Difusão da Inovação, criado por Everett Rogers (1962) e popularizado por Geoffrey Moore no clássico Crossing the Chasm (1991, Atravessando o Abismo), onde o autor explica as diferenças entre os públicos das tecnologias (dos inovadores aos atrasados), o padrão de difusão das mesmas (a curva em si) e o abismo (chasm) que separa as empresas realmente inovadoras da maioria das empresas comuns. Quando uma inovação consegue “atravessar o abismo” (o que não é nada fácil), ela se torna mainstream ou padrão de mercado.

Este ano, para lhe ajudar a ter uma visão geral dos tópicos que foram apresentados no relatório da InfoQ, a BossaBox me convidou para resumir e apresentar de uma maneira didática as tendências em cultura e métodos de desenvolvimento de software em 2019. Sou especialista em computação e Agile Coach, sou dono do blog LuizTools, e atuo desde 2006 no mercado de software com diferentes tecnologias e métodos de desenvolvimento, ajudando na transformação digital de pequenas startups a grandes corporações com milhares de funcionários e faturamento bilionário.

Esperamos que gostem das análises e sintam-se convidados a deixarem suas dúvidas e considerações nos comentários ao final do artigo, terei o maior prazer em respondê-los.

Innovators, Os Visionários

Esta categoria é a das empresas realmente inovadoras. Uma empresa visionária é aquela que enxerga o que ninguém mais vê. Consegue perceber valor em métodos contra-intuitivos e de maneira orgânica molda a sua cultura no entorno da própria inovação. Quando se depara com uma abordagem não-usual para um problema, uma innovator company metaforicamente se pergunta: por que não?

Liberating Structures

Renomados líderes e autores como Simon Sinek e Jurgen Appelo defendem a criação e gestão de ambientes seguros para os funcionários trabalharem, reforçando que profissionais inseguros não inovam e que é preciso remover elementos de insegurança para que os profissionais consigam colocar toda sua capacidade cognitiva a serviço da empresa em que estão. Liberating Structures é sobre isso.

Imagine um framework com 33 práticas que podem ser usadas livremente, ao invés de situações tradicionais, formais e desconfortáveis que existem nos ambientes corporativos. Práticas que estimulam a co-criação, o senso de pertencimento e a busca por propósito, de forma similar ao conceito dos Core Protocols para levar os times à máxima performance. Isso tudo você encontra no livro The Surprising Power of Liberating Structures de Henri Lipmanowicz e Keith McCandless, que vem ganhando a predileção das empresas inovadoras.

Fuzzy Problems

Você sabe o que são Fuzzy Problems?

Fuzzy vem de “difuso”, ou algo “impreciso”, “difícil de distinguir”. Fuzzy Problems é o nome dado aos problemas de mercado em que não há respostas precisas de como resolvê-los, ou seja, são de alto risco do ponto de vista de investimento. No entanto, são onde há grandes chances de ganho também.

As empresas mais inovadoras do momento têm aprendido a lidar com Fuzzy Problems de maneiras únicas e completamente diferente dos pensamentos tradicionais. Primeiramente é importante ressaltar que toda empresa possui problemas tradicionais e fuzzy para resolver. No entanto, a abordagem de lidar com cada um deve ser totalmente diferente. Mesmo dentro do espectro difuso dos fuzzy problems, não há uma única metodologia capaz de te dizer como lidar com ele. Assim, nesse tipo de cenário, nunca foi tão importante seguir o mantra de “fail fast, learn faster” e obviamente incluir um “fail cheap” também é uma boa pedida.

Assim, a recomendação geral é: ao lidar com fuzzy problems, monte um bom time, dê a eles o desafio e a autonomia para decidirem como vão trabalhar e incentive as falhas que geram aprendizados e entregas rápidas e pequenas. Fuzzy Problems não combinam com miro-gerenciamento ou comando-controle. Cada problema é um problema diferente e se toda sua empresa usa a mesma receita de método ágil ou precisa de um gerente sabe-tudo pro time funcionar, você não está sendo realmente ágil (na sua essência).

Quer saber mais sobre este assunto? Escute o podcast da InfoQ com Fred George, um consultor muito experiente na adoção e promoção de novas tecnologias ao redor do mundo como microservices (desde 2005), redes de computadores (desde 1970) e métodos ágeis (desde 1990). Também dê uma olhada no desafio do marshmallow, um fuzzy problem clássico.

Screen-less UX

Nos anos 70 tivemos o nascimento das interfaces gráficas de usuário e de lá pra cá toda uma especialização que culminou nas escolas mais modernas de User Experience (UX). No entanto, essa era está indo além do conceito mais tradicional associado ao que vemos nas telas dos dispositivos.

Nós estamos começando a viver nosso dia a dia em um mundo pós-telas. O advento dos dispositivos inteligentes e sensíveis ao nosso contexto (smarTV, smartphone, smartwatch, digital assistants) mudaram para sempre a forma como interagimos com conteúdo. O dado é uma fotografia da nossa conectividade contextual entre nossos ambientes físico e digital. Designers terão de aprender a construir experiências sem tela (screen-less) que entreguem dados e algoritmos para criar valor para os usuários.

Ao menos é o que dizem os especialistas como Andrew Smyk da Adobe. Uma experiência Zero UI (interface gráfica zero), segundo Smyk, é plenamente possível e desejável nos dias atuais onde temos uma profusão de métodos de interação mais naturais como voz, gestos, feedback tátil e sensibilidade ao contexto e ambiente do usuário. É fácil notar o quanto empresas como Microsoft, Google, Apple e Amazon investem pesado no desenvolvimento de software e de interfaces diferentes das gráficas para oferecer produtos inovadores aos seus clientes.

Se você é um profissional de UX hoje e ainda não está se especializando em interações screen-less, não perca mais tempo!

AI/ML Tooling

Ferramental de Inteligência Artificial (AI – Artificial Intelligence) e de Aprendizado de Máquina (ML – Machine Learning) estão cada vez mais sendo adotados por times ágeis e inovadores que querem construir funcionalidades com maior fit com seus usuários. Usar insights gerados a partir de dados, no entanto, trazem uma série de desafios para as empresas que estão acostumadas com o antigo jeito de se tomar decisões: o HIPPO (Highest Paid Person Opinion – opinião de quem ganha mais). Para ajudar nessa transição cultural entra em cena um novo profissional: o Data Coach.

Comece pequeno, mas não deixe para amanhã. De ferramentas simples como Regressão Linear e Redes Neurais às mais complexas como Deep Learning, plataformas em nuvem como IBM, Microsoft e Google já oferecem a baixo custo o poder computacional e algoritmos prontos em seus datacenters para auxiliar sua empresa a lidar com seus próprios dados e trabalhar no desenvolvimento de software.

#noprojects, #noestimates

#noprojects e #noestimates são dois movimentos distintos e perfeitamente aplicáveis em separado, mas vêm ganhando muita força nos últimos anos.

#noprojects é o termo utilizado para atacar o mal da cultura projetizada dentro das grandes empresas que mais destrói valor do que entrega. Autores desta filosofia afirmam com dados o que todo mundo já sabe ou já ouviu falar: a maioria dos projetos é um fracasso, mesmo utilizando métodos ágeis, porque eles já partem de uma premissa errada: focam no output e não no outcome desde o dia um. #noprojects defende uma cultura produtizada, onde o sucesso de uma iniciativa é baseado (e a mesma é direcionada para) no resultado real obtido a partir do esforço do time.

As empresas mais inovadoras do mundo constroem times para desenvolver e manter produtos (como os 2-pizza teams da Amazon), ao invés de times para executar projetos. Para mais sobre esse tópico, leia os excelentes livros Project to Product e #noprojects – A Culture of Continuous Value, esse último de graça no site da InfoQ.

Já a outra iniciativa, #noestimates, cunhada por Woody Zuill, é sobre a também famigerada cultura de estimativas de software. Defensores desta contra-cultura atestam que as empresas não precisam de estimativas, mas de visibilidade do andamento e conclusão das iniciativas (não vou chamar aqui de projetos para não me contradizer em relação ao tópico anterior). Métricas como Troughput, Lead Time e Cycle Time são opções para dar previsibilidade de entregas mesmo sem precisar estimá-las, apenas baseando-se no empirismo de entregas anteriores do time.

Claro que é mais fácil falar que fazer, e esse tipo de abordagem exige times mais estáveis (missões de longo termo) e tamanhos aproximadamente iguais de atividades para que técnicas como essas funcionem. Para mais sobre este tópico e uma abordagem prática sobre o assunto, leia o excelente NoEstimates: How To Measure Project Progress Without Estimating.

Sociocracy, Holacracy

Sociocracia e Holacracia são basicamente formas diferentes de governar e liderar, bem como de estruturar organizações e tomadas de decisão. Pense em algo disruptivo. Estes dois termos juntos vão além do que você é capaz de pensar, se ainda não tenha sido apresentado a eles.

O pensamento tradicional de gestão e organização do trabalho e do estado, que remonta a séculos atrás, nos traz estruturas verticalizadas e cheias de níveis, tomada de decisão centralizada e comunicação fraca ou inexistente. Alie a isso as tomadas de decisão baseada em poucas pessoas com poder nas empresas e você tem a receita para a ineficiência corporativa que atinge a todas as companhias que ainda operam sobre ensinamentos de Taylor e outros.

Empresas inovadoras foram além de trabalhar com times multifuncionais e já estão trabalhando com estruturas matriciais e decisão local (junto ao time). Substituíram Value Stream Mapping por redes de entrega de valor e horizontalizaram seu organograma. Como disse Steve Jobs certa vez, “nós contratamos pessoas inteligentes para que elas nos digam o que fazer”.

Para mais sobre estes tópicos, consulte Sociocracy.info e Holacracy.org. Quer conhecer um case brasileiro de 1989? Leia este artigo estude mais sobre o trabalho de Ricardo Semler. Adicione Teal Organizations à sua lista de leitura também, que tem tudo a ver com o conceito de “agilidade para um propósito” (leia mais aqui também), afinal, ninguém deveria rodar métodos ágeis apenas por eles serem “legais”.

E com isso nós fechamos os tópicos que estão despontando junto às mais inovadoras empresas do mundo, sendo a primeira parte desta série de artigos sobre Tendências em Cultura e Métodos de Desenvolvimento de Software. Na próxima parte, vamos estudar o que estão fazendo os Early Adopters, as empresas que não criam tendências, mas que são grandes entusiastas e ajudam a promovê-las.

Até a próxima!


*Luiz Duarte é Bacharel em Ciência da Computação (Ulbra) e Especialista em Computação Móvel (Unisinos). Agile Coach (Scrum.org) e Professional Coach (IBC), ajuda times e empresas a atingirem o seu máximo potencial em negócios de tecnologia e inovação. Saiba mais em https://www.luiztools.com.br.