Skip to main content

28.10.2025

Dos and Don’ts in Outsourcing BTP App Development


Mateusz

Mateusz

Software Architect & Developer, SAP S/4HANA Consultant

I’ve lost count of how many times I’ve heard this request from clients:

“We just need a simple app on BTP. Can you build it for us?”

It always sounds simple at first. But if you’ve ever worked inside an SAP landscape, you know nothing is ever just an app.

SAP BTP isn’t a playground for quick PoCs. It’s where business logic, security, and integrations converge with the clean-core strategy that every S/4HANA program depends on. When you build here, you’re coding in the digital backbone of an enterprise.

That’s exactly why outsourcing BTP app development can either accelerate your roadmap or quietly turn into a maintenance nightmare.

Over the past few years, I’ve reviewed dozens of outsourced BTP projects. Some were brilliant: clean architecture, proper use of CAP, event-driven integrations, and bulletproof authorisation models. Others looked fine on the surface, until you saw the hardcoded APIs, unscoped roles, and direct core modifications underneath.

So if you’re planning to outsource your next (or first) BTP app, this guide will help you do it right.

We’ll talk about what separates a sustainable BTP app from a short-term prototype, where teams usually go wrong, and what you should demand from your development partner before you sign anything.

The Dos: How to Outsource BTP App Development the Right Way

If you’ve decided to build on SAP BTP, it’s probably because your current SAP landscape has hit its natural limits. You’re looking for agility that the core system can’t provide: faster automation, cross-system intelligence, or a modern user experience.

But keep in mind that building on BTP isn’t just another development initiative. It’s a strategic move that determines how future-proof your SAP environment really is.

When you outsource BTP app development, you’re not buying code; you’re buying experience. The right partner already knows the technical design patterns, integration pitfalls, and architectural guardrails that keep your solution stable and upgrade-safe.

Done right, outsourcing can help you build faster, cleaner, and more efficiently than you ever could internally.

Here’s how to approach BTP outsourcing the right way to make it a foundation for innovation, not another layer of technical debt.

1. Start from the Business Case, Not the Feature List

One of the biggest mistakes I see is when companies approach a vendor, saying,

“We need a Fiori app that does X.”

That’s a feature list, not a business case.

Start with the business problem, quantify it, and define KPIs (cycle time reduced, rework avoided, compliance improved).

The right way to start is with the why, the measurable business outcome.

For example:

  • We want to reduce order reconciliation time by 40%.
  • We need to automate manual approvals to avoid compliance delays.
  • We want to provide a single customer dashboard that pulls data from multiple systems.”

That clarity matters because it shapes everything downstream: architecture, user design, integration scope, and KPIs.

When you start with outcomes, your outsourcing partner can align technical design to deliver measurable results: not just a nice-looking app.

Ask this early: “What business metric will this app improve, and how will we measure it post-go-live?”

If your vendor can’t answer that confidently, pause and realign before writing a single line of code.

2. Choose a Partner Fluent in SAP and Cloud

A good BTP partner is someone fluent in both SAP enterprise architecture and modern cloud engineering. If your partner only talks about CAP, Node.js, or Fiori, that’s not enough.

And if they only talk about ABAP, transports, and OSS notes, that’s not enough either.

The magic happens when they understand how to:

  • Design CAP services that integrate cleanly with S/4 APIs
  • Build Fiori UX that respects SAP’s role model and UI annotations
  • Use BTP Destinations for connectivity instead of hardcoded endpoints
  • Configure XSUAA for multi-tenant apps securely
  • Deploy via CI/CD pipelines that align with SAP transport governance

Those are the skills that make a BTP app scalable, compliant, and upgrade-safe.

So before you sign a contract, test your vendor’s bilingual fluency.

Ask them:

Explain how XSUAA scopes align with S/4 business roles.

How would you integrate with S/4 without breaking clean-core?

What’s your preferred CAP to Event Mesh pattern for asynchronous communication?

The way they answer will tell you more than any sales deck ever could.

3. Demand Architecture Transparency Before Development

Never start development without a technical design blueprint. If your vendor jumps straight into coding, you’re buying a black box.

A few months ago, I got a call from a mid-sized logistics company. They had already outsourced a BTP app (a Fiori interface to handle order updates) and were about to go live. Everything looked fine until their first upgrade test.

The app stopped working. Completely.

It turned out the vendor had used an unreleased S/4HANA API, hardcoded system roles, and skipped XSUAA configuration altogether. The app could run in a sandbox, but not in a production-grade SAP landscape.

Fixing it meant rewriting nearly 40% of the codebase, not because of bad developers, but because the architecture was wrong from day one.

This story isn’t unique. I’ve seen similar patterns across industries: fast delivery, poor design, and high rework.

We’ve pushed back on many poor designs over the years: tight coupling to the core, weak auth, no retry semantics, no transport strategy, which create high maintenance costs and operational risk.

So we always advise the teams to do it right the first time before scale exposes the cracks.

At AvoTechs, we never start a project without this step. We call it the Solution Design Sprint, a short, structured workshop to map out the architecture before touching code.

That technical design blueprint of the app then becomes the single source of truth: guiding developers, reviewers, and your internal IT team through the project lifecycle.

A proper technical design for a BTP app should include:

  • A component architecture showing each service (CAP/RAP, Fiori, Integration Suite, HANA Cloud, IAS/XSUAA, Destinations)
  • Data flow diagrams showing which systems are source vs. target
  • Authorisation & identity flows (how users log in, how roles propagate)
  • A transport & CI/CD plan (how code moves from dev to prod)
  • An observability plan (logs, metrics, alerts, monitoring tools)
  • Non-functional considerations such as scalability, latency, retry logic, and caching

4. Build with Lifecycle in Mind, Not Just the Go-Live

A BTP app isn’t a one-off deliverable. It’s a living extension of your SAP landscape. That means it must be easy to update, scale, and monitor.

When outsourcing, make sure your partner designs for run, not just build.

Ask for:

  • A CI/CD pipeline using SAP’s Cloud Transport Management or your preferred DevOps toolchain
  • Automated testing (unit + integration + regression)
  • A configuration plan (for destinations, subaccounts, service keys)
  • Monitoring dashboards integrated with your observability stack
  • Runbook documentation. Step-by-step instructions for your support team

Too many outsourced apps fail because no one thought about who owns them after delivery. Designing for lifecycle ensures you can maintain it independently, without vendor lock-in.

5. Document Ownership and Accountability

Always, always document ownership. It’s astonishing how many BTP projects collapse during handover because no one knows who controls what. Make sure your contract defines ownership of:

  • Source code repositories (should be in your namespace)
  • Service instances and credentials
  • Destinations and connection parameters
  • Deployment pipelines
  • Documentation and runbooks

Outsourcing shouldn’t mean dependency; it should mean enablement. The goal is to get expert help to build faster, not to give up control of your system.

Don’ts: the Most Expensive Mistakes We Keep Seeing

If you’ve ever been called in to “rescue” a BTP project that’s gone sideways, you start seeing patterns. The same mistakes, just in different industries.

Most of them don’t happen because of bad intent; they happen because teams underestimate what “SAP context” really means.

SAP BTP is a powerful platform, but it’s also highly opinionated. It expects developers to understand how clean-core, integration patterns, and lifecycle management all fit together. When those fundamentals are ignored, projects still go live, but what’s underneath often isn’t sustainable.

Avoiding these mistakes (the don’ts) to make your BTP app more reliable and future-proof.

1. Don’t Treat BTP like “Just Another Cloud”

This is the number-one cause of project rework. Someone says, “It’s just a Node app, let’s host it on BTP,” and suddenly the entire architecture is designed like AWS or Azure.

BTP isn’t generic cloud hosting. It’s tightly coupled with SAP’s identity, authorisation, and upgrade framework.

A CAP service on BTP doesn’t just “call an API,” it authenticates via destinations, inherits roles from IAS/XSUAA, and often interacts with S/4HANA’s released APIs or events.

