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 casoOxford 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.
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.