Modernização e dívida técnica

Atualize o software de que seu negócio depende.

Modernizamos o sistema do qual seu negócio depende, uma parte por vez. A IA ajuda na análise de código, nos testes e nas migrações; engenheiros sêniores revisam o trabalho e planejam as mudanças conforme as necessidades da sua operação.

O que fazemos

  • Avaliar

    identificar dependências, riscos conhecidos e mudanças necessárias para a próxima iniciativa de produto ou IA

  • Estabilizar

    primeiro testes e observabilidade, para reduzir o risco da mudança

  • Evoluir

    atualizar ou substituir componentes por etapas, com planos de deploy e recuperação

  • Preparar uma integração de IA

    planejar o acesso aos dados, as interfaces e as permissões de que o caso de uso precisa

Provas

CareerVillage

Nosso trabalho com a CareerVillage começou em 2013. Na primeira etapa, atualizamos o Django, organizamos o código, migramos parte do front-end para React e configuramos os deploys com Docker e Jenkins. Também adaptamos o site para dispositivos móveis.

Leia o caso

Oxford Economics

A Oxford Economics precisava substituir tecnologia desatualizada e melhorar a publicação e a consulta de relatórios. Em 2019, nosso trabalho incluía o site, o portal de clientes, a busca de relatórios e a publicação pelo MS Word.

Leia o caso
CareerVillage · trabalho iniciado em 2013
Django · React · CI · celular
Oxford Economics · publicação e busca de relatórios
As decisões de arquitetura e design que a sophilabs tomou no início deram um retorno enorme.
Arvindra SehmiCIO, Oxford Economics

Sinais de que é a hora

  • O sistema legado está bloqueando uma iniciativa de IA
  • As pessoas que o entendiam estão saindo
  • Os custos de infraestrutura e licenças precisam ser revistos
  • Um due diligence está vindo

Experiência com sistemas existentes

Nosso trabalho inclui a modernização de sistemas Python/Django para a CareerVillage e o desenvolvimento de componentes, bibliotecas e extensões da Auth0 entre 2012 e 2019.

Decidir o que precisa mudar

A avaliação identifica o que manter, melhorar, substituir ou investigar. Também registra as premissas das estimativas e os riscos de deixar um componente como está.

Escolher a próxima mudança considerando o sistema

Uma dependência antiga, uma integração sem documentação ou um deploy manual podem dificultar a entrega de uma funcionalidade. Revisamos essas limitações com seu time e identificamos de quais partes do sistema a próxima mudança depende.

Usamos IA para ajudar a entender o código, gerar testes e preparar migrações, com engenheiros sêniores revisando os resultados. Os prazos dependem das dependências, da cobertura de testes e das mudanças de que o sistema precisa. Primeiro estabilizamos os caminhos críticos; depois trabalhamos em etapas gerenciáveis, com planos de deploy e recuperação. Quando uma mudança exige uma janela de manutenção, combinamos isso com seu time.

Como planejamos mudanças em um sistema em produção

Primeiro estabilizar

Documentamos o comportamento crítico e adicionamos testes e monitoramento nas partes que serão alteradas. Essas verificações entram no pipeline de entrega combinado.

Uma peça por vez

Cada etapa tem escopo e plano de deploy definidos. Verificamos o componente, suas dependências e as migrações de dados antes de decidir como introduzi-lo.

Revisar o andamento

Revisamos com seu time as mudanças concluídas, os resultados dos testes e os riscos pendentes. Essa revisão orienta o escopo e a ordem da próxima etapa.

Revisão de engenharia

Os engenheiros revisam o código, os testes e as migrações assistidos por IA com base no comportamento que o sistema precisa preservar. Combinamos quem aprova cada tipo de mudança.

Algumas mudanças exigem uma janela de manutenção. Planejamos com seu time o deploy, a recuperação e o impacto na operação.

Como é um trabalho com a gente

Quando uma iniciativa de IA depende de mudanças em um sistema existente, o AI Discovery Sprint ajuda a avaliar as limitações técnicas e definir um primeiro escopo de implementação. Se o trabalho já estiver definido, podemos começar pela implementação. Oferecemos trabalho a preço fixo e assinaturas mensais com preço por entregáveis acordados. A proposta define o time, os prazos, a frequência de revisão e o processo de mudanças. O código e a documentação ficam no seu repositório.

Funciona bem com

Perguntas frequentes

  • Reescrever ou refatorar?

    Comparamos o comportamento que precisa ser preservado, as dependências, os riscos de migração e o custo de cada opção. Mudanças incrementais podem limitar o escopo de um deploy; substituir um componente pode fazer mais sentido quando ele já não atende aos requisitos.

  • Vocês conseguem trabalhar em um sistema sem testes e sem documentação?

    É o paciente típico. Primeiro estabilizar, depois mudar.

  • Como vocês usam IA na modernização?

    Para ajudar a analisar código, gerar casos de teste e preparar migrações. Os engenheiros sêniores revisam os resultados e verificam se o comportamento que o sistema precisa manter foi preservado.

  • Código escrito com IA não adiciona mais dívida?

    Isso pode acontecer quando mudanças geradas são incorporadas sem entendimento ou revisão suficientes. Documentamos o comportamento esperado, revisamos as mudanças e as testamos com base nos requisitos. O trabalho assistido por IA precisa de responsáveis e de um plano de manutenção, como o restante do código. Como usamos ferramentas de IA para desenvolver software

  • Quem fica dono do sistema depois que vocês saem?

    É seu desde o primeiro commit: no seu repositório, documentado, com os testes e o runbook. A passagem de bastão é escrita para funcionar sem nós.

Planeje a próxima mudança no seu sistema.