That means every choice, from project layout to service binding, affects compliance and maintainability. When vendors without SAP experience build on BTP, they often skip these nuances.

I’ve seen apps with:

  • Direct DB calls into S/4 tables (no API layer)
  • Custom JWT logic that ignores SAP scopes
  • Static destination configs that break during deployment

The code “works,” but the architecture isn’t upgrade-safe. And when your S/4HANA system patches or your IAS tenant updates, things start to break quietly.

How to avoid it:
Choose partners who understand both worlds, cloud-native and SAP-native. Ask for a solution architecture diagram before you sign off. If it doesn’t show S/4HANA, XSUAA, and Destinations, that’s your first warning sign.

2. Don’t Touch the Core to Move Faster

Many companies adopt BTP to keep their core SAP system clean, only to let their vendor rebuild the same spaghetti, just in a different layer.

Clean-core isn’t just a slogan. It’s a discipline. Every BTP app should respect these principles:

  • Business logic sits outside the digital core.
  • Integrations use released APIs or Event Mesh, never direct DB access.
  • Custom code is side-by-side, not embedded.

I’ve reviewed projects where outsourced teams pushed changes back into S/4HANA “just to make it work.” That’s a dangerous pattern, because the next upgrade will undo all those quick fixes, and you’ll pay for them twice.

How to avoid it:
Ask your partner how they ensure upgrade safety and clean-core compliance. If the answer doesn’t mention CAP/RAP, released APIs, or side-by-side extensibility, push back.

3. Don’t Underestimate Identity, Roles, and Security

Security on BTP is not optional, yet it’s often an afterthought. Too many vendors treat XSUAA as “that JSON file we fill in at the end.”

That’s how you end up with apps where every user gets admin access, or where IAS isn’t federated properly, breaking SSO and SoD compliance.

Security is one of the hardest parts of BTP, and it’s where SAP context really matters.

If your vendor doesn’t know how to:

  • Integrate XSUAA scopes with business roles in S/4
  • Map IAS groups to application roles
  • Handle token propagation between services

Then you’ll have an app that passes testing but fails audit.

How to avoid it:

Make authorisation and identity part of your architecture review. Ask for a role matrix and an auth flow diagram early in the project. And test integration with your corporate IdP before go-live.

4. Don’t Leave without Asking for Documentation or a Proper Handover After Go-Live

Many outsourcing engagements end the moment the app goes live. What’s left behind is often a Git repo, a PDF, and a long list of unanswered questions.

Who owns the destination setup?
What happens when the token expires?
Who’s responsible for monitoring the queues?

Without proper documentation, CI/CD pipelines, and a structured handover process, your BTP app quickly becomes a black box. The moment something breaks, you’re back to vendor dependency.

How to avoid it:
Make handover contractual, not optional. It should include code walkthroughs and architecture documentation, sequence diagrams and environment setup details, Pipeline definitions and test coverage reports, operational runbooks and monitoring instructions.

A project isn’t truly complete until your team can run, extend, and support it independently.

5. Don’t Ignore Observability and Lifecycle Management

Most BTP apps fail quietly at first, then loudly later. Why? Because there’s no monitoring, no alerting, and no traceability. Logs are scattered, error handling is missing, and retry logic doesn’t exist. When integration messages fail, no one notices until a business user calls.

A good BTP app needs observability by design, not as an afterthought. That means:

  • Centralised logging (SAP Cloud Logging, Log Service, or Elastic integration)
  • Alerts for failed jobs or message retries
  • Monitoring dashboards for each service
  • DLQs (Dead Letter Queues) for Event Mesh
  • Metrics, trace IDs, and dashboards for support teams

How to avoid it:
Add observability and SRE checkpoints to your project’s definition of done. Don’t let a single app go live without structured logging, real-time monitoring, and documented runbooks. Because in production, what you can’t see, you can’t control.

Pricing Clarity: What You’re Actually Paying For

