Ir para o conteúdo
XSIS
Um homem a trabalhar à secretária com vários monitores num escritório aberto

Engenharia de Software

Engenharia de aplicações, plataformas e produtos componíveis

Plataformas centrais, portais e serviços construídos para continuar no ar, continuar rápidos e continuar a mudar

Quando o software de prateleira deixa de servir

O software empacotado atende a maior parte de um negócio, mas não a parte que torna o seu diferente. Pode ser um motor de fixação de preços, uma plataforma de operações, um portal em que os seus clientes entram ou os serviços que mantêm os outros sistemas ligados.

Esse software costuma carregar o maior tráfego e o maior risco. Uma parada interrompe vendas ou serviços públicos, páginas lentas perdem utilizadores e uma arquitetura frágil transforma cada nova funcionalidade num projeto longo.

O que muda para si

  1. Software que se encaixa no seu modo de trabalhar

    As suas regras, fluxos e modelo de dados no código, e não contornados em folhas de cálculo e etapas manuais.

  2. Plataformas que resistem à carga

    Serviços e APIs de alta simultaneidade projetados para picos de tráfego, com limites e cotas que os protegem.

  3. Mudar sem começar de novo

    Blocos componíveis, testes e lançamentos automatizados, para que novas funcionalidades saiam em versões pequenas e frequentes, e não em projetos grandes.

O que entregamos

  • Software corporativo e SaaS multi-inquilino

    Plataformas centrais de negócio e produtos SaaS multi-inquilino, com isolamento de inquilinos, funções e trilhos de auditoria previstos desde a primeira versão.

  • Arquitetura componível e microaplicações

    As capacidades de negócio empacotadas (PBCs) são partes autónomas, como fixação de preços, integração de clientes ou faturação, que podem ser reutilizadas, substituídas ou lançadas isoladamente. Construímos plataformas e pequenas aplicações a partir delas.

  • Back ends e APIs

    Microsserviços e APIs de alta simultaneidade em REST e GraphQL, com gestão de limites e cotas. Servidores do Model Context Protocol (MCP) permitem que agentes de IA usem os seus sistemas com segurança.

  • Portais de clientes, serviços públicos digitais e ferramentas internas

    Portais de autoatendimento, serviços públicos digitais e ferramentas administrativas que carregam rápido em ligação lenta e funcionam com teclado e leitor de ecrã.

  • Front ends e design systems

    Interfaces em React, Next.js, Angular ou Vue.js, construídas a partir de um design system com tokens, para que todo produto tenha a mesma aparência e o mesmo comportamento à medida que cresce.

  • Idiomas e layouts da direita para a esquerda

    Textos fora do código e traduzidos por idioma, com layouts que se espelham corretamente para o árabe.

  • Testes e pipeline de entrega

    Testes de unidade, integração e ponta a ponta a cada mudança, e lançamentos automatizados do repositório para cada ambiente.

  • Documentação e transferência

    Registos de decisões de arquitetura, APIs documentadas e manuais de operação, para que os seus engenheiros ou os nossos continuem a mudar o sistema com segurança.

Aplicações para desktop

Aplicações para desktop ainda carregam boa parte do trabalho diário em mesas de operações financeiras, balcões de loja, armazéns, clínicas e salas de controlo. Construímos para Windows, macOS e Linux, nativos ou multiplataforma. Uma aplicação antiga pode ser modernizado em etapas.

  • Design de interface para desktop

    Ecrãs projetadas para teclado, mouse e monitores grandes, com atalhos e visões densas para utilizadores experientes.

  • Versões para Windows, macOS e Linux

    Aplicações nativas ou multiplataforma construídas a partir de um único backlog, com regras de negócio partilhadas quando possível.

  • Uso offline e sincronização

    Armazenamento local encriptado e regras de conflito, para que o trabalho continue sem ligação e sincronize com segurança depois.

  • Integração com dispositivos

    Ligações com leitores de código de barras, impressoras de recibos e etiquetas, balanças, terminais de pagamento e outros equipamentos locais.

  • Instaladores assinados e atualizações

    Pacotes com assinatura de código para as suas ferramentas de gestão de dispositivos, com atualizações automáticas, lançamentos graduais e reversão.

  • Integração com back end e APIs

    Ligações seguras com o seu ERP, CRM e outros sistemas, com novas tentativas e mensagens claras quando eles estiverem indisponíveis.

  • Início de sessão e segurança local

    Início de sessão único com o seu fornecedor de identidade, dados locais encriptados e execução sem necessidade de direitos de administrador.

  • Testes e relatórios de falhas

    Testes automatizados em cada versão de sistema operacional suportada, e relatórios de falhas que mostram problemas antes de os utilizadores relatarem.

  • Plano de modernização

    Para uma aplicação existente, um plano passo a passo para substituir as suas partes mais antigas enquanto as pessoas continuam a usar.

