Como escalar o desenvolvimento em plataformas digitais garantindo a qualidade de software?

Raphael Castilho

A forma como os produtos e serviços são consumidos está mudando significativamente após a popularização das plataformas digitais. A exigência para estabelecer confiança na qualidade de software e no cumprimento do serviço está aumentando. Plataformas como Amazon, iFood e Uber estão entre algumas das principais empresas responsáveis pela mudança na forma de consumo.

Com o crescimento da demanda, surgem empresas com o desejo de ofertar seus produtos e serviços através de plataformas digitais. Um dos maiores desafios a serem enfrentados está relacionado ao aumento de escala do desenvolvimento de software da plataforma. À medida que a demanda cresce, mais mudanças são exigidas para acompanhar o ritmo de evolução do negócio. Inclusão de novas funcionalidades, melhorias que facilitam a usabilidade e capacidade de atender mais usuários sem comprometer o desempenho do sistema e a qualidade de software estão entre as principais expectativas do negócio.

Diante de um cenário complexo, e que muda frequentemente, é importante considerar a adoção de algumas estratégias, que já foram aplicadas em outras plataformas, e se provaram eficientes ao se deparar com a necessidade de aumento de escala do desenvolvimento de software.

Garantir a qualidade de software começa com a distribuição do time

Conforme a plataforma digital cresce, é natural que o software também cresça, e para atender as expectativas de negócio, geralmente é necessário contar com a ajuda de mais pessoas responsáveis pela evolução e manutenção do sistema.

Ao se trabalhar com mais pessoas em um mesmo projeto, torna-se mais difícil garantir um bom gerenciamento e eficiência de comunicação. Dependendo do tamanho do time, é interessante considerar a distribuição das pessoas em equipes menores.

Apesar de não existir um padrão para o tamanho ideal de uma equipe, é recomendado que um time possua entre sete a dez pessoas. Jeff Bezos criou a regra das duas pizzas, e esse pode ser um bom ponto de partida. A regra diz que na Amazon, eles tentam formar equipes que não sejam maiores do que podem ser alimentadas por duas pizzas.

Uma estratégia de distribuição de equipes que vem se consolidando é a de segregação dos times de acordo com os contextos de negócio. Em um E-Commerce por exemplo, poderia haver um time responsável pela venda, outro pelo estoque, outro pelo onboarding do cliente, e assim por diante. 

Um ponto fundamental ao separar os times é garantir que eles consigam trabalhar de forma independente, ou evitar ao máximo a dependência entre times. A grande vantagem em ter times menores e independentes está na facilidade de gerência e melhoria da comunicação. Se uma equipe é altamente dependente de outra, a gerência e comunicação se tornam ainda mais difíceis de manter do que se fosse um time único.

Segregação do sistema

Quando muitos desenvolvedores trabalham em uma única base de código, suportando um sistema monolítico, maiores são as necessidades de alinhamento entre as pessoas. O conhecimento sobre todo o sistema é mais complexo, conflitos de implementações se tornam mais frequentes por compartilharem o mesmo código, adição de novos comportamentos se tornam mais complicados devido ao alto acoplamento, e bugs são incluídos, onde eventualmente, impactam todo o sistema. Torna-se mais difícil garantir a qualidade de software na evolução e manutenção da plataforma, e diante desse cenário, é importante considerar a segregação do sistema em aplicações menores.

Com contextos de negócio bem definidos, e equipes responsáveis por cada contexto, é interessante considerar a segregação do sistema similar à estrutura de segregação das equipes, onde cada time é responsável pela sua aplicação.

Assim como na distribuição da equipe, é fundamental que as aplicações sejam independentes, e consigam funcionar de forma isolada. É necessário se atentar para não se criar um monolítico distribuído, onde se aumenta a complexidade de evolução e manutenção, e não se obtém nenhuma vantagem de segregação do sistema. É desejável que o alinhamento entre os times aconteça somente quando houver mudanças em pontos de integração.

Adoção de metodologias ágeis do jeito certo

O planejamento e execução de métodos tradicionais não são suficientes para suportar os desafios atuais. A necessidade de evolução contínua e resposta rápida diante de novos cenários exigem mais dinamicidade no processo.

