Create an app people can use
Start with one user outcome, select the lightest-fit app experience, and finish with a testable end-to-end slice rather than an empty shell.
Frame the first useful outcome
Name the user, the decision or task they must complete, the record they need, and the evidence that the task worked. Keep the first increment narrow enough to demonstrate in one sitting.
Working output: a one-sentence outcome and a three-to-five-step happy path.Choose the experience that fits the task
Use the user and task constraints to choose a subtype. Do not combine experiences until one can deliver the first outcome.
Canvas appUse for tailored task flows, responsive layouts, and multiple connected data sources.Model-driven appUse for role-based work centered on Dataverse records, forms, views, and processes.Code appUse when a React experience, source-controlled code, or custom interaction is essential.Generative pageUse for a focused custom page inside a model-driven app, backed by Dataverse.Working output: one selected subtype with a short reason and known constraints.Build one end-to-end slice
Create the minimum navigation, data read or write, validation, and error state needed for the happy path. Use a solution and environment-safe configuration from the start.
Skills Advisor opens the current catalog so you can select the published Canvas, model-driven, code app, generative page, or Dataverse skill that matches your subtype.
Working output: a runnable increment that completes the chosen task with representative data.Verify with a real task
Ask a representative user to complete the happy path and one recovery path. Capture gaps in usability, access, data correctness, and error handling before broadening scope.
Working output: a demonstrated slice, recorded findings, and a prioritized next increment.


