DEV Community

Cover image for O dia-a-dia da engenharia na Convenia
Anderson Casimiro for Convenia

Posted on

O dia-a-dia da engenharia na Convenia

Salve pessoal! Toda área de desenvolvimento tem suas particularidades. Aqui na Convenia não é diferente. A seguir vou comentar algumas coisas do nosso dia a dia. Como e com o quê trabalhamos, quais processos utilizamos, entre outras coisas.


Tecnologia

Direto ao ponto: O nosso produto é dividido em vários serviços, cada um responsável por um domínio de negócio. São diversos backends, cada um servindo sua API REST em PHP usando o framework Laravel, usando MySQL para persistência.

Nossas interfaces para os clientes são disponibilizadas como SPAs, desenvolvidas com Vue.JS e WebComponents confeccionados por nós. Usamos RSCSS como metodologia de estilo. Estes SPAs comunicam-se via GraphQL com um Backend For Frontend em Node.JS, que comunica-se com o MongoDB para queries e com as APIs REST para as mutations. Sim, os dados são sincronizados entre os bancos das aplicações com este NoSQL, na direção de uma arquitetura baseada em CQRS.

Como toda empresa que já colocou algum projeto de software no mercado, temos uma aplicação legada. Estamos trabalhando para a desativarmos ainda este ano, seguindo uma evolução sustentável nesse processo de refatoração.

Estruturalmente organizamos tudo isso com Docker e Docker-Compose, desde o desenvolvimento local, passando por nossos pipelines Jenkins em todos os ambientes até produção.

Agilidade

Metodologias ágeis têm como objetivos priorizar as interações, ter mais coisas prontas antes e responder rápido a mudanças. Aqui na Convenia não é diferente e usamos a mentalidade ágil para organizar nossos processos.

Nossos times realizam entregas em ciclos. No último ano adotamos o Scrum para a entrega de valor nos times de produto. Evoluímos o modelo ao longo do tempo e estamos entrando em um processo mais próximo ao FDD (Feature Driven Development).

Também usamos o Kanban para o time de SRE (Site Reliability Engineering) seja nas demandas de correções ou mesmo no desenvolvimento de sistemas para nossa estrutura de experiência de desenvolvimento.

Também trouxemos do ágil a prática de Code Review, o Pair Programming, a reunião diária com todo o time (ainda mais útil em tempos de trabalho remoto) além da transparência com relação ao progresso do trabalho entre os times. Também estamos adotando o 12 factor apps em nossos sistemas.

Qualidade

Nós prezamos pela qualidade de nossas entregas. Seguimos a premissa de "Qualidade não é discutível". Estabelecemos nosso processo de maneira a não ser engessado para quem desenvolve e garantir que novas versões serão, no mínimo, tão boas quanto as anteriores.

Nossos serviços de backend passam por vários passos de análise estática (Padrão de código, adequação a boas práticas, code smell e controle de vulnerabilidades) ao longo do ciclo de desenvolvimento. Nossa cobertura de testes está acima de 95% em todos os nossos serviços. Só a cobertura não garante muita coisa, por isso nosso time explora quantos cenários forem conhecidos para cada parte do nosso software e os atualiza conforme evoluímos.

Do lado do frontend temos uma organização bem flexível para nossos layouts e componentes, desenvolvendo com regras do ESLint além de somente a formatação. Também adotamos a metodologia RSCSS para padronização de estilos e temos uma validação forte quanto a fidelidade visual junto ao time de Design e Usabilidade.

Autonomia

A Convenia tem como base de sua cultura a Autonomia, abordada sob diversos aspectos. É uma empresa que preza pela Transparência e Colaboração por toda a organização. O foco de nossas ações é o cliente e isso significa muito olhar para nós mesmos.

Quando falamos de Autonomia Intelectual, respeitamos o conhecimento de todos, seja alguém que está começando na área ou com décadas de experiência. Todas as pessoas envolvidas têm voz ativa. Promovemos também que todos saibam escutar e compreender as ideias dos outros. Quanto mais conhecimento investido em algo, menores as chances de avançarmos por um caminho ruim.

Valorizamos tanto a diversidade de conhecimento que a incorporamos ao nosso processo. Temos um canal aberto a todos na empresa para a sugestão de mudanças para o nosso produto. Falando da engenharia todos são encorajados a sugerir novas e melhores maneiras de trabalhar e desenvolver. E fazemos isso como a própria internet evolui: com um sistema de RFC (Request for Comments)

Identidade

Cada pessoa é muito importante no nosso time. E valorizamos as características individuais e trabalhamos na organização do time para que cada pessoa tenha a melhor experiência de codar e se desenvolver.

Realizamos mensalmente reuniões 1:1 (um a um) com todos os membros do time. Essas cerimônias têm o objetivo de deixar cada pessoa a par sobre o que aconteceu (ou não) de um mês para o outro, além de cuidar da sua evolução profissional.

Falando em evolução profissional: temos a premissa de dar as mesmas oportunidades e preparação a todos para que cresçam no nosso time. E as regras estão claras para todo mundo. E cada um sabe como está com relação a sua carreira por um sistema baseado em dados, com forte influência da nossa cultura e do que esperamos individualmente de cada um, muito além do código. Isso eu conto em outro artigo com mais detalhes ;).


Somos a Engenharia da Convenia. Não somos uma empresa que está na bolsa, não somos o próximo unicórnio, não somos uma empresa que acredita que o lucro vem antes das relações humanas. Estamos aqui para fazer a melhor solução de RH, desenvolvida da melhor maneira, pelas melhores pessoas.

Bora fazer parte?

Top comments (0)