Diante de cenários de negócio cada vez mais complexos, e necessidade de mais agilidade nas entregas, é interessante considerar a adoção de metodologias ágeis no processo de desenvolvimento da plataforma. A aplicação de metodologias ágeis, do jeito certo, possibilita a experimentação de novas funcionalidades e melhorias de forma mais rápida, possibilitando a adequação do negócio com mais velocidade diante das necessidades dos usuários.

É importante observar que colar alguns post-it em um quadro e movê-los assim que as tarefas são concluídas não é Kanban. Definir um escopo de tarefas dentro de um intervalo e depois avaliar o que foi entregue não é Scrum. O foco do Agile não é em garantir que um processo funcione, ou que tarefas sejam executadas, e sim em entregar resultados com maior velocidade. Os times de desenvolvimento e negócio precisam estar comprometidos com a real entrega de valor para os usuários.

Qualidade de Software: Por onde devo começar?

O processo para suportar o aumento de escala do desenvolvimento de software em plataformas digitais não é simples, e demanda a coordenação de profissionais experientes, que já vivenciaram na prática, os desafios apresentados neste texto.

A EximiaCo possui consultores especializados no desenvolvimento de plataformas digitais, capazes de mitigar riscos e alcançar agilidade no processo de evolução do negócio mantendo a qualidade de software. Conheça a nossa solução de Software Development as a Service, na qual oferece a alocação de desenvolvedores seniores em sua empresa para acelerar a entrega de projetos de software sob a gestão de consultores estratégicos que acompanham a evolução do projeto garantindo a sua qualidade.

Compartilhe este insight:

Comentários

Participe deixando seu comentário sobre este artigo a seguir:

Subscribe
Notify of
guest
0 Comentários
Inline Feedbacks
View all comments

AUTOR

Raphael Castilho
Desenvolvedor especialista em .NET com experiência em aplicações corporativas de larga escala

SOLUÇÕES EXIMIACO

Desenvolvimento de Software

Gestão de times para acelerar entregas e atuar na resolução de problemas complexos.

Código .NET de Alta Performance

Um guia prático para a escrita de sistemas que executam no melhor tempo consumindo menos recursos.
Tech Trusted Advisor, Fundador e CEO da EximiaCo

NOVOS HORIZONTES PARA O SEU NEGÓCIO

Nosso time está preparado para superar junto com você grandes desafios tecnológicos.

Entre em contato e vamos juntos utilizar a tecnologia do jeito certo para gerar mais resultados.

Insights EximiaCo

Confira os conteúdos de negócios e tecnologia desenvolvidos pelos nossos consultores:

Engenharia de Software

Três vantagens reais de utilizar orquestradores BPM para serviços

Arquiteto de software e solução com larga experiência corporativa
Desenvolvimento de Software

Os principais desafios ao adotar testes

Especialista em Testes e Arquitetura de Software
Arquitetura de Dados

Insights de um DBA na análise de um plano de execução

Especialista em performance de Bancos de Dados de larga escala

Acesse nossos canais

Simplificamos, potencializamos e aceleramos resultados usando a tecnologia do jeito certo

EximiaCo 2022 – Todos os direitos reservados

0
Queremos saber a sua opinião, deixe seu comentáriox
()
x

Como escalar o desenvolvimento em plataformas digitais garantindo a qualidade de software?

Para se candidatar nesta turma aberta, preencha o formulário a seguir:

Condição especial de pré-venda: R$ 14.000,00 - contratando a mentoria até até 31/01/2023 e R$ 15.000,00 - contratando a mentoria a partir de 01/02/2023, em até 12x com taxas.

Tenho interesse nessa capacitação

Para solicitar mais informações sobre essa capacitação para a sua empresa, preencha o formulário a seguir:

Tenho interesse em conversar

Se você está querendo gerar resultados através da tecnologia, preencha este formulário que um de nossos consultores entrará em contato com você:

O seu insight foi excluído com sucesso!

O seu insight foi excluído e não está mais disponível.

O seu insight foi salvo com sucesso!

Ele está na fila de espera, aguardando ser revisado para ter sua publicação programada.

Tenho interesse em conversar

Se você está querendo gerar resultados através da tecnologia, preencha este formulário que um de nossos consultores entrará em contato com você:

Tenho interesse nessa solução

Se você está procurando este tipo de solução para o seu negócio, preencha este formulário que um de nossos consultores entrará em contato com você:

Tenho interesse neste serviço

Se você está procurando este tipo de solução para o seu negócio, preencha este formulário que um de nossos consultores entrará em contato com você:

× Precisa de ajuda?