DX — Developer Experience

Jun 16, 2016 00:00 · 689 words · 4 minute read Desenvolvimento API TDD Ferramentas

by Elton Minetto

Depois de algumas cervejas e várias horas de conversa (ou teriam sido várias cervejas e algumas horas de conversa?), eis que o Guilherme Siquinelli cunha o termo que dá título a este post.

E este termo faz muito sentido. Nos últimos anos a disciplina de UX — User Experience — provou-se muito importante, desde projetos de aplicativos até e-commerce e sistemas bancários. Tornar um sistema fácil e amigável aos seus usuários é um grande passo para o seu sucesso.

Mas esquecemos que os primeiros usuários de qualquer sistema são os desenvolvedores e designers que o estão criando e que vão continuar evoluindo e dando manutenção nele por muito tempo. Então precisamos também pensar na experiência que estes importantes usuários tem.

Pensando nisso alguns tópicos vem a mente, como:

Testes

Se você não incentiva sua equipe a escrever testes pois acha que isso vai diminuir a velocidade das entregas você está completamente enganado. Ao escrever os testes, preferencialmente antes da própria funcionalidade (TDD!), o desenvolvedor consegue pensar em caminhos e possibilidades bem mais complexas do que o normal. Nada é mais frustrante do que precisar alterar algum projeto escrito sem testes, sem a tranquilidade saber que o software pode evoluir e não quebrar no processo. Testes são uma documentação viva do sistema, de como ele deve funcionar. E aumentam muito a qualidade da equipe.

Automações

Desenvolvedores são pessoas criativas, apesar da opinião pública contrária. Não gostamos de realizar tarefas repetitivas, massantes. Precisamos automatizar processos para podermos focar na criação de algoritmos e soluções para problemas e novas funcionalidades. Criar scripts e ferramentas de automação faz parte do trabalho de toda equipe de desenvolvimento.

Ferramentas atualizadas

As linguagens de programação, plataformas, arquiteturas, metodologias e ferramentas estão em constante evolução. Desenvolvedores conscientes estão sempre atualizados com isso e tendem a usar sempre o que existe de mais moderno e que pode tornar seu trabalho mais eficaz. Claro que é preciso evitar o uso de ferramentas instáveis ou “da moda” apenas pelo prazer da novidade, mas cortar completamente a possibilidade de evolução é algo que diminui bastante o desempenho e animação dos desenvolvedores.

Documentação

Geralmente as empresas pensam na documentação do projeto/produto para seus usuários e com isso criam-se FAQs, wikis, videos, posts em blog, etc. O mesmo pode ser feito para a equipe de desenvolvimento, geralmente pela própria equipe. Fornecer tempo para que isso seja feito, bem como ferramentas e ambientes, vai melhorar a evolução do projeto e inclusão de novos desenvolvedores.

APIs

Uma coisa que as vezes esquecemos é que o I em API é de “Interface”… E a mesma dedicação que investimos na interface dos usuários, com cuidados quanto a cores, fontes, posicionamentos, etc, precisamos dedicar na criação das nossas APIs. Sejam APIs que vão ser usadas pela própria equipe ou por equipes de terceiros é sempre importante pensarmos em URIs e formatos que façam sentido, que auxiliem o desenvolvimento. Como o grande Guilherme Blanco cita:

“API is a way to communicate w/ your app/platform/etc. SDK is when you create such a shitty API that requires a lib for peep to use it” (me)

https://twitter.com/guilhermeblanco/status/740971604465856512

Open Source

A grande maioria dos desenvolvedores aprendeu e continua aprendendo graças a projetos Open Source. Desde linguagens de programação até frameworks e bancos de dados, essa é uma parte importante de quem somos. Incentivar o uso e contribuição em projetos open source vai aumentar o ânimo da equipe, fomentar o conhecimento e também serve como fonte de divulgação do projeto/produto/empresa. Se durante o desenvolvimento a equipe identificar algo que pode se tornar open source, sem prejudicar o negócio, isso é algo que pode ser uma grande fonte de reconhecimento e publicidade.

Estes são apenas alguns dos pontos que conseguimos pensar no momento, mas assim como a UX, a DX é uma disciplina bem maior e que deveria ter dedicação e importância dentro das empresas.

O que você acha? Tem algum outro ponto que percebe como importante neste processo? Discorda com isso tudo? Adoraríamos ler suas opiniões sobre o assunto.

Este post foi escrito em conjunto com o Guilherme, que tem todos os créditos pelo termo DX e pelas cervejas que geraram o assunto :)

tweet Share