Concrete Logo
Hamburger button

Android na Concrete Solutions

  • Blog
  • 10 de Julho de 2015
Share

O que é a cultura de uma empresa? Não precisa dizer coisas como ambiente divertido com geladeira para os funcionários, entre outras coisas. Também não precisa convocar do Olimpo os filósofos mais barbudos e veteranos do assunto. Sim, cultura é importante. Talvez mais que isso, toda empresa tem cultura independente, mesmo se ela foi pensada ou não. Mesmo assim, qualquer discussão sobre o que é cultura só termina com a frase “concordamos em discordar”.

Apesar de gostar muito destas discussões (sempre acabo sendo atraído a elas por ser o “filósofo de formação” da empresa), acho que o importante é vermos como a cultura se realiza. Portanto, façamos um pequeno sobrevôo sobre como o time de Android da Concrete Solutions exercita e pratica essa cultura que emergiu naturalmente do dia a dia das pessoas.

Deixa eu me corrigir inicialmente: não temos na empresa uma fronteira rígida de times e áreas mobile: Androiders falam com iOSers, Q.A.ers, DevOpsers, UXers, P.O.ers e Scrum Masters. Assuntos como usabilidade, integração contínua, entrega contínua e validação contínua são tratados por todos. No entanto, há alguns assuntos que são específicos para aqueles que desenvolvem na plataforma Android. Primeiro, como é o processo de onboarding? Por sermos uma consultoria (já chegaram a nos chamar de G.E.C.A. -> Grande Empresa de Consultoria Avançada, sendo este “Avançada” apenas para completar a palavra GECA segundo os criadores da sigla…) é comum termos pessoas alocadas em lugares diferentes. Isso acarreta em alguns problemas, sendo que o principal é que as pessoas acabam conhecendo pouco a Concrete Solutions. Assim, como podemos ter uma cultura?

Não temos a resposta definitiva e, por acreditarmos no lean, estamos tratando o problema de forma iterativa. Hoje temos alguns mecanismos:

 

  • Fórum: temos um forum interno que trata de milhares de assuntos, os mais diversos da tecnologia. Neste fórum as pessoas acabam se conhecendo e muitas vezes atribuindo uma referência a um assunto. Por exemplo, fulano posta um artigo e um comentário extenso sobre AngularJS 2.0. Caso eu esteja pensando em usar este framework, além de ler o post, logo abro uma janela de chat com a pessoa e pergunto sobre dicas da plataforma. Este é o mecanismo mais antigo para transmitirmos conhecimento. Apesar de ser limitado em quanto conseguimos compartilhar ou conhecer pelo fórum, ter este canal é indispensável e todo mundo que entra na Concrete Solutions logo é bombardeado de posts sobre Android, iOS, DevOps, etc, etc, etc.

 

    1. Java Annotation Processing: como criar um framework como Dagger, AndroidAnnotations e etc.
    2. Implementando interfaces em tempo de execução: Proxy e como o Retrofit funciona
    3. Como publicar uma biblioteca no JCenter
    4. PugNotification: como criar notificações para suas aplicações de forma simplificada

Estes temas são tratados sem grande formalidade (preparação de palestras completas com repositórios e etc) e, por serem de foro fechado, é uma oportunidade para compartilharmos dicas e dificuldades de projetos que estamos trabalhando. Claro, também é quando podemos ouvir a voz de pessoas que estão alocadas no cliente 😀

 

  • DOJO: mais raro do que os outros tipos de eventos, por vezes juntamos o pessoal na sede da empresa e fazemos mais um hands-on. Geralmente temos pizza envolvida para incentivar as pessoas a cruzarem a cidade pra ver mais código à noite. Temos também transmissão ao vivo para as outras unidades! Por exemplo: quem está no Rio de Janeiro consegue acompanhar os eventos de São Paulo e vice-versa (às vezes a comunicação não é 100% lisa, mas estamos melhorando bastante nossa infraestrutura de teleconferência).
  • Chapter lead: nesse caso não é mais um evento. O Chapter Lead é o papel de algumas pessoas responsáveis por tentar manter o time da prática bem motivado e desbloqueado. Geralmente essa pessoa olha de longe os projetos e analisa os resultados tentando indicar alguns direcionamentos, como melhor cobertura de testes, melhores práticas de desenvolvimento e manutenção, etc. Em alguns casos, essas pessoas vão até os projetos para conversar com o time e trabalhar alguma coisa em específico, como implantar uma base para que fique simples criar mais testes ou simplesmente conhecer a arquitetura e entender o direcionamento que o time está tomando ou ajudar a tomar decisões difíceis, como implementações de websocket, protocolos customizados de alguns clientes e etc.
  • Seleção por meio de código e conversa: nosso processo de seleção também ajuda bastante a manter um time coeso. Fazemos o processo em algumas fases: entrevista presencial, envio da solução do nosso desafio e mais uma entrevista para ajustar os detalhes administrativos. Assim, além de tentarmos conhecer um pouco mais a pessoa, tambem olhamos para o código dela. Isso nos ajuda a saber pontos fortes, fracos e estilo em geral.

 

Todas estas práticas e papéis se somam para tentar ajudar uma consultoria com pessoas espalhadas pelo país inteiro ter uma certa “cara”. Mais coisas estão planejadas para tentar melhorar ainda mais essa nossa cultura praticada.

Tudo bem, mas qual é o resultado disso tudo? Simplesmente fantástico. Teremos três palestrantes no The Developer Conference em Android esse ano. Veja só isso:

image00 image01 image02

 

Orgulho de participar desse time!

Se você quiser saber mais sobre a gente, pode ver nosso site. Se você tem algum comentário, aproveite o campo abaixo. E se você quiser fazer parte, tente nosso desafio. Até a próxima!