Por que as equipes de engenharia amam o Slack (e por que a sua provavelmente também vai amar)

Uau! Isso foi rápido!

Em 2009, éramos uma equipe pequena de engenheiros de software, desenvolvendo um jogo multiplayer enorme chamado Glitch.

Começamos usando o Internet Relay Chat (lembra do IRC?) para manter todos atualizados. À medida que o jogo avançou, queríamos que o nosso canal no IRC oferecesse mais do que apenas a comunicação básica. Assim, começamos a ajustá-lo, adicionando e criando novas maneiras de fazer as tarefas mais rapidamente.

Bom, o jogo foi um fracasso, então decidimos nos concentrar nesse novo projeto colaborativo que desenvolvemos.

Essa foi uma boa decisão. Nós acabamos criando um produto feito para o mercado: um jeito muito eficaz de as empresas trabalharem juntas.

Talvez porque não estávamos tentando "projetar" nada. Não havia ego nem especulações sobre um usuário fictício. Éramos os usuários.

Foi assim que o Slack nasceu.

Atualmente, ele está ficando maior do que imaginávamos, e sua adoção por equipes de desenvolvimento de todos os portes é um dos principais motivos.

Sim, o Slack é usado basicamente em todos os departamentos e setores, mas a engenharia de software foi o ponto de origem dele e ainda é de onde vem muito amor dos usuários, o que nos faz trabalhar com um sorriso no rosto.

É extremamente gratificante saber que somos capazes de criar algo que tem um impacto direto no trabalho diário dos desenvolvedores.

Este e-book é uma rápida introdução a algumas maneiras que o Slack ajuda desenvolvedores.

Esperamos que ele ajude a explicar por que os engenheiros de software parecem gostar tanto do Slack.

Por que o Slack atende tão bem a engenharia de software

O Slack é usado todos os dias por vários tipos de equipes não técnicas. Ele parece se adaptar organicamente ao trabalho ao qual está servindo de base.

Mas, o Slack parece caber na engenharia de software como uma luva. Afinal, esse é um tipo de trabalho bem especializado.

Se pararmos para pensar, todo o trabalho está cada vez mais assim. Mas, a engenharia de software é o caso de uso ideal. Ela exige um tipo de colaboração que não acontece com e-mails e reuniões presenciais. Esse tipo de trabalho precisa de um novo tipo de colaboração.

Slack: plataforma de mensagens baseada em canais

Quem nunca usou o Slack acha que ele é um app de mensagens instantâneas. Ele é muito mais do que isso. Ele se adapta ao método de trabalho de diferentes equipes, às escolhas existentes de software e... à mudança.

  • Mensagens baseadas em canais

Isso permite que equipes criem canais dedicados a tarefas, projetos ou problemas específicos. Como o canal #des-novo-site, em que todos os desenvolvedores se encontram para trabalhar no novo site. Ou o canal #triagem-app-móvel, em que as equipes trabalham juntas para resolver falhas no app móvel.

Os canais são melhor do que mensagens individuais ou conversas fechadas por e-mail porque eles facilitam incluir as pessoas certas nos assuntos certos no momento ideal.

  • Um repositório de conhecimento pesquisável

Um único lugar onde as pessoas podem encontrar documentos, conversas e decisões relevantes, como especificações do produto ou alguma discussão sobre aquele novo recurso.

Os anexos por e-mail geralmente acabam saindo da visão de todos, exceto as pessoas copiadas. O conhecimento só é valioso se puder ser encontrado.

  • Uma camada de integração

Um lugar em que o software no qual sua equipe mais usa (como GitHub, Jira, Jenkins e Trello) se integra ao lugar onde o trabalho é discutido todos os dias.

Isso minimiza a constante troca de contexto que resulta do trabalho em muitos apps diferentes. Em vez de forçar suas equipes a ir para os apps, traga os apps até elas.

Observação: reunir essas três coisas em um único lugar torna cada uma delas muito mais eficaz. O espaço é muito mais do que a soma de duas partes.

Benefícios para as equipes de engenharia de software

A plataforma certa de menagens baseada em canais influencia diretamente os aspectos mais importantes para todas as equipes de engenharia: melhor código, entregue mais rapidamente; mais eficiência na resolução de bugs; e uma experiência do desenvolvedor melhor (para que você deixe seus talentos felizes). Qualquer software que ajude você a fazer tudo isso provavelmente vale a pena conferir.

O Slack é um espaço de documentação vivo e tudo pode ser pesquisado.

Malika RajvanshyEngenheira sênior, Slack

A IDC nos ajudou a determinar a proporção do que alegamos: equipes de engenharia que usam o Slack para fazer mais.

Como o Slack determina todo o processo de engenharia de software

Sem dúvida, somos alguns dos usuários mais sofisticados do Slack para desenvolvimento de software, nossas equipes de desenvolvimento vivem nele. Mas, todos os dias ainda ouvimos falar sobre novos casos de uso e apps e integrações interessantes que nossas equipes de software estão usando.

Agora, vamos abordar alguns deles, organizados por estágios no ciclo de desenvolvimento do software.

Plano

O Slack ajuda gerentes de produtos, designers e engenheiros a chegar a um consenso sobre o que eles estão criando e o porquê.

Detalhes do canal Slack
Conversa do Slack sobre o formulário de feedback para usuário no app
  • Inicie o processo todo com um único canal para um novo produto ou recurso

Talvez seja algo como #recurso-novo-app.

Agora, há um único lugar para analisar o projeto, coletar requisitos do recurso, discutir alternativas e tomar decisões fundamentais sobre a funcionalidade e UX.

  • Compartilhamento de documentos torna tudo pesquisável

Para todos os colaboradores e novos integrantes. O Slack se integra perfeitamente com o Google Docs para que todos os documentos estejam a um clique de distância.

  • Tem uma pergunta? É só colocar no canal

Inicie uma discussão e chegue a uma solução para que todos vejam. Agora, há o registro permanente.

Código

O Slack ajuda desenvolvedores a orquestrar as inúmeras peças móveis de uma ampla base de código, acelerando o desenvolvimento e melhorando a qualidade.

Quando for hora de começar a codificar, o Slack verifica se toda a equipe está trabalhando junta:

  • Um canal chamado #des-produto-nome é o lar de tudo

Incluindo o trabalho diário da engenharia e do CQ; solicitações de pull, mesclas de código, revisões de design, reuniões diárias, discussões etc.

  • Um espaço central para a revisão de código

O Slack é compatível com qualquer processo que você usa para fazer branch, merge, revisar e lançar o código, seja um desenvolvimento de versões de branches, branches de recursos ou a partir de um mestre de merge.

Integrações do Git (com GitHub, Bitbucket ou o repositório de sua escolha) reúnem todos os alertas de mudança no Slack.

  • Um novo tipo de reunião

As reuniões são uma parte importante do desenvolvimento ágil, mas elas não precisam ser presenciais. Equipes de desenvolvimento usam o Slack para fazer reuniões, seja todas as manhãs ou todas as semanas, e ter reuniões presenciais somente quando é necessário (para muitos desenvolvedores, a melhor reunião é aquela que foi cancelada).

As integrações com softwares, como o Standuply, automaticamente enviam relatórios de resumo para o Slack, de modo que suas equipes possam compartilhar metas e tarefas; monitorar métricas de negócios; postar anotações da reunião; e monitorar o progresso e a felicidade da equipe.

Integração do Checkpoint no Slack postando uma solicitação de pull no canal

Promova a reutilização de código: a reutilização do código é um princípio fundamental de equipes de engenharia eficientes, mas é um desafio quando você tem centenas de desenvolvedores contribuindo para muitos produtos diferentes. Antes de escrever um código novo, seus desenvolvedores podem pesquisar em todos os canais do Slack para ver se alguém mais criou algo parecido. Próximo passo: perguntar nos canais certos. “Alguém já fez um seletor de datas?”. Pare de recodificar a roda.

Criar e compartilhar código usando snippets: os snippets facilitam compartilhar o código, configurar arquivos e registrar arquivos diretamente no Slack. Os membros da equipe podem baixar os snippets, ver o arquivo bruto e fazer comentários.

Slack em ação

A essência da extensibilidade

O Slack não tenta fazer o trabalho dos softwares que suas equipes já utilizam, como o PagerDuty, GitHub ou Jenkins.

Em vez disso, o Slack une todos esses apps diferentes com simplicidade, reunindo as informações relevantes deles nos canais onde o trabalho está sendo discutido (e estimulando ações nesses aplicativos, acionadas no Slack).

