BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias Cultura da Engenharia de software do Google

Cultura da Engenharia de software do Google

Favoritos

O Google conduziu alguns estudos para entender melhor o impacto dos gerentes e da cultura na performance de uma equipe. Em 2008, foi divulgado as conclusões do Project Oxygen (Projeto que tinha como objetivo determinar o que torna um gerente ótimo, e chegaram a uma conclusão de que os gerentes que eram considerados ótimos seguiam oito comportamentos em comum, são eles: Bom treinador; Capacita a equipe e não faz micro gerência; Cria um ambiente inclusivo, mostrando preocupação com o sucesso e o bem-estar; É produtivo e orientado à resultados; É um bom comunicador - ouve e compartilha informações; Dá suporte ao desenvolvimento de carreiras e discute desempenho; Tem uma visão/estratégica clara para a equipe; Possui habilidades técnicas essenciais para ajudar a aconselhar a equipe), em 2018, publicaram um acompanhamento sobre o estudo. Além dos oito comportamentos chave descobertos em 2008, mais dois foram identificados, que são: colaboração alinhada com a empresa e forte tomada de decisão.

Em 2019 Seth Richtsmeier compartilhou algumas práticas culturais que contribuem até hoje para o sucesso do Google. Entre elas, a empresa criou um ambiente onde pessoas, criatividade, e autonomia são encorajados, e a transparência e a colaboração multifuncional é recomendada com o objetivo de compartilhar informação e inovação.

Fergus Henderson, engenheiro de software do Google, publicou um artigo em 2017 descrevendo as práticas da engenharia de software do Google, que de acordo com ele, contribuem fortemente para o sucesso da empresa entre os desenvolvedores. Henderson resumiu as principais tecnologias e práticas de engenharia, essas práticas, são as que mais tempo foram testadas no Google, e também as que mais estiveram sujeitas ao julgamento subjetivo coletivo de muitos milhares de excelentes engenheiros de software.

A primeira prática fundamental é o uso de um repositório de código: a maioria do código dos desenvolvedores é armazenada em um único código-fonte unificado acessível a todos os engenheiros de software. O acesso de gravação é controlado, mas os engenheiros podem acessar qualquer código e fazer alterações para serem aprovadas pelos proprietários do código. Quando se trata da propriedade do código, cada subárvore do repositório possui um arquivo listando as identidades dos usuários. Os proprietários de cada subárvore controlam o acesso de gravação a essa subárvore e a equipe inteira é listada no arquivo do proprietário.

O build é baseado em um sistema distribuído conhecido como Blaze, usado para compilar e vincular software e para executar testes. O Blaze fornece comandos padrão para a criação e testes de software que funcionam em todo o repositório. Tais práticas permitem que os engenheiros construam e testem o software no repositório de maneira rápida e segura, além de permitir que os engenheiros façam alterações facilmente nos projetos. O trabalho de cada build é distribuído por centenas ou até milhares de máquinas, possibilitando a criação de programas extremamente grandes rapidamente ou a execução de milhares de testes em paralelo.

Os engenheiros de software executam suas revisões de código usando ferramentas baseadas na web desenvolvidas internamente. Todas as alterações no repositório principal de código-fonte são revisadas por pelo menos um outro engenheiro.

O ato de reescrever o software acontece periodicamente, consumindo recursos importantes, mas garante a capacidade da empresa de se adaptar rapidamente às demandas e mudanças do mercado. Os engenheiros reescrevem o código para reduzir a complexidade e ao mesmo tempo transferem o conhecimento e propriedade do código para os membros mais novos da equipe. O ato de reescrever garante que a base de códigos do Google seja escrita usando modernas tecnologias e práticas de engenharia.

Culturalmente, os engenheiros têm o poder de corrigir qualquer código quebrado, independentemente dos limites do produto, para garantir que seus produtos atendam aos mais altos padrões de qualidade da empresa.

Em um artigo também publicado em 2017, Edmond Lau, que trabalhou no Google entre 2006 e 2008, confirmou que o Google ensina técnicas valiosas de engenharia que podem levar engenheiros para o sucesso em sua carreira, mas destacou que a maioria dos engenheiros estão limitados a desenvolver e coordenar produtos globais e em larga escala. Os engenheiros têm pouca flexibilidade para priorizar, tomar decisões sobre produtos ou até mesmo tomar iniciativas ou priorizar seu tempo com base no resultado.

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT