App Development Discovery: How to Plan a Custom Business App
You’re three sprints into a “simple” internal app when someone asks, “Wait—where does this data come from, who approves it, and can we even store it?” That’s how B2B app projects stall: requirements were guessed, integrations were treated as later problems, and security was left to a checklist at the end.
Discovery is the part of the app development process that prevents that moment. It’s product discovery and requirements gathering with decision-making attached: you document the real workflow, agree on what success looks like, and surface constraints early enough to plan around them. Done well, it turns vague requests into a build plan you can estimate, fund, and ship without constant rework.
This guide walks through what to bring into discovery, how to run workshops that produce testable requirements, how to choose an MVP without a feature dump, and which technical calls—app architecture, integrations, authentication, logging, app maintenance—need a direction before design and estimates are believable.
JAMD Technologies treats discovery outputs as the working contract for delivery: clear ownership, visible trade-offs, and changes that are priced and approved instead of sneaking in through “quick asks.”
What Should You Gather Before Discovery Starts?
If discovery outputs become the build contract, your intake becomes the evidence behind that contract. In App Development, weak inputs create “surprise” requirements later: missing data owners, undocumented integrations, or compliance constraints that appear after design.
Use this intake checklist before any workshop. Keep it lightweight, but complete enough that product discovery and requirements gathering start from facts, not guesses.
- Business goal and success metrics: one sentence goal, plus 2 to 4 measures (cycle time, error rate, revenue leakage, SLA compliance). Name the metric owner and where the number lives (ERP report, BI dashboard).
- Current workflow evidence: a process map or screenshots, sample forms, and 5 to 10 real exceptions. Exceptions drive scope more than the “happy path.”
- User roles and decision rights: list roles (operator, approver, admin, auditor), who can create, edit, approve, export, and delete. Include who signs off on requirements.
- Data inventory: key entities (customers, jobs, assets), required fields, data quality issues, retention rules, and a system of record per entity.
- Integrations list: every system the app must read or write (Microsoft 365, Salesforce, SAP, NetSuite, ServiceNow, Jira). Note API availability, authentication type, rate limits, and who owns credentials.
- Platforms and environments: iOS/Android/web/desktop, device constraints, offline needs, and target environments (dev, test, staging, production). Include MDM tools if used (Microsoft Intune, Jamf Pro).
- Security and compliance constraints: data classification, encryption requirements, audit logging needs, SSO expectations (Microsoft Entra ID, Okta), and any mandated standards (ISO/IEC 27001, SOC 2, PCI DSS, HIPAA). Reference official controls when applicable, for example ISO/IEC 27001.
- Constraints and boundaries: budget range, fixed dates, internal tech standards, and explicit out of scope items.
Intake Artifacts That Prevent Rework
Ask for three concrete artifacts: a read-only export of 50 to 200 representative records (CSV), a list of integration endpoints or vendor docs (for example Salesforce Developer documentation), and a short glossary of business terms. These three items reduce app architecture churn and speed up UX research because the team can validate flows against real data.
How to Run a 5-Step Discovery Workshop That Produces Real Requirements
That CSV sample, the integration docs, and the business glossary are your workshop fuel. Bring them into the room and you can turn “we need an app” into testable requirements for App Development, with fewer debates that end in opinions.
Run discovery as a time-boxed workshop with the people who own the work: process owners, frontline users, IT/security, and whoever signs off scope and budget. Keep the group small (6 to 10). Use Miro (collaborative whiteboard) or FigJam (Figma’s whiteboard) so artifacts survive the meeting.
- Align On Outcomes And Constraints (45 to 60 minutes). Write a one-sentence problem statement, 3 to 6 success metrics, and hard constraints (compliance, SSO required, data residency, offline needs). Confirm what “out of scope” means today.
- Map The Current Workflow With Real Data (60 to 90 minutes). Walk a single request from start to finish using the 50 to 200 record export. Capture handoffs, approvals, exceptions, and where spreadsheets or email fill gaps.
- Design The Future User Journeys (60 to 90 minutes). For each role, draft the happy path and the top edge cases. Tie steps to the glossary terms so “customer,” “account,” and “site” never get mixed later.
- Write Requirements As User Stories With Acceptance Criteria (90 minutes). Convert journeys into a backlog (often in Jira or Azure DevOps). For each story, add acceptance criteria in plain language, plus data fields, validation rules, and audit log needs. Example: “Given a manager role, when I approve a request, then the app records approver ID, timestamp, and reason.”
- Prioritize And Cut (45 to 60 minutes). Rank stories into MVP, Phase 2, and “parked.” Flag dependencies on integrations (Salesforce, NetSuite, SAP, Microsoft Graph) and security work (Okta or Microsoft Entra ID SSO, role-based access control).
What “Done” Looks Like After The Workshop
You should walk away with user journeys, a prioritized backlog with acceptance criteria, and a list of open questions assigned to owners with due dates. That package is requirements gathering you can build from, estimate, and test against.
MVP or Feature Dump: Which Prioritization Method Actually Works?
A prioritized backlog with acceptance criteria still fails if everything is labeled “must-have.” In App Development, that pattern turns discovery into a feature dump: scope expands, integrations multiply, and estimates become fiction. The fix is simple: define an MVP that proves the workflow and the data, then ship the rest in planned phases.
An MVP is the smallest release that delivers a complete, usable outcome for a specific role (for example, “field tech closes a work order with photos, parts used, and supervisor approval”). If a user cannot finish the job end-to-end, you built a demo, not an MVP.
MVP Prioritization Method That Protects Scope
- Pick one primary workflow. Choose the path tied to the business metric you named in discovery (cycle time, error rate, SLA compliance). Write it as a verb statement: “Create and approve purchase request.”
- Define “must-have” with a hard test. A story is must-have only if the workflow breaks without it, or a policy breaks without it (security, audit, compliance). “Nice UI theme” fails this test. “Role-based access control for approvers” passes.
- Separate “first release” from “first phase.” First release is the MVP. First phase can include two to four add-ons that reduce operational risk (admin screens, basic reporting, data import) without expanding the core workflow.
- Score the rest with two numbers. Use Value (1-5) and Effort (1-5). Build high value, low effort items first. Park low value, high effort items until real usage proves demand.
- Timebox unknowns. If a feature depends on an integration you have not validated (SAP, NetSuite, ServiceNow), create a spike story to confirm API access, auth method, and data mapping before you commit.
Plan the rollout as “MVP, Phase 2, Phase 3,” and attach acceptance criteria to each phase. JAMD Technologies usually adds a visible change budget (for example, a fixed number of backlog swaps per sprint) so stakeholders can adjust priorities without quietly expanding scope.
Which Technical Decisions Can’t Wait? Integrations, Security, and Architecture
A change budget keeps features from ballooning, but technical unknowns can still blow up an App Development plan. Make a few decisions early, at “direction” level, so estimates and UX work stay real: what data is the source of truth, how systems connect, how users authenticate, and what you will log and support.
Lock these calls during discovery, then refine them during implementation:
- Data model and system of record: define core entities (Customer, Job, Asset, Approval), required fields, and which system owns each field (SAP, NetSuite, Salesforce). Decide where validation happens (client, API, database) and how you handle deletes (hard delete vs soft delete with retention).
- Integration and API strategy: list every read/write path and pick the pattern. Direct API calls to vendors (Salesforce REST API, Microsoft Graph) are fast to start but can spread credentials and rate limit handling across clients. A backend integration layer (for example, a Node.js or .NET API) centralizes auth, caching, and transformations.
- SSO and roles: choose the identity provider (Microsoft Entra ID or Okta) and the standard (OAuth 2.0, OpenID Connect, SAML). Define roles and permissions as a matrix tied to user stories, then decide where authorization lives (API gateway, backend service, database row-level security).
- Environments and deployment: agree on dev, test, staging, production, plus how you handle secrets (HashiCorp Vault, AWS Secrets Manager, Azure Key Vault) and config drift. Decide who can promote builds and how you roll back.
- Observability and audit logging: separate “debug logs” from “audit logs.” Audit logs must capture actor, timestamp, before/after, and correlation ID. Pick tooling early (Datadog, New Relic, Azure Monitor, AWS CloudWatch) so engineers instrument consistently.
- Offline and sync: if field users lose connectivity, specify what works offline, conflict rules (last-write-wins vs merge), and encryption at rest on device. This choice changes UX, testing, and app architecture.
Write these decisions into the discovery outputs as assumptions with owners. JAMD Technologies typically treats them as non-functional requirements so security and integrations do not get pushed into chaos later.
The Contrarian Rule: Freeze Scope, Not Learning
Scope creep usually starts when “assumptions with owners” stay theoretical. In App Development, you control it by freezing what you will ship, then keeping learning open through research, analytics, and structured feedback.
The contrarian rule is simple: freeze scope, not learning. You lock decision rights and a change budget so the backlog stays stable, while the team keeps validating workflows, integrations, and UX with real users.
How to Freeze Scope Without Stopping Product Discovery
- Assign one scope owner. Name a single Product Owner (client-side) who approves backlog changes. Everyone else can propose changes; nobody else can commit them.
- Set a change budget per sprint. Allow a fixed number of “swaps” (for example, 2 stories out, 2 stories in) or a fixed capacity slice (10-15% of sprint points). Anything beyond the budget becomes Phase 2.
- Lock acceptance criteria, not feature names. Teams argue about labels. Acceptance criteria force clarity: data fields, role permissions, audit logs, error states, and performance expectations.
- Run a weekly change-control review (30 minutes). Review every proposed change with: reason, impacted integration (Salesforce, SAP, Microsoft Graph), security impact (SSO, RBAC), estimate delta, and the story it displaces.
- Keep learning in parallel. Continue UX research, usability tests, and prototype validation in Figma. Track behavior in production with Google Analytics 4 (for web) or Firebase Analytics (for mobile) so Phase 2 reflects real usage, not opinions.
This approach keeps requirements gathering honest. Stakeholders still get a path to improvements, but each improvement has a visible cost, owner, and trade-off. JAMD Technologies typically documents the change budget and decision rights in the delivery plan so the team can move fast without surprises.
How Do You Estimate Timeline and Cost After Discovery—and Hand Off to Build?
Decision rights and a change budget make scope visible. Estimation turns that visibility into a plan you can fund and execute in App Development. The goal is not a perfect number. The goal is a range you can defend, with assumptions you can test early.
Estimate from the backlog you created in discovery, not from a feature list in a slide deck. Teams ship what they can test, integrate, and support, so your estimate must include engineering, QA, security work, and integration validation.
A Responsible Estimation Method for App Development
- Normalize the backlog. Make sure each user story has acceptance criteria, roles, data fields, and integration touchpoints. If a story cannot be tested, you cannot estimate it responsibly.
- Split unknowns into spikes. Create time-boxed “spike” stories for items like SAP access, Okta SSO configuration, offline conflict rules, or audit log retention. Estimate the spike separately, then re-estimate the dependent stories after you learn.
- Estimate in ranges. Use a low and high per epic, then sum them into an MVP range. Keep a separate line for integration and security hardening because those items expand when environments and credentials are messy.
- Model capacity, then map to time. Convert the MVP estimate into sprints based on a real team size and a realistic focus factor (meetings, support, reviews). Publish the assumptions in the delivery plan so stakeholders can trade time, scope, or staffing explicitly.
- Re-forecast after Sprint 1. After the first sprint, you have actual velocity, integration friction, and test effort. Update the range and lock the next decision point.
For delivery, run a clean handoff from discovery into build. Put these items in writing and treat them as gating criteria:
- Sprint plan: MVP goal, sprint length, demo cadence, and who accepts work.
- Definition of done: code review, automated tests, security checks, audit logging, and documentation required for every story.
- Testing strategy: unit tests, API tests, UI tests, and UAT plan with named testers and test data.
- Release plan: environments, deployment approvals, rollback plan, and monitoring setup (Datadog, New Relic, Azure Monitor, or AWS CloudWatch).
- Launch and support: incident process, SLA targets, bug triage rules, and an app maintenance backlog for post-launch fixes and Phase 2.
If you want faster delivery with fewer surprises, schedule Sprint 0 for access, environments, and integrations, then start Sprint 1 with a buildable MVP slice you can demo end-to-end.