Organizando para o foco e para a diversificação

No meu artigo sobre foco ou diversificação comentei sobre essas duas estratégias que podem ser usadas na gestão de produtos de uma empresa e em quais circunstâncias cada uma dessas estratégias é mais apropriada.

Nesse artigo vou falar um pouco sobre como organizar seu time de desenvolvimento de produto a depender da estratégia adotada.

Quando uma empresa opta pela diversificação, a organização dos times tende a ser mais simples. Para cada produto, haverá um único time com engenheiros (de 2 a 8 pessoas, que podem ser back-end ou front-end ou full stack, a depender da necessidade de seu produto), mais um SysAdmin (administrador de sistemas), ou seja, até 9 pessoas na engenharia. Além disso, terá de 1 a 2 pessoas de UX e, por fim, um gestor de produtos. Esse é o core team do produto que comentei no artigo “Criando um produto de sucesso“.

Organização de um time multifuncional de um produto
Organização de um time multifuncional de um produto

Não raro pode acontecer de algumas pessoas do time serem compartilhadas com outros produtos. Os principais candidatos a serem compartilhados são o designer de UX, o gestor de produtos e o SysAdmin. Engenheiros não devem ser compartilhados.

pequenos-times
Organização de dois times multifuncionais para dois produtos distintos,
com compartilhamento de pessoas

É importante lembrar de que, ao compartilhar uma pessoa entre dois produtos, a sua atenção será compartilhada, o que tem pontos positivos e negativos. O ponto negativo óbvio é que ela dará menos atenção a cada um dos produtos que cuida. Por outro lado, o fato de ela viver duas realidades, ou seja, de cuidar de dois produtos, pode fazê-la trazer as boas práticas de um time para o outro (e vice-versa).

Contudo, mesmo existindo esse ponto positivo, existem outras formas de se trocar boas práticas, sem sacrificar o tempo e a atenção de uma pessoa compartilhada. Por isso, o mais recomendável mesmo é não compartilhar pessoas entre dois produtos. É claro que se você tiver restrições financeiras, essa divisão entre produtos é aceitável, mas procure considerar isso uma situação temporária.

Atenção: compartilhar pessoas entre mais de dois produtos é extremamente desaconselhável. O máximo aceitável de compartilhamento é em dois, e isso já terá um impacto considerável em atenção, produtividade e qualidade.

Outro ponto importante desse tipo de estrutura é a importância de manter uma coesão funcional. Isso pode ser feito por meio de uma liderança funcional, ou de uma auto-organização funcional.

A coesão funcional é importante para garantir que exista consistência entre o trabalho dos times, e que cada um aprenda com as boas práticas do outro. Caso contrário, cada time fará um produto que parecerá não só ser de um time diferente, como também de uma empresa diferente!

Na Locaweb, optamos por manter a coesão por meio de liderança funcional e auto-organização funcional. Temos líderes de UX e de engenharia, e temos auto-organização funcional para front-end e design visual. Isso nos garante uma boa consistência entre os diferentes produtos. Por exemplo, criamos padrões de interação, o Locaweb Style, assim todos os produtos da Locaweb têm um padrão de interação igual. Um cliente do produto E-mail Marketing sabe que, quando for usar o produto Backup, não terá de aprender a interação tudo de novo. O Locaweb Style está disponível como open source.

Como organizar times grandes?

Quando seu produto cresce – quer seja em uma empresa de um único produto, quer seja em uma com um portfólio diversificado –, começam as questões sobre como se organizar. Normalmente, isso demora mais em empresas com portfólio de produtos diversificado, pois, sempre que um determinado time cresce um pouco, existe a vontade de pegar algumas pessoas dele para focar em um novo produto.

Já em uma empresa com foco em um único produto, a necessidade de organizar times grandes acontece bem rápido. Não é difícil imaginar mais de 8 engenheiros disponíveis para trabalhar em um produto e, como vimos anteriormente, cada time de produto deve ter, no máximo, de 6 a 8 engenheiros. Como se organizar com times maiores?

O produto deverá ser quebrado em subsistemas. Estes terão certamente algum tipo de integração e interdependência, mas suas arquiteturas devem ser tal que a interdependência seja mínima para que a camada de integração seja a mais simples possível. Cada time desses precisará de engenheiros, UX, SysAdmin e gestor de produtos. Por se tratar de subsistemas de um mesmo produto, esses times podem eventualmente compartilhar o mesmo gestor de produtos, o mesmo UX e o mesmo SysAdmin. Aqui o compartilhamento é um pouco mais aceitável e pode existir compartilhamento em até mais de 2 subsistemas.

