[{"data":1,"prerenderedAt":70},["ShallowReactive",2],{"help-article-your-first-solution":3},{"data":4},{"title":5,"excerpt":6,"content":7,"help_category":8,"seo":11},"Your First Solution","Create a Solution, add Features under it, and add Models under a Feature in m18t's Product Manager. Build the minimum useful PD scaffold step by step.","\u003Cp>\u003Cstrong>What you&#39;ll learn\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>How to create a Solution, add Features under it, and add Models under a Feature.\u003C\u002Fli>\n\u003Cli>The minimum useful PD scaffold — enough structure to be worth the effort, no more.\u003C\u002Fli>\n\u003Cli>Where to go once the spine exists.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>This is the hands-on follow-up to \u003Ca href=\"\u002Fhelp\u002Fthe-product-development-concept\">The Product Development Concept\u003C\u002Fa>. If you haven&#39;t read that yet, read it first — it explains \u003Cem>why\u003C\u002Fem> PD is shaped this way.\u003C\u002Fp>\n\u003Chr>\n\u003Ch2>The goal: a usable spine\u003C\u002Fh2>\n\u003Cp>You don&#39;t need to fill twelve entity types to get value from PD. The useful minimum is the spine: one \u003Cstrong>Solution\u003C\u002Fstrong>, a few \u003Cstrong>Features\u003C\u002Fstrong> under it, and a few \u003Cstrong>Models\u003C\u002Fstrong> under those Features, with \u003Cstrong>Attributes\u003C\u002Fstrong> on the models that matter. That&#39;s enough to read a \u003Ca href=\"\u002Fhelp\u002Fstatus-rollups\">status distribution\u003C\u002Fa> and render a \u003Ca href=\"\u002Fhelp\u002Fthe-dependency-graph\">dependency graph\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>Everything below assumes you&#39;ve picked the right \u003Ca href=\"\u002Fhelp\u002Fthe-brand-switcher\">brand\u003C\u002Fa> in the switcher — PD is brand-scoped, so a Solution belongs to one brand.\u003C\u002Fp>\n\u003Chr>\n\u003Ch2>How to do it\u003C\u002Fh2>\n\u003Col>\n\u003Cli>Open \u003Cstrong>Product Manager\u003C\u002Fstrong> in the sidebar (\u003Ccode>\u002Fstudio\u002Fproduct-development\u003C\u002Fcode>).\u003C\u002Fli>\n\u003Cli>Click the \u003Cstrong>Solutions\u003C\u002Fstrong> tab, then the \u003Cstrong>Add Solution\u003C\u002Fstrong> button (top right).\u003C\u002Fli>\n\u003Cli>Give the Solution a name and save. Name it after a standalone product or a large body of work — for example, a billing system or an onboarding flow.\u003C\u002Fli>\n\u003Cli>Switch to the \u003Cstrong>Features\u003C\u002Fstrong> tab. Click \u003Cstrong>Add Feature\u003C\u002Fstrong> and assign it to the Solution you just made. Add one Feature per distinct capability — &quot;Checkout&quot;, &quot;Invoice history&quot;, and so on.\u003C\u002Fli>\n\u003Cli>Switch to the \u003Cstrong>Models\u003C\u002Fstrong> tab. Click \u003Cstrong>Add Model\u003C\u002Fstrong> and attach it to a Feature. A Model is a data structure the Feature needs — a \u003Ccode>Cart\u003C\u002Fcode>, a \u003Ccode>CartItem\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>Open a Model (click its row) and add \u003Cstrong>Attributes\u003C\u002Fstrong> — the fields on that structure. Each attribute has a scalar type; relation attributes also carry a cardinality (OneToOne, OneToMany, ManyToOne, ManyToMany).\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>That&#39;s the scaffold. Click \u003Cstrong>Visual Analysis\u003C\u002Fstrong> to see it rendered as a \u003Ca href=\"\u002Fhelp\u002Fthe-dependency-graph\">dependency graph\u003C\u002Fa>, or read the rows back as a \u003Ca href=\"\u002Fhelp\u002Fstatus-rollups\">status distribution\u003C\u002Fa>.\u003C\u002Fp>\n\u003Chr>\n\u003Ch2>Variations\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Cstrong>Top-down vs. bottom-up.\u003C\u002Fstrong> You can create a Model without first having a Feature and attach it later, but the spine reads best top-down: Solution first, then Features, then Models.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Add satellites only when needed.\u003C\u002Fstrong> Controllers, Lifecycles, Views, Policies and the rest are there when your design calls for them. Don&#39;t add them to feel thorough — empty branches just add noise.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Attach the thinking.\u003C\u002Fstrong> Once a node exists, attach a brief or decision doc to it as an \u003Ca href=\"\u002Fhelp\u002Fattaching-artifacts\">artifact\u003C\u002Fa> so the reasoning lives next to the structure.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Chr>\n\u003Ch2>FAQ\u003C\u002Fh2>\n\u003Cp>\u003Cstrong>Why can&#39;t I add a Feature without a Solution?\u003C\u002Fstrong>\nFeatures belong to a Solution — that parent relationship is what makes the \u003Ca href=\"\u002Fhelp\u002Fstatus-rollups\">status rollup\u003C\u002Fa> and the \u003Ca href=\"\u002Fhelp\u002Fthe-dependency-graph\">graph\u003C\u002Fa> work. Create the Solution first.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Can I move a Model to a different Feature later?\u003C\u002Fstrong>\nYes — open the Model and change its Feature. The structure is editable; it isn&#39;t locked once created.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>My Solution doesn&#39;t show up — where is it?\u003C\u002Fstrong>\nCheck the \u003Ca href=\"\u002Fhelp\u002Fthe-brand-switcher\">brand switcher\u003C\u002Fa>. PD is brand-scoped, so a Solution created under one brand won&#39;t appear while another brand is active.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>How many Features should one Solution have?\u003C\u002Fstrong>\nHowever many distinct capabilities it has. There&#39;s no enforced limit; readability is the only constraint.\u003C\u002Fp>\n\u003Chr>\n\u003Cp>\u003Cstrong>What&#39;s next\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"\u002Fhelp\u002Fstatus-rollups\">Status Rollups\u003C\u002Fa> — read how done each branch is.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"\u002Fhelp\u002Fthe-dependency-graph\">The Dependency Graph\u003C\u002Fa> — see the scaffold visually.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"\u002Fhelp\u002Fattaching-artifacts\">Attaching Artifacts\u003C\u002Fa> — add briefs and decisions to any node.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"\u002Fhelp\u002Fevent-storming\">Event Storming on a Whiteboard\u003C\u002Fa> — map flows using these same entities.\u003C\u002Fli>\n\u003C\u002Ful>\n",{"slug":9,"title":10},"product-manager","Product Manager (PD)",{"meta_title":12,"meta_description":6,"keywords":13,"canonical_url":14,"og_title":12,"og_description":6,"og_image":15,"robots":16,"json_ld":17},"Your First Solution | m18t Help","first solution, create solution, add feature, add model, PD scaffold, attributes, product manager, m18t","https:\u002F\u002Fm18t.com\u002Fhelp\u002Fyour-first-solution","https:\u002F\u002Fm18t.com\u002Fog-default.png","index, follow",{"@context":18,"@graph":19},"https:\u002F\u002Fschema.org",[20,33,54],{"@type":21,"headline":5,"description":6,"articleSection":10,"inLanguage":22,"datePublished":23,"dateModified":23,"image":15,"author":24,"publisher":28,"mainEntityOfPage":31},"Article","en","2026-06-25",{"@type":25,"name":26,"url":27},"Organization","m18t","https:\u002F\u002Fm18t.com",{"@type":25,"name":26,"url":27,"logo":29},{"@type":30,"url":15},"ImageObject",{"@type":32,"@id":14},"WebPage",{"@type":34,"mainEntity":35},"FAQPage",[36,42,46,50],{"@type":37,"name":38,"acceptedAnswer":39},"Question","Why can't I add a Feature without a Solution?",{"@type":40,"text":41},"Answer","Features belong to a Solution — that parent relationship is what makes the status rollup and the graph work. Create the Solution first.",{"@type":37,"name":43,"acceptedAnswer":44},"Can I move a Model to a different Feature later?",{"@type":40,"text":45},"Yes — open the Model and change its Feature. The structure is editable; it isn't locked once created.",{"@type":37,"name":47,"acceptedAnswer":48},"My Solution doesn't show up — where is it?",{"@type":40,"text":49},"Check the brand switcher. PD is brand-scoped, so a Solution created under one brand won't appear while another brand is active.",{"@type":37,"name":51,"acceptedAnswer":52},"How many Features should one Solution have?",{"@type":40,"text":53},"However many distinct capabilities it has. There's no enforced limit; readability is the only constraint.",{"@type":55,"itemListElement":56},"BreadcrumbList",[57,61,65,68],{"@type":58,"position":59,"name":60,"item":27},"ListItem",1,"Home",{"@type":58,"position":62,"name":63,"item":64},2,"Help","https:\u002F\u002Fm18t.com\u002Fhelp",{"@type":58,"position":66,"name":10,"item":67},3,"https:\u002F\u002Fm18t.com\u002Fhelp\u002Fcategories\u002Fproduct-manager",{"@type":58,"position":69,"name":5,"item":14},4,1786312171513]