{"id":20446,"date":"2026-08-21T08:04:38","date_gmt":"2026-08-21T08:04:38","guid":{"rendered":"https:\/\/dianapps.com\/blog\/?p=20446"},"modified":"2026-08-21T09:07:57","modified_gmt":"2026-08-21T09:07:57","slug":"agile-methodology-in-salesforce","status":"publish","type":"post","link":"https:\/\/dianapps.com\/blog\/agile-methodology-in-salesforce\/","title":{"rendered":"Agile Methodology in Salesforce: What\u2019s Actually Different"},"content":{"rendered":"<p><b>Key Takeaways<\/b><span style=\"font-weight: 400;\"> :\u00a0<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Agile works well for Salesforce, but teams must adapt sprint planning to mixed admin-and-developer teams, sandbox constraints, and three annual platform releases.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">A Salesforce story is not done when it works in a sandbox. It needs to be tested, documented, reviewed, and deployment-ready under a clear Definition of Done.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Environment strategy and release planning belong inside the sprint model, which makes understanding Salesforce sandboxes and release management essential to predictable delivery.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">One shared backlog works better than separate admin and developer queues, particularly when teams need to decide whether work belongs in Flow, Apex, configuration, or custom development.<\/span><\/li>\n<\/ul>\n<blockquote><p><b>Quick Answer<\/b><span style=\"font-weight: 400;\">: Agile fits Salesforce well, but four things need adapting: mixed admin-and-developer teams estimating very different work, declarative work that looks finished before it\u2019s deployable, three annual platform releases you don\u2019t control, and sandbox refresh cycles that constrain sprint cadence. Get the Definition of Done right before sprint one and most of the rest follows. Teams planning this way should also understand the wider <\/span><a href=\"https:\/\/dianapps.com\/blog\/the-complete-7-phase-salesforce-development-lifecycle\/\"><span style=\"font-weight: 400;\">Salesforce development lifecycle<\/span><\/a><span style=\"font-weight: 400;\">, including how work moves from discovery and design through development, testing, deployment and maintenance.<\/span><\/p><\/blockquote>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">Almost every article on this topic explains what Scrum is, then asserts that Salesforce suits it. Both parts are true, and neither is useful if you\u2019re actually running a Salesforce project.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The interesting question is what\u2019s <\/span><i><span style=\"font-weight: 400;\">different<\/span><\/i><span style=\"font-weight: 400;\">. Generic Scrum assumes a team of developers working on one codebase with environments they control. Salesforce breaks all three assumptions, and the teams that struggle are usually the ones running textbook Scrum without adapting it.<\/span><\/p>\n<h2><b>Why Salesforce Suits Agile<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Worth stating briefly, because it\u2019s genuine.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Salesforce Runs Agile Itself<\/span><b>:<\/b><span style=\"font-weight: 400;\"> The company moved from waterfall to agile in 2006, across a product organisation delivering three major releases a year. That\u2019s not marketing &#8211; it\u2019s a large-scale case study in exactly this context.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>The Platform Shortens The Build-Feedback Loop:<\/b><span style=\"font-weight: 400;\"> A working prototype can exist in a sandbox in hours rather than weeks, which is the loop agile depends on.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Requirements Genuinely Do Change:<\/b><span style=\"font-weight: 400;\"> CRM sits on top of business processes and business process changes. Locking scope twelve months ahead assumes a stability most organisations don\u2019t have.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">And the platform itself changes three times a year, whether your project plan accounts for it or not.<\/span><\/p>\n<h2><b>What\u2019s Actually Different About Agile on Salesforce<\/b><\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-20453\" src=\"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2026\/08\/ChatGPT-Image-Aug-21-2026-12_38_05-PM.webp\" alt=\"Six differences between generic Scrum and agile on Salesforce, covering team composition, demo-ready work, platform releases, environments, estimation and Definition of Done\" width=\"1536\" height=\"1024\" srcset=\"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2026\/08\/ChatGPT-Image-Aug-21-2026-12_38_05-PM.webp 1536w, https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2026\/08\/ChatGPT-Image-Aug-21-2026-12_38_05-PM-1024x683.webp 1024w, https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2026\/08\/ChatGPT-Image-Aug-21-2026-12_38_05-PM-768x512.webp 768w, https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2026\/08\/ChatGPT-Image-Aug-21-2026-12_38_05-PM-640x427.webp 640w, https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2026\/08\/ChatGPT-Image-Aug-21-2026-12_38_05-PM-400x267.webp 400w\" sizes=\"auto, (max-width: 1536px) 100vw, 1536px\" \/><\/p>\n<p><i><span style=\"font-weight: 400;\">Six differences between generic Scrum and agile on Salesforce, covering team composition, demo-ready work, platform releases, environments, estimation and Definition of Done<\/span><\/i><\/p>\n<h3><b>The team isn\u2019t all developers<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">A Salesforce squad typically holds an admin, a developer, a consultant or BA, and part of an architect. They estimate very differently, and a story that\u2019s trivial for one is unfamiliar to another.<\/span><\/p>\n<p><b>What Works:<\/b><span style=\"font-weight: 400;\"> Estimate as a team, out loud, with the person who\u2019ll do the work explaining why. The conversation matters more than the number.<\/span><\/p>\n<h3><b>Some work looks \u201cdone\u201d before it is<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">This is the Salesforce-specific trap: an admin builds a Flow in a sandbox, demos it in the sprint review and everyone agrees it\u2019s finished. It isn\u2019t deployed, isn\u2019t tested, isn\u2019t documented, and hasn\u2019t been checked against the next platform release.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Generic Scrum doesn\u2019t warn you about this because in most software the demo <\/span><i><span style=\"font-weight: 400;\">is<\/span><\/i><span style=\"font-weight: 400;\"> running code from the branch. On Salesforce, declarative work is demoable long before it\u2019s shippable, which is exactly why the Definition of Done matters more here than elsewhere.<\/span><\/p>\n<h3><b>The platform changes three times a year<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Spring, Summer, and Winter releases land on Salesforce\u2019s schedule. Plan a sprint across a release window without accounting for it, and you\u2019ll spend the sprint firefighting.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>What works:<\/b><span style=\"font-weight: 400;\"> treat each release as a known event in your roadmap. Reserve capacity for regression testing in the sprint that spans it and use preview sandboxes to test early. See <\/span><span style=\"font-weight: 400;\">managing Salesforce releases<\/span><span style=\"font-weight: 400;\">.<\/span><\/li>\n<\/ul>\n<h3><b>Environments constrain your cadence<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Full sandboxes refresh every 29 days. Partial copies every five. If your sprint cadence assumes a fresh environment every fortnight, the maths doesn\u2019t work.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>What works:<\/b><span style=\"font-weight: 400;\"> design the environment strategy alongside the sprint cadence, not after it. See <\/span><a href=\"https:\/\/dianapps.com\/blog\/salesforce-sandbox-explained\/\"><span style=\"font-weight: 400;\">Salesforce sandboxes explained<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/li>\n<\/ul>\n<h3><b>Config and code don\u2019t estimate the same way<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">A two-point Flow and a two-point Apex class rarely take the same effort, because the Apex needs tests, review, and deployment discipline the Flow doesn\u2019t automatically get.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>What works:<\/b><span style=\"font-weight: 400;\"> either separate the tracks with their own velocities or &#8211; better &#8211; apply the same Definition of Done to both so the points mean the same thing.<\/span><\/li>\n<\/ul>\n<h2><b>Writing Salesforce User Stories<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Poorly defined requirements are a leading contributor to project failure &#8211; industry analysis puts the figure near 35%. On Salesforce, where declarative and custom work intersect with integrations, vague stories are expensive.<\/span><\/p>\n<p><b>The Standard Format Still Applies:<\/b> <i><span style=\"font-weight: 400;\">As a [role], I want [capability], so that [outcome].<\/span><\/i><\/p>\n<p><b>What makes a Salesforce story good:<\/b><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Name The Actual Role:<\/b><span style=\"font-weight: 400;\"> \u201cAs a user\u201d tells you nothing. \u201cAs an inside sales rep working a renewal list\u201d tells you which page layout, which permission set, and which profile.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>State The Outcome, not The Implementation:<\/b><span style=\"font-weight: 400;\"> \u201cAs a sales manager, I want to see at-risk renewals so that I can intervene early\u201d leaves room for a report, a dashboard component, or a Flow-driven alert. \u201cI want a custom object with a Lightning component\u201d has already made the design decision &#8211; usually wrongly.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Write Testable Acceptance Criteria:<\/b><span style=\"font-weight: 400;\"> \u201cWorks correctly\u201d isn\u2019t. \u201cRenewals within 30 days with no activity in 14 days appear in the list, sorted by value descending\u201d is.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Split By User Value not By Technical Layer:<\/b><span style=\"font-weight: 400;\"> \u201cBuild the object\u201d then \u201cbuild the automation\u201d then \u201cbuild the page\u201d delivers nothing until all three are done. Slice thinly enough that each story delivers something demonstrable.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Note the Non-Functional Requirements<\/b><span style=\"font-weight: 400;\">: Data volume, permissions, mobile, and which profiles need access. These are where Salesforce stories quietly expand mid-sprint.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>On Prioritisation:<\/b><span style=\"font-weight: 400;\"> MoSCoW is easy for stakeholders to engage with; WSJF is better where you need to defend sequencing on economics. Either beats a backlog ordered by who asked loudest.<\/span><\/li>\n<\/ul>\n<h2><b>Sprint Design for Salesforce Teams<\/b><\/h2>\n<p><b>Two Weeks Is The Working Default:<\/b><span style=\"font-weight: 400;\"> One week rarely leaves room for testing and deployment on config-heavy work; four weeks loses the feedback loop that justifies agile.<\/span><\/p>\n<p><b>Ceremonies, adapted:<\/b><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Backlog refinement matters more than in generic Scrum, because \u201ccan this be done declaratively?\u201d is a design conversation that has to happen before estimation. Answer it in refinement, or you\u2019ll answer it mid-sprint.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Sprint planning should explicitly ask what needs a sandbox refresh, what depends on a platform release, and what needs an architect\u2019s input before work starts.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Daily standup works unchanged.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Sprint review is where the \u201clooks done\u201d trap lives. Demo from the environment closest to production, not from the builder\u2019s own sandbox.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Retrospective works unchanged and is where the Definition of Done gets tightened over time.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Reserve <\/span><b>capacity every sprint<\/b><span style=\"font-weight: 400;\"> for production support, release regression, and technical debt. A team planning at 100% capacity is planning to miss.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Related: <\/span><a href=\"https:\/\/dianapps.com\/blog\/salesforce-devops-guide\/\"><span style=\"font-weight: 400;\">Salesforce DevOps and CI\/CD<\/span><\/a><\/p>\n<h2><b>A Salesforce Definition of Done<\/b><\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-20454\" src=\"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2026\/08\/ChatGPT-Image-Aug-21-2026-12_35_36-PM.webp\" alt=\"Three-Stage Definition Of Done For Salesforce: Built, proven and shippable, with specific criteria under each\" width=\"1536\" height=\"1024\" srcset=\"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2026\/08\/ChatGPT-Image-Aug-21-2026-12_35_36-PM.webp 1536w, https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2026\/08\/ChatGPT-Image-Aug-21-2026-12_35_36-PM-1024x683.webp 1024w, https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2026\/08\/ChatGPT-Image-Aug-21-2026-12_35_36-PM-768x512.webp 768w, https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2026\/08\/ChatGPT-Image-Aug-21-2026-12_35_36-PM-640x427.webp 640w, https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2026\/08\/ChatGPT-Image-Aug-21-2026-12_35_36-PM-400x267.webp 400w\" sizes=\"auto, (max-width: 1536px) 100vw, 1536px\" \/><\/p>\n<p><i><span style=\"font-weight: 400;\">Three-Stage Definition of Done for Salesforce: Built, proven, and shippable, with specific criteria under each<\/span><\/i><\/p>\n<p><span style=\"font-weight: 400;\">This is the single highest-leverage thing to get right and the most commonly skipped.<\/span><\/p>\n<p><b>\u201cIt works in my sandbox\u201d is roughly a third of done:<\/b><span style=\"font-weight: 400;\"> A story is finished when it\u2019s built, proven, and shippable, and the second two are where Salesforce teams consistently lose time later.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Agree This Before Sprint One:<\/b><span style=\"font-weight: 400;\"> Retrofitting a Definition of Done onto a team that\u2019s been shipping for six months means either a large remediation backlog or quietly deciding the old work doesn\u2019t count. Neither is comfortable.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Related: <\/span><a href=\"https:\/\/dianapps.com\/blog\/apex-programming-guide\/\"><span style=\"font-weight: 400;\">Apex testing<\/span><\/a><span style=\"font-weight: 400;\"> \u00b7 <\/span><a href=\"https:\/\/dianapps.com\/blog\/the-ultimate-guide-to-salesforce-flow\/\"><span style=\"font-weight: 400;\">Salesforce Flow<\/span><\/a><\/p>\n<h2><b>Managing a Mixed Config and Code Backlog<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">One backlog, not two: splitting into an \u201cadmin backlog\u201d and a \u201cdeveloper backlog\u201d is how you end up with two teams who don\u2019t talk. When that backlog starts exceeding the capacity or expertise of the internal team, Salesforce Development Services can provide the additional engineering and architecture support needed to keep complex work moving without separating admins and developers into disconnected delivery tracks.<\/span><\/p>\n<p><b>What to do instead:<\/b><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Tag Stories By Type<\/b><span style=\"font-weight: 400;\">: Configuration, development, integration, data, for reporting, while keeping one prioritised list.<\/span><\/li>\n<\/ul>\n<p><b>Let the \u201cCan This Be Declarative?\u201d <\/b><span style=\"font-weight: 400;\">Questions happen in refinement, with both admin and developer present. This is where the most money is saved and lost. See <\/span><a href=\"https:\/\/dianapps.com\/blog\/flow-vs-apex-in-salesforce\/\"><span style=\"font-weight: 400;\">Flow vs Apex<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Track Dependencies Explicitly:<\/b><span style=\"font-weight: 400;\"> Salesforce work has more of them than typical software &#8211; a field has to exist before the Flow, the Flow before the LWC, the permission set before anyone can test it.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Keep Technical Debt Visible In The Same Backlog:<\/b><span style=\"font-weight: 400;\"> Debt that lives in a separate document never gets prioritised.<\/span><\/li>\n<\/ul>\n<div style=\"background: #EEF2FE; border: 1px solid #DBE2FB; border-radius: 14px; padding: 28px 32px; margin: 38px 0;\">\n<h4 style=\"color: #1b3fae; font-size: 22px; line-height: 1.3; font-weight: bold; margin: 0 0 10px;\"><span style=\"font-weight: 400;\"><b>Make Salesforce Delivery More Predictable <\/b><\/span><\/h4>\n<p style=\"color: #4b5563; font-size: 16px; line-height: 1.6; margin: 0 0 22px;\"><span style=\"font-weight: 400;\">Get experienced Salesforce developers, architects and delivery support to bring structure to your backlog, sprints, environments and releases.<\/span><\/p>\n<p><a style=\"display: inline-block; background: #2563EB; color: #ffffff; text-decoration: none; font-size: 15px; font-weight: 600; padding: 13px 26px; border-radius: 8px;\" href=\"https:\/\/dianapps.com\/salesforce-development-services\">Salesforce Development Services<\/a><\/p>\n<\/div>\n<p>&nbsp;<\/p>\n<h2><b>Release Trains vs Continuous Deployment<\/b><\/h2>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Release Trains<\/b><span style=\"font-weight: 400;\">: Fixed dates, whatever\u2019s ready ships, suit organisations with change advisory boards, training requirements or regulated environments. Predictable and slower.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Continuous Deployment<\/b><span style=\"font-weight: 400;\">: Ship when done, requires a mature pipeline with automated testing, and it\u2019s the faster model when you have one.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Most Mid-Market Salesforce Teams Land In Between:<\/b><span style=\"font-weight: 400;\"> Deploy to production every sprint on a fixed day, with a hotfix path outside that cadence.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>The Prerequisite For Either Is A Working Pipeline:<\/b><span style=\"font-weight: 400;\"> A team deploying with change sets can\u2019t do continuous anything, regardless of methodology. See <\/span><a href=\"https:\/\/dianapps.com\/blog\/salesforce-devops-guide\/\"><span style=\"font-weight: 400;\">Salesforce DevOps<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/li>\n<\/ul>\n<h2><b>When Waterfall Genuinely Fits<\/b><\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-20455\" src=\"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2026\/08\/ChatGPT-Image-Aug-21-2026-12_37_06-PM.webp\" alt=\"Four situations where a waterfall or phased approach fits a Salesforce project better than agile\" width=\"1536\" height=\"1024\" srcset=\"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2026\/08\/ChatGPT-Image-Aug-21-2026-12_37_06-PM.webp 1536w, https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2026\/08\/ChatGPT-Image-Aug-21-2026-12_37_06-PM-1024x683.webp 1024w, https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2026\/08\/ChatGPT-Image-Aug-21-2026-12_37_06-PM-768x512.webp 768w, https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2026\/08\/ChatGPT-Image-Aug-21-2026-12_37_06-PM-640x427.webp 640w, https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2026\/08\/ChatGPT-Image-Aug-21-2026-12_37_06-PM-400x267.webp 400w\" sizes=\"auto, (max-width: 1536px) 100vw, 1536px\" \/><\/p>\n<p><i><span style=\"font-weight: 400;\">Four situations where a waterfall or phased approach fits a Salesforce project better than agile<\/span><\/i><\/p>\n<p><span style=\"font-weight: 400;\">Agile is the default, not the rule. Four situations where a phased approach is the honest answer and pretending otherwise creates friction rather than removing it.<\/span><\/p>\n<p><b>The Realistic Middle Ground Is Hybrid:<\/b><span style=\"font-weight: 400;\"> Phased governance and funding, with iterative delivery inside each phase. Discovery and design happen up front, build and test happen in sprints, and the steering committee gets the milestone structure it needs.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Most Salesforce programmes land here rather than at either extreme.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Related: <\/span><span style=\"font-weight: 400;\">the Salesforce implementation process<\/span><\/p>\n<p>&nbsp;<\/p>\n<h2><b>Where to Go Next<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">For the environments your sprints depend on, see <\/span><a href=\"https:\/\/dianapps.com\/blog\/salesforce-sandbox-explained\/\"><span style=\"font-weight: 400;\">Salesforce Sandboxes Explained<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">For the pipeline that makes sprint-end deployment possible, <\/span><a href=\"https:\/\/dianapps.com\/blog\/salesforce-devops-guide\/\"><span style=\"font-weight: 400;\">Salesforce DevOps and CI\/CD<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">For the platform releases that interrupt your cadence, see <\/span><span style=\"font-weight: 400;\">Managing Salesforce Releases<\/span><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">For the refinement question that saves the most money, <\/span><a href=\"https:\/\/dianapps.com\/blog\/flow-vs-apex-in-salesforce\/\"><span style=\"font-weight: 400;\">Flow vs Apex<\/span><\/a><span style=\"font-weight: 400;\"> and <\/span><span style=\"font-weight: 400;\">Configuration vs Customization<\/span><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">For the wider delivery picture, <\/span><span style=\"font-weight: 400;\">The Salesforce Implementation Process<\/span><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The <\/span><a href=\"https:\/\/dianapps.com\/blog\/salesforce-development-guide\/\"><span style=\"font-weight: 400;\">Complete Salesforce Development Guide<\/span><\/a><span style=\"font-weight: 400;\"> is the hub.<\/span><\/p>\n<h2><b>When the Process Is the Problem<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Teams rarely fail because they picked the wrong methodology. They fail because the Definition of Done was never agreed, the environment strategy was designed after the sprint cadence, and the backlog had dependencies nobody mapped.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Those are all fixable in a few weeks, and they\u2019re usually cheaper to fix than the delays they cause.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">We\u2019re a certified Salesforce Consulting Partner and setting up delivery for mixed admin and developer teams is routine work for us.<\/span><\/p>\n<div style=\"background: #EEF2FE; border: 1px solid #DBE2FB; border-radius: 14px; padding: 28px 32px; margin: 38px 0;\">\n<h4 style=\"color: #1b3fae; font-size: 22px; line-height: 1.3; font-weight: bold; margin: 0 0 10px;\"><span style=\"font-weight: 400;\"><b>Is Your Salesforce Delivery Falling Behind? <\/b><\/span><\/h4>\n<p style=\"color: #4b5563; font-size: 16px; line-height: 1.6; margin: 0 0 22px;\"><span style=\"font-weight: 400;\">Tell us where your sprints, backlog, environments, or releases are getting stuck, and our Salesforce experts can help identify the right fix.<\/span><\/p>\n<p><a style=\"display: inline-block; background: #2563EB; color: #ffffff; text-decoration: none; font-size: 15px; font-weight: 600; padding: 13px 26px; border-radius: 8px;\" href=\"https:\/\/dianapps.com\/contact\">Talk to Our Salesforce Experts\u00a0\u2192<\/a><\/p>\n<\/div>\n<style>.elementor-20447 .elementor-element.elementor-element-2932a52{text-align:left;}.elementor-20447 .elementor-element.elementor-element-2932a52 > .elementor-widget-container{margin:0px 0px 0px 0px;}.elementor-20447 .elementor-element.elementor-element-0b767d1 .elementor-tab-title{border-width:1px;border-color:#00000014;}.elementor-20447 .elementor-element.elementor-element-0b767d1 .elementor-tab-content{border-width:1px;border-bottom-color:#00000014;}.elementor-20447 .elementor-element.elementor-element-0b767d1 > .elementor-widget-container{margin:0px 0px 0px 0px;}<\/style><div class=\"porto-block elementor elementor-20447\">\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-27707ca elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"27707ca\" data-element_type=\"section\">\r\n\t\t\t\r\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\r\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-0163611\" data-id=\"0163611\" data-element_type=\"column\">\r\n\r\n\t\t\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\r\n\t\t\t\t\t\t\t\t<div class=\"elementor-element elementor-element-03a2969 elementor-widget elementor-widget-text-editor\" data-id=\"03a2969\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.14.0 - 26-06-2023 *\/\n.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:#69727d;color:#fff}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap{color:#69727d;border:3px solid;background-color:transparent}.elementor-widget-text-editor:not(.elementor-drop-cap-view-default) .elementor-drop-cap{margin-top:8px}.elementor-widget-text-editor:not(.elementor-drop-cap-view-default) .elementor-drop-cap-letter{width:1em;height:1em}.elementor-widget-text-editor .elementor-drop-cap{float:left;text-align:center;line-height:1;font-size:50px}.elementor-widget-text-editor .elementor-drop-cap-letter{display:inline-block}<\/style>\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2932a52 elementor-widget elementor-widget-heading\" data-id=\"2932a52\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.14.0 - 26-06-2023 *\/\n.elementor-heading-title{padding:0;margin:0;line-height:1}.elementor-widget-heading .elementor-heading-title[class*=elementor-size-]>a{color:inherit;font-size:inherit;line-height:inherit}.elementor-widget-heading .elementor-heading-title.elementor-size-small{font-size:15px}.elementor-widget-heading .elementor-heading-title.elementor-size-medium{font-size:19px}.elementor-widget-heading .elementor-heading-title.elementor-size-large{font-size:29px}.elementor-widget-heading .elementor-heading-title.elementor-size-xl{font-size:39px}.elementor-widget-heading .elementor-heading-title.elementor-size-xxl{font-size:59px}<\/style><h2 class=\"elementor-heading-title elementor-size-large\">FAQs <\/h2>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0b767d1 elementor-widget elementor-widget-toggle\" data-id=\"0b767d1\" data-element_type=\"widget\" data-widget_type=\"toggle.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\/*! elementor - v3.14.0 - 26-06-2023 *\/\n.elementor-toggle{text-align:left}.elementor-toggle .elementor-tab-title{font-weight:700;line-height:1;margin:0;padding:15px;border-bottom:1px solid #d5d8dc;cursor:pointer;outline:none}.elementor-toggle .elementor-tab-title .elementor-toggle-icon{display:inline-block;width:1em}.elementor-toggle .elementor-tab-title .elementor-toggle-icon svg{-webkit-margin-start:-5px;margin-inline-start:-5px;width:1em;height:1em}.elementor-toggle .elementor-tab-title .elementor-toggle-icon.elementor-toggle-icon-right{float:right;text-align:right}.elementor-toggle .elementor-tab-title .elementor-toggle-icon.elementor-toggle-icon-left{float:left;text-align:left}.elementor-toggle .elementor-tab-title .elementor-toggle-icon .elementor-toggle-icon-closed{display:block}.elementor-toggle .elementor-tab-title .elementor-toggle-icon .elementor-toggle-icon-opened{display:none}.elementor-toggle .elementor-tab-title.elementor-active{border-bottom:none}.elementor-toggle .elementor-tab-title.elementor-active .elementor-toggle-icon-closed{display:none}.elementor-toggle .elementor-tab-title.elementor-active .elementor-toggle-icon-opened{display:block}.elementor-toggle .elementor-tab-content{padding:15px;border-bottom:1px solid #d5d8dc;display:none}@media (max-width:767px){.elementor-toggle .elementor-tab-title{padding:12px}.elementor-toggle .elementor-tab-content{padding:12px 10px}}.e-con-inner>.elementor-widget-toggle,.e-con>.elementor-widget-toggle{width:var(--container-widget-width);--flex-grow:var(--container-widget-flex-grow)}<\/style>\t\t<div class=\"elementor-toggle\">\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<h3 id=\"elementor-tab-title-1201\" class=\"elementor-tab-title\" data-tab=\"1\" role=\"button\" aria-controls=\"elementor-tab-content-1201\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">What is agile methodology in Salesforce?<\/a>\n\t\t\t\t\t<\/h3>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-1201\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"1\" role=\"region\" aria-labelledby=\"elementor-tab-title-1201\"><p><span style=\"font-weight: 400;\">An iterative delivery approach where requirements become user stories, work happens in short sprints &#8211; typically two weeks and working functionality is demonstrated to stakeholders at the end of each one. Salesforce itself moved from waterfall to agile in 2006 and has run that way since.<\/span><\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<h3 id=\"elementor-tab-title-1202\" class=\"elementor-tab-title\" data-tab=\"2\" role=\"button\" aria-controls=\"elementor-tab-content-1202\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">Why is agile better than waterfall for Salesforce projects?<\/a>\n\t\t\t\t\t<\/h3>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-1202\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"2\" role=\"region\" aria-labelledby=\"elementor-tab-title-1202\"><p><span style=\"font-weight: 400;\">Because CRM requirements change as business processes change, the platform delivers three releases a year regardless of your plan, and Salesforce\u2019s environments let you build a demonstrable prototype in hours. Waterfall assumes stable requirements and a controlled release schedule, and Salesforce offers neither.<\/span><\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<h3 id=\"elementor-tab-title-1203\" class=\"elementor-tab-title\" data-tab=\"3\" role=\"button\" aria-controls=\"elementor-tab-content-1203\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">How long should a Salesforce sprint be?<\/a>\n\t\t\t\t\t<\/h3>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-1203\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"3\" role=\"region\" aria-labelledby=\"elementor-tab-title-1203\"><p><span style=\"font-weight: 400;\">Two weeks is the working default. One week rarely leaves room for testing and deployment on config-heavy work. Four weeks loses the feedback loop that justifies agile in the first place.<\/span><\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<h3 id=\"elementor-tab-title-1204\" class=\"elementor-tab-title\" data-tab=\"4\" role=\"button\" aria-controls=\"elementor-tab-content-1204\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">How do you write a good Salesforce user story?<\/a>\n\t\t\t\t\t<\/h3>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-1204\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"4\" role=\"region\" aria-labelledby=\"elementor-tab-title-1204\"><p><span style=\"font-weight: 400;\">Name the specific role rather than \u201ca user,\u201d state the business outcome rather than the implementation, and write acceptance criteria that can actually be tested. Slice by user value rather than technical layer and note non-functional requirements like data volume and profile access.<\/span><\/p><h3>\u00a0<\/h3><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<h3 id=\"elementor-tab-title-1205\" class=\"elementor-tab-title\" data-tab=\"5\" role=\"button\" aria-controls=\"elementor-tab-content-1205\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">How do you estimate configuration and code in the same sprint?<\/a>\n\t\t\t\t\t<\/h3>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-1205\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"5\" role=\"region\" aria-labelledby=\"elementor-tab-title-1205\"><p><span style=\"font-weight: 400;\">Estimate as a team with the person who\u2019ll do the work explaining their reasoning and apply the same Definition of Done to both so points mean the same thing. Otherwise, a two-point Flow and a two-point Apex class represent very different amounts of work.<\/span><\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<h3 id=\"elementor-tab-title-1206\" class=\"elementor-tab-title\" data-tab=\"6\" role=\"button\" aria-controls=\"elementor-tab-content-1206\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">What should a Salesforce Definition of Done include?<\/a>\n\t\t\t\t\t<\/h3>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-1206\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"6\" role=\"region\" aria-labelledby=\"elementor-tab-title-1206\"><p><span style=\"font-weight: 400;\">Built (acceptance criteria met, peer reviewed, works at volume), proven (tests with real assertions, bulk tested, tested by someone who didn\u2019t build it) and shippable (in source control, deployed onward, documented, release-safe). \u201cWorks in my sandbox\u201d is about a third of it.<\/span><\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<h3 id=\"elementor-tab-title-1207\" class=\"elementor-tab-title\" data-tab=\"7\" role=\"button\" aria-controls=\"elementor-tab-content-1207\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">How do Salesforce\u2019s three annual releases affect sprint planning?<\/a>\n\t\t\t\t\t<\/h3>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-1207\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"7\" role=\"region\" aria-labelledby=\"elementor-tab-title-1207\"><p><span style=\"font-weight: 400;\">They land on Salesforce\u2019s schedule, not yours. Treat each as a known event, reserve capacity for regression testing in the sprint that spans it, and use preview sandboxes to test early rather than discovering breakage in production.<\/span><\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<h3 id=\"elementor-tab-title-1208\" class=\"elementor-tab-title\" data-tab=\"8\" role=\"button\" aria-controls=\"elementor-tab-content-1208\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">Should admins be in the scrum team?<\/a>\n\t\t\t\t\t<\/h3>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-1208\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"8\" role=\"region\" aria-labelledby=\"elementor-tab-title-1208\"><p><span style=\"font-weight: 400;\">Yes, separating admins and developers into different teams or backlogs is how you get two groups who don\u2019t talk and duplicated automation. Keep one team and one prioritised backlog, tagging stories by type for reporting.<\/span><\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<h3 id=\"elementor-tab-title-1209\" class=\"elementor-tab-title\" data-tab=\"9\" role=\"button\" aria-controls=\"elementor-tab-content-1209\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-caret-right\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-caret-up\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">When should you not use agile for a Salesforce project?<\/a>\n\t\t\t\t\t<\/h3>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-1209\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"9\" role=\"region\" aria-labelledby=\"elementor-tab-title-1209\"><p><span style=\"font-weight: 400;\">Fixed-price fixed-scope contracts, heavily regulated environments with staged sign-off, pure data migrations and genuinely stable, well-understood scope. Most Salesforce projects are none of these, and the realistic answer is usually hybrid &#8211; phased governance, iterative delivery.<\/span><\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<script type=\"application\/ld+json\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"What is agile methodology in Salesforce?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"<p><span style=\\\"font-weight: 400;\\\">An iterative delivery approach where requirements become user stories, work happens in short sprints &#8211; typically two weeks and working functionality is demonstrated to stakeholders at the end of each one. Salesforce itself moved from waterfall to agile in 2006 and has run that way since.<\\\/span><\\\/p>\"}},{\"@type\":\"Question\",\"name\":\"Why is agile better than waterfall for Salesforce projects?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"<p><span style=\\\"font-weight: 400;\\\">Because CRM requirements change as business processes change, the platform delivers three releases a year regardless of your plan, and Salesforce\\u2019s environments let you build a demonstrable prototype in hours. Waterfall assumes stable requirements and a controlled release schedule, and Salesforce offers neither.<\\\/span><\\\/p>\"}},{\"@type\":\"Question\",\"name\":\"How long should a Salesforce sprint be?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"<p><span style=\\\"font-weight: 400;\\\">Two weeks is the working default. One week rarely leaves room for testing and deployment on config-heavy work. Four weeks loses the feedback loop that justifies agile in the first place.<\\\/span><\\\/p>\"}},{\"@type\":\"Question\",\"name\":\"How do you write a good Salesforce user story?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"<p><span style=\\\"font-weight: 400;\\\">Name the specific role rather than \\u201ca user,\\u201d state the business outcome rather than the implementation, and write acceptance criteria that can actually be tested. Slice by user value rather than technical layer and note non-functional requirements like data volume and profile access.<\\\/span><\\\/p><h3>\\u00a0<\\\/h3>\"}},{\"@type\":\"Question\",\"name\":\"How do you estimate configuration and code in the same sprint?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"<p><span style=\\\"font-weight: 400;\\\">Estimate as a team with the person who\\u2019ll do the work explaining their reasoning and apply the same Definition of Done to both so points mean the same thing. Otherwise, a two-point Flow and a two-point Apex class represent very different amounts of work.<\\\/span><\\\/p>\"}},{\"@type\":\"Question\",\"name\":\"What should a Salesforce Definition of Done include?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"<p><span style=\\\"font-weight: 400;\\\">Built (acceptance criteria met, peer reviewed, works at volume), proven (tests with real assertions, bulk tested, tested by someone who didn\\u2019t build it) and shippable (in source control, deployed onward, documented, release-safe). \\u201cWorks in my sandbox\\u201d is about a third of it.<\\\/span><\\\/p>\"}},{\"@type\":\"Question\",\"name\":\"How do Salesforce\\u2019s three annual releases affect sprint planning?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"<p><span style=\\\"font-weight: 400;\\\">They land on Salesforce\\u2019s schedule, not yours. Treat each as a known event, reserve capacity for regression testing in the sprint that spans it, and use preview sandboxes to test early rather than discovering breakage in production.<\\\/span><\\\/p>\"}},{\"@type\":\"Question\",\"name\":\"Should admins be in the scrum team?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"<p><span style=\\\"font-weight: 400;\\\">Yes, separating admins and developers into different teams or backlogs is how you get two groups who don\\u2019t talk and duplicated automation. Keep one team and one prioritised backlog, tagging stories by type for reporting.<\\\/span><\\\/p>\"}},{\"@type\":\"Question\",\"name\":\"When should you not use agile for a Salesforce project?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"<p><span style=\\\"font-weight: 400;\\\">Fixed-price fixed-scope contracts, heavily regulated environments with staged sign-off, pure data migrations and genuinely stable, well-understood scope. Most Salesforce projects are none of these, and the realistic answer is usually hybrid &#8211; phased governance, iterative delivery.<\\\/span><\\\/p>\"}}]}<\/script>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/div>\r\n\t\t\t\t\t\t<\/div>\r\n\t\t\t\t<\/section>\r\n\t\t<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Key Takeaways :\u00a0 Agile works well for Salesforce, but teams must adapt sprint planning to mixed admin-and-developer teams, sandbox constraints, and three annual platform releases. A Salesforce story is not done when it works in a sandbox. It needs to be tested, documented, reviewed, and deployment-ready under a clear Definition of Done. Environment strategy and [&hellip;]<\/p>\n","protected":false},"author":15,"featured_media":20457,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_yoast_wpseo_meta-robots-noindex":"","_yoast_wpseo_meta-robots-nofollow":"","_yoast_wpseo_canonical":"","_yoast_wpseo_opengraph-title":"","_yoast_wpseo_opengraph-description":"","_yoast_wpseo_opengraph-image":"","_yoast_wpseo_twitter-title":"","_yoast_wpseo_twitter-description":"","_yoast_wpseo_twitter-image":"","_wp_applaud_exclude":false,"footnotes":""},"categories":[85],"tags":[2626,2625],"class_list":["post-20446","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-salesforce","tag-agile-methodology-in-salesforce","tag-agile-salesforce"],"featured_image_src":{"landsacpe":["https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2026\/08\/Untitled-design-87-1140x445.webp",1140,445,true],"list":["https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2026\/08\/Untitled-design-87-463x348.webp",463,348,true],"medium":["https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2026\/08\/Untitled-design-87-300x169.webp",300,169,true],"full":["https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2026\/08\/Untitled-design-87.webp",1536,864,false]},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Agile Methodology in Salesforce: Sprints, Stories &amp; Best Practices<\/title>\n<meta name=\"description\" content=\"Learn how Agile methodology in Salesforce works, including sprints, user stories, sandbox limits, releases, Definition of Done, and Agile vs Waterfall.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/dianapps.com\/blog\/agile-methodology-in-salesforce\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Agile Methodology in Salesforce: Sprints, Stories &amp; Best Practices\" \/>\n<meta property=\"og:description\" content=\"Learn how Agile methodology in Salesforce works, including sprints, user stories, sandbox limits, releases, Definition of Done, and Agile vs Waterfall.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/dianapps.com\/blog\/agile-methodology-in-salesforce\/\" \/>\n<meta property=\"og:site_name\" content=\"Learn About Digital Transformation &amp; Development | DianApps Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-21T08:04:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-21T09:07:57+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2026\/08\/Untitled-design-87.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1536\" \/>\n\t<meta property=\"og:image:height\" content=\"864\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Vaibhav Sharma\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Vaibhav Sharma\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Agile Methodology in Salesforce: Sprints, Stories & Best Practices","description":"Learn how Agile methodology in Salesforce works, including sprints, user stories, sandbox limits, releases, Definition of Done, and Agile vs Waterfall.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/dianapps.com\/blog\/agile-methodology-in-salesforce\/","og_locale":"en_US","og_type":"article","og_title":"Agile Methodology in Salesforce: Sprints, Stories & Best Practices","og_description":"Learn how Agile methodology in Salesforce works, including sprints, user stories, sandbox limits, releases, Definition of Done, and Agile vs Waterfall.","og_url":"https:\/\/dianapps.com\/blog\/agile-methodology-in-salesforce\/","og_site_name":"Learn About Digital Transformation &amp; Development | DianApps Blog","article_published_time":"2026-08-21T08:04:38+00:00","article_modified_time":"2026-08-21T09:07:57+00:00","og_image":[{"width":1536,"height":864,"url":"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2026\/08\/Untitled-design-87.webp","type":"image\/webp"}],"author":"Vaibhav Sharma","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Vaibhav Sharma","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/dianapps.com\/blog\/agile-methodology-in-salesforce\/#article","isPartOf":{"@id":"https:\/\/dianapps.com\/blog\/agile-methodology-in-salesforce\/"},"author":{"name":"Vaibhav Sharma","@id":"https:\/\/dianapps.com\/blog\/#\/schema\/person\/e0ee1e2a6cfb8681a3cc69154f8d8bcf"},"headline":"Agile Methodology in Salesforce: What\u2019s Actually Different","datePublished":"2026-08-21T08:04:38+00:00","dateModified":"2026-08-21T09:07:57+00:00","mainEntityOfPage":{"@id":"https:\/\/dianapps.com\/blog\/agile-methodology-in-salesforce\/"},"wordCount":1866,"commentCount":0,"image":{"@id":"https:\/\/dianapps.com\/blog\/agile-methodology-in-salesforce\/#primaryimage"},"thumbnailUrl":"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2026\/08\/Untitled-design-87.webp","keywords":["Agile Methodology in Salesforce","agile salesforce"],"articleSection":["Salesforce"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/dianapps.com\/blog\/agile-methodology-in-salesforce\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/dianapps.com\/blog\/agile-methodology-in-salesforce\/","url":"https:\/\/dianapps.com\/blog\/agile-methodology-in-salesforce\/","name":"Agile Methodology in Salesforce: Sprints, Stories & Best Practices","isPartOf":{"@id":"https:\/\/dianapps.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/dianapps.com\/blog\/agile-methodology-in-salesforce\/#primaryimage"},"image":{"@id":"https:\/\/dianapps.com\/blog\/agile-methodology-in-salesforce\/#primaryimage"},"thumbnailUrl":"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2026\/08\/Untitled-design-87.webp","datePublished":"2026-08-21T08:04:38+00:00","dateModified":"2026-08-21T09:07:57+00:00","author":{"@id":"https:\/\/dianapps.com\/blog\/#\/schema\/person\/e0ee1e2a6cfb8681a3cc69154f8d8bcf"},"description":"Learn how Agile methodology in Salesforce works, including sprints, user stories, sandbox limits, releases, Definition of Done, and Agile vs Waterfall.","breadcrumb":{"@id":"https:\/\/dianapps.com\/blog\/agile-methodology-in-salesforce\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/dianapps.com\/blog\/agile-methodology-in-salesforce\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/dianapps.com\/blog\/agile-methodology-in-salesforce\/#primaryimage","url":"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2026\/08\/Untitled-design-87.webp","contentUrl":"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2026\/08\/Untitled-design-87.webp","width":1536,"height":864,"caption":"Agile Methodology in Salesforce: What\u2019s Actually Different"},{"@type":"BreadcrumbList","@id":"https:\/\/dianapps.com\/blog\/agile-methodology-in-salesforce\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/dianapps.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Agile Methodology in Salesforce: What\u2019s Actually Different"}]},{"@type":"WebSite","@id":"https:\/\/dianapps.com\/blog\/#website","url":"https:\/\/dianapps.com\/blog\/","name":"Learn About Digital Transformation &amp; Development | DianApps Blog","description":"Dianapps","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/dianapps.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/dianapps.com\/blog\/#\/schema\/person\/e0ee1e2a6cfb8681a3cc69154f8d8bcf","name":"Vaibhav Sharma","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2026\/07\/cropped-Vaibhav-Sharma-Salesforce-Specialist-96x96.jpg","url":"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2026\/07\/cropped-Vaibhav-Sharma-Salesforce-Specialist-96x96.jpg","contentUrl":"https:\/\/dianapps.com\/blog\/wp-content\/uploads\/2026\/07\/cropped-Vaibhav-Sharma-Salesforce-Specialist-96x96.jpg","caption":"Vaibhav Sharma"},"description":"A Salesforce specialist with over 15 years in the field, Vaibhav Sharma has built his career at the intersection of CRM strategy and enterprise transformation. As the driving force behind Salesforce innovation at DianApps, he architects solutions across Sales Cloud, Service Cloud, and Experience Cloud that turn fragmented customer data into unified growth engines. His work spans a 360-degree perspective in BFSI, healthcare, and retail, where he's known for engineering platforms that don't just go live, they move revenue and retention numbers. Vaibhav's edge lies in reading where Salesforce is headed next, from AI-powered automation, AgentExchange to Agentforce, and translating that foresight into roadmaps enterprise leaders can act on today.","url":"https:\/\/dianapps.com\/blog\/author\/vaibhav-sharma\/"}]}},"_links":{"self":[{"href":"https:\/\/dianapps.com\/blog\/wp-json\/wp\/v2\/posts\/20446","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dianapps.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dianapps.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dianapps.com\/blog\/wp-json\/wp\/v2\/users\/15"}],"replies":[{"embeddable":true,"href":"https:\/\/dianapps.com\/blog\/wp-json\/wp\/v2\/comments?post=20446"}],"version-history":[{"count":2,"href":"https:\/\/dianapps.com\/blog\/wp-json\/wp\/v2\/posts\/20446\/revisions"}],"predecessor-version":[{"id":20456,"href":"https:\/\/dianapps.com\/blog\/wp-json\/wp\/v2\/posts\/20446\/revisions\/20456"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dianapps.com\/blog\/wp-json\/wp\/v2\/media\/20457"}],"wp:attachment":[{"href":"https:\/\/dianapps.com\/blog\/wp-json\/wp\/v2\/media?parent=20446"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dianapps.com\/blog\/wp-json\/wp\/v2\/categories?post=20446"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dianapps.com\/blog\/wp-json\/wp\/v2\/tags?post=20446"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}