Sempre que vejo uma integração do Slack, eu a ativo. Ela oferece muito mais valor e nos ajuda a economizar várias etapas adicionais no processo.

Thomas LawlessEngenheiro de software sênior, IBM

Essas integrações ajudam desenvolvedores a fazer o que eles amam: criar sistemas que funcionam.

Os exemplos compartilhados neste e-book são apenas isso: exemplos. As maneiras de usar o Slack são tão diversas quanto as equipes que o usam.

Teste

O teste é incluído ao processo moderno de desenvolvimento/implantação. O Slack oferece suporte a uma abordagem dinâmica, colaborativa e transparente de testes.

A integração contínua executa seu conjunto de testes em relação a toda mescla com cada novo trecho de código. O Slack simplifica o processo de várias maneiras, grandes e pequenas:

  • Um canal #teste-recursos coordena o CQ

Deixe que a equipe de CQ colabore com desenvolvedores em um fórum aberto.

  • A integração do Jira automatiza os fluxos de trabalho de teste

Capture problemas no Slack e envie-os para o processo automaticamente. Envie notificações personalizáveis do Jira para seus canais. Atribua rapidamente problemas a pessoas e saiba que eles estão registrados onde pertencem.

Algumas equipes usam o Slack para mover automaticamente as solicitações de mudança para um novo canal, atualizando o Trello ou o Asana ao mesmo tempo.

  • Crie um canal para cada cliente

Com canais de teste exclusivos para iOS, Android e Web.

Comando de barra do Jira no Slack

Como trabalhar com o Jenkins

Muitas equipes usam o Jenkins como um servidor de integração contínua. Não demorou muito para eles encontrarem novos jeitos de integrar o Jenkins ao Slack para automatizar todos os tipos de tarefas de desenvolvimento de rotina.

Um exemplo: a integração personalizada do Slack de uma equipe de software abre um servidor do Jenkins que executa um grande conjunto de testes sempre que um desenvolvedor cria uma solicitação de pull.

Quando os testes foram executados, as notificações aparecem diretamente nos canais do Slack. Se o código não passar no teste, uma notificação é enviada ao desenvolvedor.

Versão

O Slack ajuda a enviar códigos para a produção, ajudando a automatizar os fluxos de trabalho e as notificações.

A entrega contínua sempre requer muitos lançamentos de códigos pequenos, implantados frequentemente. O Slack ajuda equipes de engenharia a simplificar um pouco disso.

Um exemplo: uma das nossas equipes de software escreveu um app, chamado Deploy Wizard, que se integra a operações e comunica o status do código no canal. Ele começa com um estágio de "canário" (um pequeno lançamento para detectar falhas repentinas), depois progride para 10%, 25%, 75% e 100% da base de usuários.

Integração do Deploy Wizard no Slack publicando atualizações de estágio

O Deploy Wizard avisa os desenvolvedores e os canais certos no Slack à medida que a implantação progride. Tudo é gerenciado pelos comandantes de implantação de plantão (engenheiros treinados, trabalhando em turnos de três horas).

Se os desenvolvedores quiserem testar o código no ambiente de preparação, eles especificam isso na solicitação de mesclagem. A implantação será interrompida na preparação até que um desenvolvedor informe que ele testou o código no canal de implantações.

Algumas equipes de desenvolvimento usam comandos de barra (como /implantar_nomeproduto_preparação) para acionar a implantação diretamente do Slack. As mensagens automatizadas mostram quando a implantação foi realizada, junto com um link para acessar e conferir (ou um botão para enviar para produção).

Operações

As equipes de desenvolvimento usam o Slack para fazer a triagem de tíquetes de problemas, coletar informações sobre os problemas e eliminar falhas.

  • Todos os problemas fluem pelo canal #triagem-nome-produto

Incluindo relatórios de atendimento ao cliente (manual ou por integrações com ferramentas, como Zendesk).

  • Integrações reúnem alertas em único lugar

Em vez de esperar que os desenvolvedores monitorem e-mails e verifiquem painéis, o Slack se torna o único lugar onde todos os alertas encontram as pessoas certas para responder.

Agregar eventos do PagerDuty ou tíquetes do Asana e postá-los nos canais certos reduz os tempos de resolução de problemas e cria uma trilha de triagem. Os membros da equipe podem trabalhar juntos no acionamento, na visualização, na confirmação e na resolução de incidentes diretamente do Slack.