Contudo, é preciso ficar atento para que essas pessoas compartilhadas entre mais de um subsistema não virem gargalos. O ideal é ter pessoas 100% dedicadas a cada um. Nesse cenário ideal, no qual cada membro dos times que cuidam de cada subsistema é 100% dedicado, é muito importante alguém ter uma visão geral para ajudar na coordenação dos trabalhos entre os times. Como mencionado, é importante minimizar a interdependência desses subsistemas, porém, alguma dependência sempre existirá, e isso precisará ser coordenado. Eventualmente, um gestor de gestores de produto pode ser necessário para ajudar nessa coordenação. Idealmente deveríamos ter um gestor de gestores de produto, um gestor de engenharia que acompanha o trabalho de todos os times de engenharia, e um gestor de UX para ajudar na coordenação do trabalho dos designers de UX de cada subsistema.

produto-grande
Organização de vários times multifuncionais para um único produto,
com gestor de gestores de produtos, de UX e de engenharia

Por exemplo, o produto Hospedagem de Sites é dividido em 7 times de desenvolvedores que se focam em subsistemas diferentes do produto. Um time trabalha no desenvolvimento do painel de controle da hospedagem; outro trabalha no subsistema de provisionamento, responsável por instalar, suspender e desinstalar os componentes (subsistemas) que compõem a Hospedagem de Sites da Locaweb, isto é, a hospedagem propriamente dita – que pode ser Linux ou Windows –, o banco de dados e o e-mail.

Assim, um outro time cuida do painel de controle e do webmail do e-mail, e, por fim, mais 4 times cuidam dos subsistemas ligados diretamente à infraestrutura, que são os times de infraestrutura Linux, de Windows, de banco de dados e de e-mail.

Temos dois gestores de produtos para todos esses times: um focado nos subsistemas de hospedagem de sites, outro focado nos subsistemas de e-mail. Temos também dois designers de UX, com a mesma separação de foco, além de um gestor de gestores de produto, um de designers de UX e um dos times de engenharia.

Outro bom exemplo, em uma escala consideravelmente maior, é o Spotify, aplicativo de streaming de música criado na Suécia em 2008, que tem mais de 75 milhões de usuários de acordo com os dados de junho de 2015. A empresa tem mais de 1.500 funcionários, todos dedicados a um único produto, e boa parte deles faz parte do time de desenvolvimento do produto.

Recentemente, eles postaram dois vídeos contando um pouco sobre sua cultura e como eles se organizam. Vale a pena assisti-los! Eles encontram-se em https://vimeo.com/85490944 e em https://vimeo.com/94950270.

Próximo artigo

No próximo artigo vou falar um pouco sobre o papel de gestor de gestores de produto. Stay tuned!

Livro sobre gestão de produtos

Vc gosta do tema gestão de produtos de software? Quer se aprofundar mais no assunto? Escrevi um livro sobre o assunto, dividido em 5 grandes áreas:

  • Definições e requisitos
  • Ciclo de vida de um produto de software
  • Relacionamento com as outras funções
  • Gestão de portfólio de produtos
  • Onde usar gestão de produtos de software
Capa do Livro Gestão de Produtos

Esse livro é indicado não só para quem tem software como seu core business, como tb para empresas que desenvolvem software sob demanda e empresas que não tem software como seu core business mas usam software para se comunicar com seus clientes como, por exemplo, escolas, bancos e laboratórios clínicos.

Interessou? Então adquira sua cópia hoje mesmo!

Newsletter

Se você quiser receber artigos por email sobre startup, gestão de produtos e gestão de TI, digite seu endereço abaixo e aperte enter:


4 ideias sobre “Organizando para o foco e para a diversificação

    • Oi Juliana,

      Eu estava esperando alguma reação desse tipo ao texto. Estou preparando um outro artigo pra falar exatamente sobre esse tema. Aqui na Locaweb decidimos recentemente por não ter um time de QA pois acordamos que qualidade (e outros requisitos não funcionais) é responsabilidade de todo o time que cuida do produto ou sistema. Optamos não ter time separado de QA e por não ter pessoas com função específica de QAs. Os QAs tiveram a opção de se tornarem devs ou sysadmins. Sei que esse tema gera muito “pano pra manga”! Em breve posto esse artigo por aqui. :-)

      Abs,
      Joca.

  1. Pingback: Como quadruplicamos a produtividade de desenvolvimento de software sem aumentar o time e sem queda de qualidade | Guia da Startup e da Gestão de Produtos de Software

Deixe uma resposta para Gustavo Fernandez Cancelar resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>