Como trabalhamos

  1. Descobrir

    Conversamos com as pessoas que usarão e operarão o software, mapeamos o processo atual e acordamos a primeira versão.

  2. Projetar

    Definimos a arquitetura, o modelo de dados e os ecrãs principais, e testamos premissas arriscadas com protótipos.

  3. Construir em iterações curtas

    Entregamos incrementos funcionais, demonstramos num ambiente de teste e ajustamos o backlog com o que aprendemos.

  4. Verificar a cada mudança

    Testes automatizados, revisão de código e verificações de desempenho, segurança e acessibilidade correm antes de qualquer integração.

  5. Lançar

    Implementamos pelo pipeline com um plano de reversão e acompanhamos o sistema de perto após a entrada em produção.

  6. Operar e evoluir

    Mantemos e ampliamos o sistema sob um contrato de serviço, ou o transferimos para a sua equipa com um período de sobreposição.

Tecnologias e padrões

Escolhemos uma stack que a sua equipa consiga operar e contratar profissionais para ela. Nomear um produto não significa uma parceria com o fornecedor.

Linguagens
  • TypeScript
  • Java
  • C#
  • Python
  • Go
  • PHP
Frameworks
  • Node.js
  • NestJS
  • Spring Boot
  • .NET
  • Django
  • Laravel
  • React
  • Next.js
  • Angular
  • Vue.js
Bases de dados
  • PostgreSQL
  • MySQL
  • MongoDB
DevOps e observabilidade
  • Docker
  • Kubernetes
Design e acessibilidade
  • Storybook
  • WCAG 2.2
Integração
  • REST
  • GraphQL
  • OpenAPI

Como começar

Traga uma especificação e respondemos com uma proposta. Traga uma ideia e o Blueprint Studio primeiro a transforma em arquitetura e âmbito fixo.

O que acontece a seguir

  1. Sessão de pré-consultoria

    Uma sessão em linha gratuita de pré-consultoria de 30 minutos: analisamos os seus objetivos, sistemas e restrições.

  2. Avaliação de prontidão

    Numa avaliação de prontidão gratuita de 48 horas, um Arquiteto Principal verifica o seu projeto com a Definição de Prontidão em 6 pontos e recomenda o percurso adequado.

  3. Escolha do percurso

    Projetos com âmbito pronto recebem uma proposta vinculante em 3–5 dias úteis. Projetos em estágio de conceito começam no Blueprint Studio. Um sistema em produção com falhas, não documentado ou que precisa de integração começa com um diagnóstico de 1–2 semanas. O Blueprint Studio e o diagnóstico têm cada um uma taxa fixa, cotada na proposta.

  4. Entrega em cinco etapas

    Mobilização, sprints com demonstrações ao vivo, integração e robustecimento, aceitação e entrada em produção e, depois, serviços geridos. Após o lançamento vem um período de garantia e, depois, suporte e manutenção opcionais.

Perguntas e respostas

Como escolhem a stack de tecnologia?

Partimos do que a sua equipa consegue operar e contratar, do que os seus outros sistemas usam e do que o software precisa fazer. Para a maioria dos softwares de negócio, isso significa uma linguagem convencional como TypeScript, Java, C# ou Python, uma base de dados relacional e a nuvem que já usa. Registamos cada escolha e os seus motivos.

Conseguem construir um produto SaaS multi-inquilino?

Sim. Projetamos isolamento de inquilinos, configuração por inquilino, funções, ganchos de cobrança e trilhos de auditoria desde a primeira versão, porque acrescentá-los depois exige reescrever o modelo de dados. Acordamos consigo se os inquilinos partilham uma base de dados, um esquema ou nada, conforme as suas necessidades de segurança e custo.

O que a arquitetura componível significa para nós?

A sua plataforma é construída a partir de capacidades de negócio autónomas com APIs próprias, como fixação de preços, integração de clientes ou faturação. Cada uma pode ser alterada, escalada ou substituída sem tocar no restante, e novos produtos podem reutilizá-las. Serve a plataformas que vão crescer por anos; uma ferramenta pequena não precisa disso.

Qual framework de front end usam?

Usamos React com Next.js para a maioria dos novos aplicações, porque ele permite renderização no servidor e tem ferramentas maduras. Também trabalhamos com Angular e Vue.js, e continuamos no framework que já usa quando essa é a escolha sensata.

Os nossos próprios engenheiros podem trabalhar junto com a sua equipa?

Sim. Muitos clientes querem os seus engenheiros no mesmo repositório desde o início, para que o conhecimento fique interno. Acordamos revisão de código, ramificação, a definição de concluído e quem aprova os lançamentos. Os seus engenheiros podem trabalhar em par com os nossos ou assumir partes do sistema quando estiverem prontos.

E se os nossos requisitos mudarem durante o projeto?