BTP app development costs aren’t arbitrary; they’re a reflection of how mature the process is and how much risk is managed upfront.

In SAP projects, you don’t just pay for code. You pay for architecture discipline, compliance, clean-core alignment, and the experience to avoid rework six months later.

A realistic, mid-complexity BTP app development project typically costs between €15,000 and €35,000 in today’s market. This assumes one or two integrations, a single workflow, and a role-based Fiori UI.

More complex, event-driven, or multi-system applications will naturally cost more.

Keep in mind that SAP BTP service consumption (runtime, HANA Cloud, Event Mesh, etc.) is billed separately through SAP, not through your development partner.

You can choose from several engagement models depending on your project needs:

  • Fixed-Scope Sprints (2–4 Weeks). Predictable delivery with no surprises. Each sprint covers a specific, measurable outcome, for example, PO Approval Workflow App or CAP Service for Vendor Data.
  • Outcome-Based Packages. Predefined solutions for common scenarios, such as S/4 to BTP Connector for Orders & Invoices, CAP-Based Extension for Sales Data Automation, or Custom Fiori App for Master Data Management.
  • Retained AMS (Application Maintenance & Support). A light, ongoing engagement (typically 20–40 hours per month) for enhancements, monitoring, and continuous improvement. This keeps your app stable while allowing it to evolve with your business.

When it comes to BTP, cheaper doesn’t mean leaner; it means riskier.

Lower quotes often skip critical steps like proper design, testing, or handover. You might save money on paper, but you’ll pay it back later in unplanned fixes and maintenance. The best partner price for sustainability, not speed. They build once, build right, and make sure you don’t have to rebuild it six months later. 

Want to dig deeper into price estimates?

Read our guide on SAP BTP App Development Cost  for Mid-Sized Companies

How AvoTechs Helps You Build Better On SAP BTP

At AvoTechs, we don’t just build apps on SAP BTP; we make sure they’re built to scale. Over the years, we’ve reviewed many BTP projects that suffer from weak architecture and poor technical design, which becomes expensive to maintain. Those experiences have shaped our philosophy: do it right the first time.

That’s why we start with a strong technical blueprint. We plan the full technical design of your app, from data models and APIs to authentication flows and CI/CD pipelines, to ensure the foundation is clean, compliant, and scalable.

If you already have an app design created by another partner, we also provide an independent Technical Design Review. Our BTP architects evaluate your existing blueprint against SAP best practices to identify gaps in performance, upgrade safety, or maintainability.

We’ve seen firsthand how a poorly designed architecture can drive up the total cost of ownership and create long-term stability issues, which is why early design validation matters so much.

Beyond app development, we guide organisations through the entire BTP adoption journey.
Our consulting services cover:

  • BTP adoption workshops to help your teams understand BTP’s extensibility and integration capabilities.
  • Integration strategy design. How to connect S/4HANA, external SaaS systems, and on-premise components securely and efficiently.
  • Transition planning. Advisory for moving on-premise solutions and custom ABAP extensions into the BTP cloud.

For teams coming from on-premise SAP landscapes, we guide you through governance, cost control, and lifecycle management, so your apps stay secure, compliant, and cost-efficient.

Moreover, our BTP consultants help you establish governance frameworks for code quality, CI/CD, role management, and operational monitoring. We make sure your extensions remain secure, compliant, and cost-efficient throughout their lifecycle.

Outsource Smart, Build for the Long Run

SAP BTP app development doesn’t have to be a guessing game. The key is transparency, defining scope clearly, choosing the right partner model, and building apps that align with SAP’s clean-core principles.

Have an idea? Run a Solution Design Sprint with us and turn it into a detailed blueprint and actionable backlog.

Already built something? Book a BTP Technical Design Review and receive a clear remediation roadmap to strengthen architecture, performance, and scalability.

Whether you’re building a new app, transitioning an existing solution, or reevaluating your clean-core strategy, AvoTechs provides architectural options, realistic timelines, and accurate budgets so you can build with confidence and sustain long-term value.