[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-category-engineering":3,"blog-category-posts-engineering":9,"blog-categories":100,"blog-tags":122},{"category":4,"error":8},{"name":5,"slug":6,"description":7,"seo":8},"Engineering","engineering","Software architecture, code quality and the engineering practice behind the systems we build.",null,{"posts":10,"pagination":96,"error":8},[11,33,51,68,82],{"id":12,"title":13,"slug":14,"excerpt":15,"cover":16,"coverAlt":20,"datePublished":21,"dateModified":21,"category":22,"author":23,"tags":26},"tvvj273m9sq3gal86fv6ddlu","How to Write a Software Project Brief That Vendors Can Actually Use","how-to-write-a-software-project-brief","If three vendors quote three different projects, the brief may be the problem, not the vendors. Here is what a software project brief actually needs to cover.",{"url":17,"width":18,"height":19,"alt":8},"https:\u002F\u002Fmedia.drieverse.com\u002Fdrieverse-media\u002Fcms\u002Fexports_drieverse_blog_project_brief_3200x1800_5c78424ec5.jpg",3200,1800,"Dark field-notes cover reading \"One request. Three quotes.\" with the DrieVerse Tech logo, for a post about writing software project briefs vendors can use.","2026-09-15",{"name":5,"slug":6},{"name":24,"slug":25},"DrieVerse Tech","drieverse-tech",[27,29,31],{"name":28,"slug":28},"discovery",{"name":30,"slug":30},"decision-frameworks",{"name":32,"slug":32},"process-design",{"id":34,"title":35,"slug":36,"excerpt":37,"cover":38,"coverAlt":42,"datePublished":21,"dateModified":21,"category":43,"author":44,"tags":45},"pd4jza5v2v3mlzkn1zpuqtqc","Custom Software vs Off-the-Shelf Software: Which Is Right for Your Business?","custom-software-vs-off-the-shelf-software","Buying and building are not opposites. The real decision is which parts of your stack are commodity, which are differentiated, and what the workaround is already costing you.",{"url":39,"width":40,"height":41,"alt":8},"https:\u002F\u002Fmedia.drieverse.com\u002Fdrieverse-media\u002Fcms\u002Fexports_drieverse_blog_custom_vs_offtheshelf_1200x675_432e8be1b9.jpg",2400,1350,"Purple-to-blue gradient cover for a build-versus-buy article, with an example capability list marking Analytics and Billing as Buy, Pricing Logic as Build.",{"name":5,"slug":6},{"name":24,"slug":25},[46,48,49],{"name":47,"slug":47},"architecture",{"name":30,"slug":30},{"name":50,"slug":50},"technical-debt",{"id":52,"title":53,"slug":54,"excerpt":55,"cover":56,"coverAlt":60,"datePublished":61,"dateModified":61,"category":62,"author":63,"tags":64},"hr6slx7pj1jhpsdjitsiftj6","What a Technical Discovery Phase Should Produce Before Anyone Writes a Spec","what-technical-discovery-should-produce","Discovery is not a meeting series, it is a deliverable. Here is exactly what a discovery phase should hand you before a single sprint starts.",{"url":57,"width":58,"height":59,"alt":60},"https:\u002F\u002Fmedia.drieverse.com\u002Fdrieverse-media\u002Fcms\u002Fwhat_technical_discovery_should_produce_cover_53a60a88be.png",1200,630,"What a Technical Discovery Phase Should Produce Before Anyone Writes a Spec - cover image (seed-blog-content-cover)","2026-09-05",{"name":5,"slug":6},{"name":24,"slug":25},[65,66],{"name":28,"slug":28},{"name":67,"slug":67},"risk-management",{"id":69,"title":70,"slug":71,"excerpt":72,"cover":73,"coverAlt":75,"datePublished":61,"dateModified":61,"category":76,"author":77,"tags":78},"dgfzi6pl54bb1ac28vyejq9j","Monolith or Microservices for Your First Release: How to Actually Decide","monolith-or-microservices-for-your-first-release","A first product version almost never needs microservices. Here is the actual test for when it does, and what a monolith costs you if you guess wrong.",{"url":74,"width":58,"height":59,"alt":75},"https:\u002F\u002Fmedia.drieverse.com\u002Fdrieverse-media\u002Fcms\u002Fmonolith_or_microservices_for_your_first_release_cover_d06eda51a2.png","Monolith or Microservices for Your First Release: How to Actually Decide - cover image (seed-blog-content-cover)",{"name":5,"slug":6},{"name":24,"slug":25},[79,80,81],{"name":47,"slug":47},{"name":30,"slug":30},{"name":50,"slug":50},{"id":83,"title":84,"slug":85,"excerpt":86,"cover":87,"coverAlt":89,"datePublished":61,"dateModified":61,"category":90,"author":91,"tags":92},"b8s65pxknri4f5h8czuzeuqs","Reading a Legacy Codebase Before You Touch It: A Practical Audit","auditing-a-legacy-codebase-before-you-touch-it","Before the first commit against an inherited codebase, run an audit that answers what it actually does, what depends on it, and what breaks first if you get it wrong.",{"url":88,"width":58,"height":59,"alt":89},"https:\u002F\u002Fmedia.drieverse.com\u002Fdrieverse-media\u002Fcms\u002Fauditing_a_legacy_codebase_before_you_touch_it_cover_7e7f7d9c69.png","Reading a Legacy Codebase Before You Touch It: A Practical Audit - cover image (seed-blog-content-cover)",{"name":5,"slug":6},{"name":24,"slug":25},[93,94,95],{"name":28,"slug":28},{"name":50,"slug":50},{"name":67,"slug":67},{"page":97,"pageSize":98,"pageCount":97,"total":99},1,12,5,[101,105,109,113,114,118],{"name":102,"slug":103,"description":104,"seo":8},"AI and Automation","ai-and-automation","Applied AI and automation: what it actually does inside a working system, and where a human stays in the loop.",{"name":106,"slug":107,"description":108,"seo":8},"Brand and Design","brand-and-design","Visual identity and interface design, and how a consistent design system holds together across a product.",{"name":110,"slug":111,"description":112,"seo":8},"Company","company","Updates from DrieVerse Tech: what we are building, shipping and learning.",{"name":5,"slug":6,"description":7,"seo":8},{"name":115,"slug":116,"description":117,"seo":8},"Growth","growth","Search visibility, content and acquisition: the growth work that sits alongside a build rather than bolted onto it.",{"name":119,"slug":120,"description":121,"seo":8},"Infrastructure and Operations","infrastructure-and-operations","DevOps, hosting, reliability and the operational work that keeps a system running once it is live.",[123,124,125,126,128,130,132,134,135,136],{"name":47,"slug":47},{"name":30,"slug":30},{"name":28,"slug":28},{"name":127,"slug":127},"evidence-based-claims",{"name":129,"slug":129},"human-in-the-loop",{"name":131,"slug":131},"observability",{"name":133,"slug":133},"positioning",{"name":32,"slug":32},{"name":67,"slug":67},{"name":50,"slug":50}]