Costumam mudar, e o processo já conta com isso. O backlog é revisado consigo a cada iteração. Num projeto de âmbito fixo, uma mudança é acordada por escrito, com o seu efeito sobre custo e datas, antes de o trabalho nela começar.

O que acontece após a entrada em produção?

Escolhe. Podemos manter e ampliar o sistema sob um contrato com tempos de resposta e monitorização. Ou transferi-lo para a sua equipa com o código, a documentação e um período de sobreposição.

Por que razão construir uma aplicação para desktop em vez de uma aplicação web?

Escolha desktop quando o trabalho exigir uso offline, acesso direto a dispositivos ou ficheiros locais, volume alto de dados ou gráficos, ou ecrãs rápidos operadas por teclado. Para a maioria das outras necessidades, uma aplicação web é mais fácil de distribuir e atualizar. Recomendamos caso a caso, e às vezes uma aplicação web com um pequeno componente desktop é a resposta certa.

Desktop nativo ou multiplataforma: qual devemos escolher?

Aplicações nativas oferecem o melhor desempenho e a maior integração com cada sistema operacional. Aplicações multiplataforma partilham um único código entre Windows, macOS e Linux, o que reduz o custo de construí-los e alterá-los. Recomendamos nativo quando uma plataforma domina ou o trabalho é exigente, e multiplataforma quando várias plataformas importam.

Uma aplicação para desktop pode funcionar sem ligação de rede?

Sim, para as tarefas que permitem. Decidimos consigo quais dados cada utilizador precisa no dispositivo, mantemos tudo encriptado e registamos as alterações até a rede voltar. Quando o mesmo registo muda em dois lugares, regras acordadas decidem qual alteração prevalece ou pedem que uma pessoa escolha.

A aplicação pode funcionar com os nossos leitores, impressoras e outros dispositivos?

Sim. Integramos os dispositivos que a sua equipa usa, como leitores de código de barras, impressoras de recibos e etiquetas, balanças e terminais de pagamento. Ligamos pelos drivers, SDKs ou portas padrão de cada dispositivo e testamos com os modelos e firmwares exatos que usa, porque dispositivos do mesmo tipo muitas vezes se comportam de forma diferente.

Como as atualizações de desktop são entregues e controladas?

Cada versão tem assinatura de código, para que cada dispositivo possa verificar que não foi alterada. As versões saem pelas suas ferramentas de gestão de dispositivos ou por um atualizador integrado, primeiro para um grupo piloto e depois para todos. Se uma versão causar problemas, os dispositivos podem voltar à versão anterior.

A nossa aplicação para desktop é antiga e difícil de alterar. Quais são as opções?

Reescrever tudo de uma vez raramente é a escolha mais segura. Avaliamos o código, as suas dependências e como as pessoas o usam. Depois recomendamos se devemos refatorá-lo, migrá-lo para um framework atual ou substituí-lo por software web. Qualquer que seja o caminho, mudamos em etapas, para que os utilizadores continuem a trabalhar e cada etapa possa ser testada.

Como protegem uma aplicação para desktop?

Os utilizadores entram pelo seu fornecedor de identidade, com início de sessão único quando o tem. Os dados locais são encriptados, os segredos ficam no armazenamento seguro do sistema operacional e a aplicação corre sem direitos de administrador. As ligações com os seus sistemas são encriptadas, e as dependências são verificadas à procura de vulnerabilidades conhecidas antes de cada versão.

O que determina o custo de uma aplicação para desktop?

O número de fluxos e ecrãs, as plataformas a suportar, o uso offline, as integrações com dispositivos e os sistemas a que ele se liga. Para uma aplicação existente, o estado do código e da documentação também importa. Assinatura, empacotamento e acompanhamento das atualizações do sistema operacional são custos contínuos a planear.

Pronto para construir? Peça uma proposta.

Envie os seus requisitos ou o seu RFP. Os nossos arquitetos os validam e devolvem uma proposta vinculante de âmbito fixo.

O que acontece a seguir

  1. Avaliação de prontidão

    Numa avaliação de prontidão gratuita de 48 horas, um Arquiteto Principal verifica o seu projeto com a Definição de Prontidão em 6 pontos e recomenda o percurso adequado.

  2. Proposta vinculante

    Após validação de arquitetura sem custo, recebe uma proposta vinculante de âmbito fixo em 3–5 dias úteis: marcos, arquitetura, estrutura da equipa e SLAs. Assinamos um acordo de confidencialidade (NDA) consigo quando solicitado, antes de partilhar os seus requisitos.

  3. Mobilização

    Depois da assinatura, as nossas equipas de engenharia iniciam o Sprint 0 em 5–10 dias úteis após a assinatura do contrato.

  4. Entrega em cinco etapas

    Mobilização, sprints com demonstrações ao vivo, integração e robustecimento, aceitação e entrada em produção e, depois, serviços geridos. Após o lançamento vem um período de garantia e, depois, suporte e manutenção opcionais.