No ótimo livro Remote, Office not required, o pessoal da Basecamp apresenta uma série de vantagens e desafios relacionados ao trabalho remoto. No quesito desafios, sabemos que alguns deles são de cunho humano e não tecnológico, mas existe um conjunto de ferramentas que as equipes podem utilizar para facilitar o seu dia a dia. Neste artigo, vou citar algumas que acho úteis, principalmente para desenvolvedores, separadas em categorias. Vou aproveitar e apontar os meus favoritos em cada categoria.
- Chat: Em equipes remotas, a comunicação é um dos principais fatores e existem ótimas ferramentas disponíveis como o Slack e suas contra-partes open source, como o Rocket Chat e o Mattermost. Meu favorito: Slack, mas estou de olho no Mattermost para testar em algum momento próximo.
- Vídeo: Quando as conversas via chat começam a ficar muito extensas, uma boa sugestão é partir para uma rápida conferência de vídeo. Skype e Google Hangouts são os mais tradicionais nessa área, mas os novatos Appear.in e Zoom.us estão ganhando bastante mercado. Meu favorito: Appear.in.
- Gerenciamento de tarefas: Nesta área, temos o maior número de ferramentas para facilitar (ou não) a escolha. Trello e Jira são os mais conhecidos aqui no Brasil, mas o Basecamp é muito usado mundo afora e o brasileiro Pipefy vem ganhando terreno (usamos ele na Code:Nation). Meu favorito: Trello, mas estou gostando do Pipefy e tenho ótimas experiências com o Github Issues.
- Gerenciamento de código: Aqui, temos menos competidores e todos são bem similares em questão de funcionalidades (revisão de código, compartilhamento de trechos de código, testes e integração/deploy contínuo etc). Github e Bitbucket estão há mais tempo no mercado, mas o Gitlab vem crescendo e inovando bastante. Meu favorito: Github.
- Documentação: Compartilhar documentos entre a equipe, sejam técnicos ou não, é mais fácil quando usamos ferramentas como o Google Drive e o Dropbox, que dispensam apresentações. Outras soluções para anotações mais simples são o Evernote e o OneNote, além do novato Bear (para as plataformas da Apple). Meus favoritos: Google Drive e o Bear. Outra sugestão interessante, e que já usei com sucesso no passado para armazenar documentação técnica, é o recurso de Wiki que está disponível no Github, Gitlab e Bitbucket.
- Gerenciamento de tempo: É muito comum se empolgar com um projeto e passar mais tempo trabalhando do que o esperado, o que nem sempre é um bom negócio. Ferramentas como o Toggl e Payable ajudam bastante na hora de anotar horas e convertê-las em relatórios. Outra sugestão é o RescueTime, ferramenta que fica monitorando o seu computador e fornece relatórios importantes para você identificar onde está gastando mais tempo. E para quem trabalha com equipes em diferentes países/fusos, o Every Time Zone ajuda a entender em qual horário seus colegas estão trabalhando. Meus favoritos: Payable, RescueTime, mas estou testando alternativas como o Timing (somente para MacOS) e o Watson.
- Design: Decisões de design são importantes e quanto mais olhos, mais fácil identificar melhorias. Ferramentas como o Invision e o Marvel ajudam na tarefa de compartilhar telas e receber feedbacks de todos os membros da equipe. Meu favorito: Invision.
- DevOps: Equipes remotas precisam ter facilidade de reproduzir ambientes em suas máquinas e também compartilhar mudanças rapidamente. Isso ficou mais simples depois do advento do Docker e ele rapidamente se tornou uma das mais importantes ferramentas do nosso dia a dia de programador. Outra ferramenta útil é o ngrok, que permite criar túneis, facilitando um colega remoto poder acessar o servidor rodando na sua máquina local, independente de onde ela esteja. Outra solução que vem me ajudado bastante é o Sentry, que usamos para armazenar todos os erros que acontecem em todos os ambientes (desenvolvedores, homologação, produção) e linguagens (desktop, backend, mobile), facilitando a correção de problemas de forma mais efetiva. E uma ferramenta de integração contínua como o Buddy, Buildkite, CircleCI, ou Travis e favorece a criação de códigos complexos sem quebrar nada no processo. Nesta categoria, não tenho um favorito pois são muitas ferramentas diferentes e úteis.
Esta lista está em constante evolução, conforme novos desafios vão surgindo. É importante manter os olhos abertos para novas soluções e uma dica é acompanhar sites como o ProductHunt para ficar por dentro das novidades.
E você? O que mais tem na sua caixinha de ferramentas e que gostaria de compartilhar conosco?