Similarmente, o Slack pode enviar todos os alertas da Web, de transação, do servidor e móveis do New Relic para um canal do Slack para obter respostas rápidas. Qualquer curioso sobre o incidente pode entrar no canal e ler a respeito. Assim, os gerentes não precisam interromper os responsáveis por incidentes para ter atualizações constantes. Está tudo lá.

Emojis e reacjis ajudam a fazer a triagem de problemas e acionar fluxos de trabalho

Os reacjis são uma maneira eficiente de capturar respostas de membros de equipe, mas eles também oferecem um jeito para acionar fluxos de trabalho automatizados. Um app coleta todos eles para que eles possam ser agregados, marcados e acionados. Qualquer problema aberto (emoji de olhos, mas sem marca de verificação) é mostrado no PagerDuty.

Um canal #decisões automatizado: algumas equipes usam o emoji de martelo para indicar quando as decisões estão sendo feitas. Depois, um bot envia todas as decisões para um canal chamado #decisões, onde a administração pode ver o fluxo das decisões e os membros de equipe podem facilmente pesquisar.

Além disso, criamos um bot que coleta e relata eles em um canal exclusivo.

O lado das pessoas

Há uma demanda por engenheiros de software. Para reter seu talento, você precisa oferecê-lo a melhor experiência do funcionário possível.

As ferramentas certas podem ter um papel fundamental nisso: ajudar a reduzir o atrito no trabalho, promover a transparência, automatizar tarefas rotineiras e ajudar o trabalho entre equipes.

Converse com qualquer equipe de engenharia de software que usa o Slack.

Peça para ver como eles usam os canais, os apps e as integrações.

Depois pergunte o que eles ficariam sem.

Integração de novos desenvolvedores

Dois novos desenvolvedores entram na equipe. Como você os atualiza?

Jeito antigo: várias reuniões de integração e um monte de conversas por e-mail encaminhadas para entender. Boa sorte.

Novo jeito: convidá-los para o novo #des-novo-produto para revisar as postagens marcadas, como:

  • As especificações do produto
  • As especificações tecnológicas
  • Os designs

(Se eles estiverem no Google Docs, no DropBox ou no OneDrive, eles sempre estarão atualizados).

Eles também podem ver todas as conversas e decisões anteriores e as pessoas envolvidas. É assim que você integra um novo desenvolvedor.

É assim que os engenheiros de software usam o Slack

Essa foi a nossa rápida tour de como o Slack ajuda equipes de software a simplificar, automatizar e acelerar o trabalho. Esperamos ter esclarecido os pontos principais:

  • Isso é inédito: um espaço de colaboração adaptativo que ajuda engenheiros a trabalhar de novas maneiras. É mais do que apenas um app de mensagens instantâneas.
  • É muito flexível: permite que suas equipes façam os próprios workspaces, canais, apps e integrações que reflitam o jeito que elas trabalham.
  • Ele ajuda você a aproveitar mais do seu software existente: do GitHub e Bitbucket a Jenkins, Jira, PagerDuty, New Relic, Zendesk… seja qual for o software que as equipes de desenvolvedores, de produto, de CQ e de suporte usam, eles usarão essas ferramentas de modo mais eficiente reunindo o trabalho no Slack.
  • Ele acrescenta valor em todos os estágios do ciclo de desenvolvimento: o planejamento a desenvolvimento, testes, operações, implantações e eliminação de falhas.
  • Os engenheiros de software amam: o que significa que eles adotarão o software e expandirão o uso ao longo do tempo (entrega mais valor para a empresa).

Temos o que gostamos de chamar de 'fluxo de entrega de ponta a ponta', que começa pelo código-fonte e percorre todo o processo, até a implementação em produção. Agora integramos o Slack aos principais marcos desse processo.

Thomas LawlessEngenheiro de software sênior, IBM

Se você quiser ver mais, agende uma demonstração ou peça a um de nossos desenvolvedores para mostrar nossa instância do Slack. Temos orgulho dela.

Notas de rodapé

  1. IDC research, The Business Value of Slack, 2017, sponsored by Slack

Este recurso foi útil?

0/600

Ótimo!

Agradecemos seu feedback!

Entendi!

Agradecemos seu feedback.

Estamos com problemas. Tente novamente mais tarde.