How to refer to functional requirement specifications (FRS) from user stories? Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern) Announcing the arrival of Valued Associate #679: Cesar Manara Unicorn Meta Zoo #1: Why another podcast?What's the name for the issue where a customer cannot articulate his/her requirements before seeing the finished software?Confusion about user story in project requirement documentUser story conversation vs. scope creepUser stories vs Functional specificationsUser Interface Requirements in User StoriesSplitting user storiesHow to handle unfinished user stories?How to write implementing HTTPS as a user story?Specifications in spreadsheets vs. stories in JIRADetect undiscovered user storiesWhat does a QA team do during the development phase of a sprint in Agile Scrum?

In predicate logic, does existential quantification (∃) include universal quantification (∀), i.e. can 'some' imply 'all'?

What LEGO pieces have "real-world" functionality?

What is a non-alternating simple group with big order, but relatively few conjugacy classes?

How to bypass password on Windows XP account?

Dating a Former Employee

Check which numbers satisfy the condition [A*B*C = A! + B! + C!]

How to tell that you are a giant?

Is it true that "carbohydrates are of no use for the basal metabolic need"?

Seeking colloquialism for “just because”

If a contract sometimes uses the wrong name, is it still valid?

Echoing a tail command produces unexpected output?

Why did the IBM 650 use bi-quinary?

Is it ethical to give a final exam after the professor has quit before teaching the remaining chapters of the course?

Identify plant with long narrow paired leaves and reddish stems

How do I stop a creek from eroding my steep embankment?

How can I make names more distinctive without making them longer?

How to call a function with default parameter through a pointer to function that is the return of another function?

What does the "x" in "x86" represent?

How would the world control an invulnerable immortal mass murderer?

Fundamental Solution of the Pell Equation

Why do we bend a book to keep it straight?

How to deal with a team lead who never gives me credit?

What is the role of the transistor and diode in a soft start circuit?

Why is "Consequences inflicted." not a sentence?



How to refer to functional requirement specifications (FRS) from user stories?



Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)
Announcing the arrival of Valued Associate #679: Cesar Manara
Unicorn Meta Zoo #1: Why another podcast?What's the name for the issue where a customer cannot articulate his/her requirements before seeing the finished software?Confusion about user story in project requirement documentUser story conversation vs. scope creepUser stories vs Functional specificationsUser Interface Requirements in User StoriesSplitting user storiesHow to handle unfinished user stories?How to write implementing HTTPS as a user story?Specifications in spreadsheets vs. stories in JIRADetect undiscovered user storiesWhat does a QA team do during the development phase of a sprint in Agile Scrum?










3















Let's consider a simple story for a user authentication screen:




As a user,

I want to be able to login with my username and password

so that I can do xyz.




This looks good, but all of the details related to what should happen when the password is incorrect, how many retries should be allowed, validations, and a bunch of other stuff that should go in with that story are missing.



Where should all that information go in an agile Scrum setup? Is it an FRS (or any other equivalent monolithic document containing details of all functional specs)? If yes, given there will be hundreds or thousands of these tiny stories, how should references to their corresponding FRS sections kept in sync with each other? How best to manage this level of detail in an agile Scrum world?










share|improve this question









New contributor




Achilles is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.















  • 1





    On a side note, having "hundreds or thousands of tiny stories" is generally an anti-pattern in itself. Most of what you're envisioning as stories are better captured in tests, the Definition of Done, or items on the Sprint Backlog (if they have to be captured at all). User story development is an art, not a science, so please browse the user-stories tag or read Mike Cohn's books on the subject for more thorough guidance on how to find the right balance of granularity for your project.

    – Todd A. Jacobs
    Apr 11 at 9:25
















3















Let's consider a simple story for a user authentication screen:




As a user,

I want to be able to login with my username and password

so that I can do xyz.




This looks good, but all of the details related to what should happen when the password is incorrect, how many retries should be allowed, validations, and a bunch of other stuff that should go in with that story are missing.



Where should all that information go in an agile Scrum setup? Is it an FRS (or any other equivalent monolithic document containing details of all functional specs)? If yes, given there will be hundreds or thousands of these tiny stories, how should references to their corresponding FRS sections kept in sync with each other? How best to manage this level of detail in an agile Scrum world?










share|improve this question









New contributor




Achilles is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.















  • 1





    On a side note, having "hundreds or thousands of tiny stories" is generally an anti-pattern in itself. Most of what you're envisioning as stories are better captured in tests, the Definition of Done, or items on the Sprint Backlog (if they have to be captured at all). User story development is an art, not a science, so please browse the user-stories tag or read Mike Cohn's books on the subject for more thorough guidance on how to find the right balance of granularity for your project.

    – Todd A. Jacobs
    Apr 11 at 9:25














3












3








3








Let's consider a simple story for a user authentication screen:




As a user,

I want to be able to login with my username and password

so that I can do xyz.




This looks good, but all of the details related to what should happen when the password is incorrect, how many retries should be allowed, validations, and a bunch of other stuff that should go in with that story are missing.



Where should all that information go in an agile Scrum setup? Is it an FRS (or any other equivalent monolithic document containing details of all functional specs)? If yes, given there will be hundreds or thousands of these tiny stories, how should references to their corresponding FRS sections kept in sync with each other? How best to manage this level of detail in an agile Scrum world?










share|improve this question









New contributor




Achilles is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.












Let's consider a simple story for a user authentication screen:




As a user,

I want to be able to login with my username and password

so that I can do xyz.




This looks good, but all of the details related to what should happen when the password is incorrect, how many retries should be allowed, validations, and a bunch of other stuff that should go in with that story are missing.



Where should all that information go in an agile Scrum setup? Is it an FRS (or any other equivalent monolithic document containing details of all functional specs)? If yes, given there will be hundreds or thousands of these tiny stories, how should references to their corresponding FRS sections kept in sync with each other? How best to manage this level of detail in an agile Scrum world?







scrum agile user-stories documentation






share|improve this question









New contributor




Achilles is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question









New contributor




Achilles is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question








edited Apr 11 at 9:20









Todd A. Jacobs

34.1k333122




34.1k333122






New contributor




Achilles is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked Apr 10 at 22:07









AchillesAchilles

1262




1262




New contributor




Achilles is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





Achilles is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






Achilles is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.







  • 1





    On a side note, having "hundreds or thousands of tiny stories" is generally an anti-pattern in itself. Most of what you're envisioning as stories are better captured in tests, the Definition of Done, or items on the Sprint Backlog (if they have to be captured at all). User story development is an art, not a science, so please browse the user-stories tag or read Mike Cohn's books on the subject for more thorough guidance on how to find the right balance of granularity for your project.

    – Todd A. Jacobs
    Apr 11 at 9:25













  • 1





    On a side note, having "hundreds or thousands of tiny stories" is generally an anti-pattern in itself. Most of what you're envisioning as stories are better captured in tests, the Definition of Done, or items on the Sprint Backlog (if they have to be captured at all). User story development is an art, not a science, so please browse the user-stories tag or read Mike Cohn's books on the subject for more thorough guidance on how to find the right balance of granularity for your project.

    – Todd A. Jacobs
    Apr 11 at 9:25








1




1





On a side note, having "hundreds or thousands of tiny stories" is generally an anti-pattern in itself. Most of what you're envisioning as stories are better captured in tests, the Definition of Done, or items on the Sprint Backlog (if they have to be captured at all). User story development is an art, not a science, so please browse the user-stories tag or read Mike Cohn's books on the subject for more thorough guidance on how to find the right balance of granularity for your project.

– Todd A. Jacobs
Apr 11 at 9:25






On a side note, having "hundreds or thousands of tiny stories" is generally an anti-pattern in itself. Most of what you're envisioning as stories are better captured in tests, the Definition of Done, or items on the Sprint Backlog (if they have to be captured at all). User story development is an art, not a science, so please browse the user-stories tag or read Mike Cohn's books on the subject for more thorough guidance on how to find the right balance of granularity for your project.

– Todd A. Jacobs
Apr 11 at 9:25











5 Answers
5






active

oldest

votes


















7














You've basically hit on the purpose of user stories. You see, user stories arose when we had large requirements documents that had all of the details the dev team could possibly need to develop the software. The problem with this is that those details take a long time to document and it turns out, they often aren't what the user wants (or at least miss the mark). Now all of that time has been wasted. Instead, we write a user story gives us just enough information to have a conversation with the person who wrote it. The dev team can ask questions and get a better understanding of their needs, then build something that meets them. They'll write their notes someplace and depending on your application, it might even make sense that those are stored in a very specific place. So, the purpose of user stories was to get away from monolithic documents and move to personal conversations. If you are tying a user story back to details in a large requirements document, you've eliminated the value of user stories.






share|improve this answer






























    5














    TL;DR



    The short answer is that you don't. Big, upfront planning is orthogonal to agile development. Instead, you should focus on iterative and incremental development with tight feedback loops to ensure that you're building the right things and embracing change throughout the project's life cycle.



    Big, Upfront Requirements an Anti-Pattern



    Doing detailed or large-scale requirements at the inception of a project is an agile anti-pattern. In particular, the Manifesto for Agile Software Development values:




    Working software over comprehensive documentation[.]




    Likewise, Scrum Theory explicitly avoids the use of fixed, upfront planning:




    Scrum employs an iterative, incremental approach to optimize predictability and control risk.




    While there is nothing stopping you from linking user stories or other types of Product Backlog Items to functional requirements, doing so is often a "project smell" that you're fixing scope, which is ideally the movable part of the Iron Triangle in Scrum. Furthermore, it's often an indication that you're making implementation decisions too early in the process. Lean practices require that you make architectural and design decisions at the last responsible moment, which is almost never at the very beginning of a project when functional requirement specifications are usually gathered.



    What to do Instead



    Within the Scrum framework, you should be leveraging the framework to perform just-in-time planning at the proper level of granularity. In particular:



    1. Leverage Backlog Refinement to identify work that will likely be in scope for the next iteration, maximizing the amount of work not done.

    2. Use Sprint Planning to decompose work into tasks and deliverables only for the current increment, optimizing for just-in-time planning.

    3. Leave implementation details out of Product Backlog and (most) Sprint Backlog items, allowing for greater flexibility.

    4. Gather feedback from stakeholders during the Sprint Review to identify changes and refinements to be treated as new work, allowing the project to continually evolve to meet changing market demands and to take advantage of lessons learned.

    While not required by Scrum, agile practices generally require integrating test-driven design or behavior-driven development (often in collaboration with stakeholders or customers) to ensure that any functional requirements in scope for the current iteration are well-defined and testable. This type of "living documentation" is often more useful, more accurate, more maintainable, and more effective than typical functional requirements documents.






    share|improve this answer























    • This appears to be only a partial answer. If you don't write a large requirements document, where (and when) do you take note of those pesky details like number of login attempts and required password strength. Those are not implementation details that you can completely leave out.

      – Bart van Ingen Schenau
      Apr 11 at 5:52











    • @BartvanIngenSchenau "Pesky details" should be driven out empirically. Simple or obvious ones are generally captured in executable tests when a feature comes into scope. Others will be discovered through the inspect-and-adapt cycle, and become refinements captured as new work for future iterations. The whole point of many agile practices is to avoid over-constraining the solution space and encourage emergent design, which is why you should not spec out implementation details until the last responsible moment.

      – Todd A. Jacobs
      Apr 11 at 10:34


















    3














    I think part of the problem is that this:




    login with my username and password




    is not a requirement. It's a design choice masquerading as a requirement. The real requirement is something like: "As a user I need to (securely and uniquely) authenticate with the system so that I can ..." Choosing username and password immediately rules out other, lower friction, means of authentication. Already logged in to Active Directory/G Suite/Office 365/another Oauth provider? Can we use that? What about facial recognition and fingerprint? Is that sufficient?



    Keep this in mind as you go through your user stories. Are they telling you how something should be done instead of what needs to be done? Quite often this is OK; they're expanding on/clarifying earlier design choices. But sometimes it's worth taking a step back, asking yourself what problem are they really solving, and is there a better way?






    share|improve this answer








    New contributor




    pgs is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.



























      2














      As said by others, details should be clarified at the last responsible moment, sometimes at the moment of implementation in close collaboration between developers and e.g. business people or UX experts. However, specific information could be noted as acceptance criteria. More general and repeating criteria may be better placed within the team's (or organizations) Definition of 'Done'.



      For acceptance criteria you may also want to take a look at a syntax like Gherkin
      -- and you may want to automate testing with things like Cucumber as a living, more value-adding documentation and base for regression testing.






      share|improve this answer








      New contributor




      Thorben Egberts is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.



























        1














        "how many retries should be allowed, validations, and a bunch of other stuff that should go in with that story are missing. Where should all that information go in an agile Scrum setup?"



        That is why you have acceptance criteria.



        But it seams to me that you have another problem: who wrote your FRS? Why you did that investment, if you knew it will be agile project? In agile team decides technical details. If you read agile manifesto carefully, you will see that it is developers call for revolution.






        share|improve this answer








        New contributor




        kriscorbus is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
        Check out our Code of Conduct.




















          Your Answer








          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "208"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: false,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          noCode: true, onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );






          Achilles is a new contributor. Be nice, and check out our Code of Conduct.









          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fpm.stackexchange.com%2fquestions%2f26166%2fhow-to-refer-to-functional-requirement-specifications-frs-from-user-stories%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          5 Answers
          5






          active

          oldest

          votes








          5 Answers
          5






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          7














          You've basically hit on the purpose of user stories. You see, user stories arose when we had large requirements documents that had all of the details the dev team could possibly need to develop the software. The problem with this is that those details take a long time to document and it turns out, they often aren't what the user wants (or at least miss the mark). Now all of that time has been wasted. Instead, we write a user story gives us just enough information to have a conversation with the person who wrote it. The dev team can ask questions and get a better understanding of their needs, then build something that meets them. They'll write their notes someplace and depending on your application, it might even make sense that those are stored in a very specific place. So, the purpose of user stories was to get away from monolithic documents and move to personal conversations. If you are tying a user story back to details in a large requirements document, you've eliminated the value of user stories.






          share|improve this answer



























            7














            You've basically hit on the purpose of user stories. You see, user stories arose when we had large requirements documents that had all of the details the dev team could possibly need to develop the software. The problem with this is that those details take a long time to document and it turns out, they often aren't what the user wants (or at least miss the mark). Now all of that time has been wasted. Instead, we write a user story gives us just enough information to have a conversation with the person who wrote it. The dev team can ask questions and get a better understanding of their needs, then build something that meets them. They'll write their notes someplace and depending on your application, it might even make sense that those are stored in a very specific place. So, the purpose of user stories was to get away from monolithic documents and move to personal conversations. If you are tying a user story back to details in a large requirements document, you've eliminated the value of user stories.






            share|improve this answer

























              7












              7








              7







              You've basically hit on the purpose of user stories. You see, user stories arose when we had large requirements documents that had all of the details the dev team could possibly need to develop the software. The problem with this is that those details take a long time to document and it turns out, they often aren't what the user wants (or at least miss the mark). Now all of that time has been wasted. Instead, we write a user story gives us just enough information to have a conversation with the person who wrote it. The dev team can ask questions and get a better understanding of their needs, then build something that meets them. They'll write their notes someplace and depending on your application, it might even make sense that those are stored in a very specific place. So, the purpose of user stories was to get away from monolithic documents and move to personal conversations. If you are tying a user story back to details in a large requirements document, you've eliminated the value of user stories.






              share|improve this answer













              You've basically hit on the purpose of user stories. You see, user stories arose when we had large requirements documents that had all of the details the dev team could possibly need to develop the software. The problem with this is that those details take a long time to document and it turns out, they often aren't what the user wants (or at least miss the mark). Now all of that time has been wasted. Instead, we write a user story gives us just enough information to have a conversation with the person who wrote it. The dev team can ask questions and get a better understanding of their needs, then build something that meets them. They'll write their notes someplace and depending on your application, it might even make sense that those are stored in a very specific place. So, the purpose of user stories was to get away from monolithic documents and move to personal conversations. If you are tying a user story back to details in a large requirements document, you've eliminated the value of user stories.







              share|improve this answer












              share|improve this answer



              share|improve this answer










              answered Apr 11 at 0:26









              DanielDaniel

              9,77321327




              9,77321327





















                  5














                  TL;DR



                  The short answer is that you don't. Big, upfront planning is orthogonal to agile development. Instead, you should focus on iterative and incremental development with tight feedback loops to ensure that you're building the right things and embracing change throughout the project's life cycle.



                  Big, Upfront Requirements an Anti-Pattern



                  Doing detailed or large-scale requirements at the inception of a project is an agile anti-pattern. In particular, the Manifesto for Agile Software Development values:




                  Working software over comprehensive documentation[.]




                  Likewise, Scrum Theory explicitly avoids the use of fixed, upfront planning:




                  Scrum employs an iterative, incremental approach to optimize predictability and control risk.




                  While there is nothing stopping you from linking user stories or other types of Product Backlog Items to functional requirements, doing so is often a "project smell" that you're fixing scope, which is ideally the movable part of the Iron Triangle in Scrum. Furthermore, it's often an indication that you're making implementation decisions too early in the process. Lean practices require that you make architectural and design decisions at the last responsible moment, which is almost never at the very beginning of a project when functional requirement specifications are usually gathered.



                  What to do Instead



                  Within the Scrum framework, you should be leveraging the framework to perform just-in-time planning at the proper level of granularity. In particular:



                  1. Leverage Backlog Refinement to identify work that will likely be in scope for the next iteration, maximizing the amount of work not done.

                  2. Use Sprint Planning to decompose work into tasks and deliverables only for the current increment, optimizing for just-in-time planning.

                  3. Leave implementation details out of Product Backlog and (most) Sprint Backlog items, allowing for greater flexibility.

                  4. Gather feedback from stakeholders during the Sprint Review to identify changes and refinements to be treated as new work, allowing the project to continually evolve to meet changing market demands and to take advantage of lessons learned.

                  While not required by Scrum, agile practices generally require integrating test-driven design or behavior-driven development (often in collaboration with stakeholders or customers) to ensure that any functional requirements in scope for the current iteration are well-defined and testable. This type of "living documentation" is often more useful, more accurate, more maintainable, and more effective than typical functional requirements documents.






                  share|improve this answer























                  • This appears to be only a partial answer. If you don't write a large requirements document, where (and when) do you take note of those pesky details like number of login attempts and required password strength. Those are not implementation details that you can completely leave out.

                    – Bart van Ingen Schenau
                    Apr 11 at 5:52











                  • @BartvanIngenSchenau "Pesky details" should be driven out empirically. Simple or obvious ones are generally captured in executable tests when a feature comes into scope. Others will be discovered through the inspect-and-adapt cycle, and become refinements captured as new work for future iterations. The whole point of many agile practices is to avoid over-constraining the solution space and encourage emergent design, which is why you should not spec out implementation details until the last responsible moment.

                    – Todd A. Jacobs
                    Apr 11 at 10:34















                  5














                  TL;DR



                  The short answer is that you don't. Big, upfront planning is orthogonal to agile development. Instead, you should focus on iterative and incremental development with tight feedback loops to ensure that you're building the right things and embracing change throughout the project's life cycle.



                  Big, Upfront Requirements an Anti-Pattern



                  Doing detailed or large-scale requirements at the inception of a project is an agile anti-pattern. In particular, the Manifesto for Agile Software Development values:




                  Working software over comprehensive documentation[.]




                  Likewise, Scrum Theory explicitly avoids the use of fixed, upfront planning:




                  Scrum employs an iterative, incremental approach to optimize predictability and control risk.




                  While there is nothing stopping you from linking user stories or other types of Product Backlog Items to functional requirements, doing so is often a "project smell" that you're fixing scope, which is ideally the movable part of the Iron Triangle in Scrum. Furthermore, it's often an indication that you're making implementation decisions too early in the process. Lean practices require that you make architectural and design decisions at the last responsible moment, which is almost never at the very beginning of a project when functional requirement specifications are usually gathered.



                  What to do Instead



                  Within the Scrum framework, you should be leveraging the framework to perform just-in-time planning at the proper level of granularity. In particular:



                  1. Leverage Backlog Refinement to identify work that will likely be in scope for the next iteration, maximizing the amount of work not done.

                  2. Use Sprint Planning to decompose work into tasks and deliverables only for the current increment, optimizing for just-in-time planning.

                  3. Leave implementation details out of Product Backlog and (most) Sprint Backlog items, allowing for greater flexibility.

                  4. Gather feedback from stakeholders during the Sprint Review to identify changes and refinements to be treated as new work, allowing the project to continually evolve to meet changing market demands and to take advantage of lessons learned.

                  While not required by Scrum, agile practices generally require integrating test-driven design or behavior-driven development (often in collaboration with stakeholders or customers) to ensure that any functional requirements in scope for the current iteration are well-defined and testable. This type of "living documentation" is often more useful, more accurate, more maintainable, and more effective than typical functional requirements documents.






                  share|improve this answer























                  • This appears to be only a partial answer. If you don't write a large requirements document, where (and when) do you take note of those pesky details like number of login attempts and required password strength. Those are not implementation details that you can completely leave out.

                    – Bart van Ingen Schenau
                    Apr 11 at 5:52











                  • @BartvanIngenSchenau "Pesky details" should be driven out empirically. Simple or obvious ones are generally captured in executable tests when a feature comes into scope. Others will be discovered through the inspect-and-adapt cycle, and become refinements captured as new work for future iterations. The whole point of many agile practices is to avoid over-constraining the solution space and encourage emergent design, which is why you should not spec out implementation details until the last responsible moment.

                    – Todd A. Jacobs
                    Apr 11 at 10:34













                  5












                  5








                  5







                  TL;DR



                  The short answer is that you don't. Big, upfront planning is orthogonal to agile development. Instead, you should focus on iterative and incremental development with tight feedback loops to ensure that you're building the right things and embracing change throughout the project's life cycle.



                  Big, Upfront Requirements an Anti-Pattern



                  Doing detailed or large-scale requirements at the inception of a project is an agile anti-pattern. In particular, the Manifesto for Agile Software Development values:




                  Working software over comprehensive documentation[.]




                  Likewise, Scrum Theory explicitly avoids the use of fixed, upfront planning:




                  Scrum employs an iterative, incremental approach to optimize predictability and control risk.




                  While there is nothing stopping you from linking user stories or other types of Product Backlog Items to functional requirements, doing so is often a "project smell" that you're fixing scope, which is ideally the movable part of the Iron Triangle in Scrum. Furthermore, it's often an indication that you're making implementation decisions too early in the process. Lean practices require that you make architectural and design decisions at the last responsible moment, which is almost never at the very beginning of a project when functional requirement specifications are usually gathered.



                  What to do Instead



                  Within the Scrum framework, you should be leveraging the framework to perform just-in-time planning at the proper level of granularity. In particular:



                  1. Leverage Backlog Refinement to identify work that will likely be in scope for the next iteration, maximizing the amount of work not done.

                  2. Use Sprint Planning to decompose work into tasks and deliverables only for the current increment, optimizing for just-in-time planning.

                  3. Leave implementation details out of Product Backlog and (most) Sprint Backlog items, allowing for greater flexibility.

                  4. Gather feedback from stakeholders during the Sprint Review to identify changes and refinements to be treated as new work, allowing the project to continually evolve to meet changing market demands and to take advantage of lessons learned.

                  While not required by Scrum, agile practices generally require integrating test-driven design or behavior-driven development (often in collaboration with stakeholders or customers) to ensure that any functional requirements in scope for the current iteration are well-defined and testable. This type of "living documentation" is often more useful, more accurate, more maintainable, and more effective than typical functional requirements documents.






                  share|improve this answer













                  TL;DR



                  The short answer is that you don't. Big, upfront planning is orthogonal to agile development. Instead, you should focus on iterative and incremental development with tight feedback loops to ensure that you're building the right things and embracing change throughout the project's life cycle.



                  Big, Upfront Requirements an Anti-Pattern



                  Doing detailed or large-scale requirements at the inception of a project is an agile anti-pattern. In particular, the Manifesto for Agile Software Development values:




                  Working software over comprehensive documentation[.]




                  Likewise, Scrum Theory explicitly avoids the use of fixed, upfront planning:




                  Scrum employs an iterative, incremental approach to optimize predictability and control risk.




                  While there is nothing stopping you from linking user stories or other types of Product Backlog Items to functional requirements, doing so is often a "project smell" that you're fixing scope, which is ideally the movable part of the Iron Triangle in Scrum. Furthermore, it's often an indication that you're making implementation decisions too early in the process. Lean practices require that you make architectural and design decisions at the last responsible moment, which is almost never at the very beginning of a project when functional requirement specifications are usually gathered.



                  What to do Instead



                  Within the Scrum framework, you should be leveraging the framework to perform just-in-time planning at the proper level of granularity. In particular:



                  1. Leverage Backlog Refinement to identify work that will likely be in scope for the next iteration, maximizing the amount of work not done.

                  2. Use Sprint Planning to decompose work into tasks and deliverables only for the current increment, optimizing for just-in-time planning.

                  3. Leave implementation details out of Product Backlog and (most) Sprint Backlog items, allowing for greater flexibility.

                  4. Gather feedback from stakeholders during the Sprint Review to identify changes and refinements to be treated as new work, allowing the project to continually evolve to meet changing market demands and to take advantage of lessons learned.

                  While not required by Scrum, agile practices generally require integrating test-driven design or behavior-driven development (often in collaboration with stakeholders or customers) to ensure that any functional requirements in scope for the current iteration are well-defined and testable. This type of "living documentation" is often more useful, more accurate, more maintainable, and more effective than typical functional requirements documents.







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Apr 11 at 0:55









                  Todd A. JacobsTodd A. Jacobs

                  34.1k333122




                  34.1k333122












                  • This appears to be only a partial answer. If you don't write a large requirements document, where (and when) do you take note of those pesky details like number of login attempts and required password strength. Those are not implementation details that you can completely leave out.

                    – Bart van Ingen Schenau
                    Apr 11 at 5:52











                  • @BartvanIngenSchenau "Pesky details" should be driven out empirically. Simple or obvious ones are generally captured in executable tests when a feature comes into scope. Others will be discovered through the inspect-and-adapt cycle, and become refinements captured as new work for future iterations. The whole point of many agile practices is to avoid over-constraining the solution space and encourage emergent design, which is why you should not spec out implementation details until the last responsible moment.

                    – Todd A. Jacobs
                    Apr 11 at 10:34

















                  • This appears to be only a partial answer. If you don't write a large requirements document, where (and when) do you take note of those pesky details like number of login attempts and required password strength. Those are not implementation details that you can completely leave out.

                    – Bart van Ingen Schenau
                    Apr 11 at 5:52











                  • @BartvanIngenSchenau "Pesky details" should be driven out empirically. Simple or obvious ones are generally captured in executable tests when a feature comes into scope. Others will be discovered through the inspect-and-adapt cycle, and become refinements captured as new work for future iterations. The whole point of many agile practices is to avoid over-constraining the solution space and encourage emergent design, which is why you should not spec out implementation details until the last responsible moment.

                    – Todd A. Jacobs
                    Apr 11 at 10:34
















                  This appears to be only a partial answer. If you don't write a large requirements document, where (and when) do you take note of those pesky details like number of login attempts and required password strength. Those are not implementation details that you can completely leave out.

                  – Bart van Ingen Schenau
                  Apr 11 at 5:52





                  This appears to be only a partial answer. If you don't write a large requirements document, where (and when) do you take note of those pesky details like number of login attempts and required password strength. Those are not implementation details that you can completely leave out.

                  – Bart van Ingen Schenau
                  Apr 11 at 5:52













                  @BartvanIngenSchenau "Pesky details" should be driven out empirically. Simple or obvious ones are generally captured in executable tests when a feature comes into scope. Others will be discovered through the inspect-and-adapt cycle, and become refinements captured as new work for future iterations. The whole point of many agile practices is to avoid over-constraining the solution space and encourage emergent design, which is why you should not spec out implementation details until the last responsible moment.

                  – Todd A. Jacobs
                  Apr 11 at 10:34





                  @BartvanIngenSchenau "Pesky details" should be driven out empirically. Simple or obvious ones are generally captured in executable tests when a feature comes into scope. Others will be discovered through the inspect-and-adapt cycle, and become refinements captured as new work for future iterations. The whole point of many agile practices is to avoid over-constraining the solution space and encourage emergent design, which is why you should not spec out implementation details until the last responsible moment.

                  – Todd A. Jacobs
                  Apr 11 at 10:34











                  3














                  I think part of the problem is that this:




                  login with my username and password




                  is not a requirement. It's a design choice masquerading as a requirement. The real requirement is something like: "As a user I need to (securely and uniquely) authenticate with the system so that I can ..." Choosing username and password immediately rules out other, lower friction, means of authentication. Already logged in to Active Directory/G Suite/Office 365/another Oauth provider? Can we use that? What about facial recognition and fingerprint? Is that sufficient?



                  Keep this in mind as you go through your user stories. Are they telling you how something should be done instead of what needs to be done? Quite often this is OK; they're expanding on/clarifying earlier design choices. But sometimes it's worth taking a step back, asking yourself what problem are they really solving, and is there a better way?






                  share|improve this answer








                  New contributor




                  pgs is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                  Check out our Code of Conduct.
























                    3














                    I think part of the problem is that this:




                    login with my username and password




                    is not a requirement. It's a design choice masquerading as a requirement. The real requirement is something like: "As a user I need to (securely and uniquely) authenticate with the system so that I can ..." Choosing username and password immediately rules out other, lower friction, means of authentication. Already logged in to Active Directory/G Suite/Office 365/another Oauth provider? Can we use that? What about facial recognition and fingerprint? Is that sufficient?



                    Keep this in mind as you go through your user stories. Are they telling you how something should be done instead of what needs to be done? Quite often this is OK; they're expanding on/clarifying earlier design choices. But sometimes it's worth taking a step back, asking yourself what problem are they really solving, and is there a better way?






                    share|improve this answer








                    New contributor




                    pgs is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                    Check out our Code of Conduct.






















                      3












                      3








                      3







                      I think part of the problem is that this:




                      login with my username and password




                      is not a requirement. It's a design choice masquerading as a requirement. The real requirement is something like: "As a user I need to (securely and uniquely) authenticate with the system so that I can ..." Choosing username and password immediately rules out other, lower friction, means of authentication. Already logged in to Active Directory/G Suite/Office 365/another Oauth provider? Can we use that? What about facial recognition and fingerprint? Is that sufficient?



                      Keep this in mind as you go through your user stories. Are they telling you how something should be done instead of what needs to be done? Quite often this is OK; they're expanding on/clarifying earlier design choices. But sometimes it's worth taking a step back, asking yourself what problem are they really solving, and is there a better way?






                      share|improve this answer








                      New contributor




                      pgs is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                      Check out our Code of Conduct.










                      I think part of the problem is that this:




                      login with my username and password




                      is not a requirement. It's a design choice masquerading as a requirement. The real requirement is something like: "As a user I need to (securely and uniquely) authenticate with the system so that I can ..." Choosing username and password immediately rules out other, lower friction, means of authentication. Already logged in to Active Directory/G Suite/Office 365/another Oauth provider? Can we use that? What about facial recognition and fingerprint? Is that sufficient?



                      Keep this in mind as you go through your user stories. Are they telling you how something should be done instead of what needs to be done? Quite often this is OK; they're expanding on/clarifying earlier design choices. But sometimes it's worth taking a step back, asking yourself what problem are they really solving, and is there a better way?







                      share|improve this answer








                      New contributor




                      pgs is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                      Check out our Code of Conduct.









                      share|improve this answer



                      share|improve this answer






                      New contributor




                      pgs is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                      Check out our Code of Conduct.









                      answered Apr 12 at 22:47









                      pgspgs

                      1313




                      1313




                      New contributor




                      pgs is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                      Check out our Code of Conduct.





                      New contributor





                      pgs is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                      Check out our Code of Conduct.






                      pgs is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                      Check out our Code of Conduct.





















                          2














                          As said by others, details should be clarified at the last responsible moment, sometimes at the moment of implementation in close collaboration between developers and e.g. business people or UX experts. However, specific information could be noted as acceptance criteria. More general and repeating criteria may be better placed within the team's (or organizations) Definition of 'Done'.



                          For acceptance criteria you may also want to take a look at a syntax like Gherkin
                          -- and you may want to automate testing with things like Cucumber as a living, more value-adding documentation and base for regression testing.






                          share|improve this answer








                          New contributor




                          Thorben Egberts is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                          Check out our Code of Conduct.
























                            2














                            As said by others, details should be clarified at the last responsible moment, sometimes at the moment of implementation in close collaboration between developers and e.g. business people or UX experts. However, specific information could be noted as acceptance criteria. More general and repeating criteria may be better placed within the team's (or organizations) Definition of 'Done'.



                            For acceptance criteria you may also want to take a look at a syntax like Gherkin
                            -- and you may want to automate testing with things like Cucumber as a living, more value-adding documentation and base for regression testing.






                            share|improve this answer








                            New contributor




                            Thorben Egberts is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                            Check out our Code of Conduct.






















                              2












                              2








                              2







                              As said by others, details should be clarified at the last responsible moment, sometimes at the moment of implementation in close collaboration between developers and e.g. business people or UX experts. However, specific information could be noted as acceptance criteria. More general and repeating criteria may be better placed within the team's (or organizations) Definition of 'Done'.



                              For acceptance criteria you may also want to take a look at a syntax like Gherkin
                              -- and you may want to automate testing with things like Cucumber as a living, more value-adding documentation and base for regression testing.






                              share|improve this answer








                              New contributor




                              Thorben Egberts is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                              Check out our Code of Conduct.










                              As said by others, details should be clarified at the last responsible moment, sometimes at the moment of implementation in close collaboration between developers and e.g. business people or UX experts. However, specific information could be noted as acceptance criteria. More general and repeating criteria may be better placed within the team's (or organizations) Definition of 'Done'.



                              For acceptance criteria you may also want to take a look at a syntax like Gherkin
                              -- and you may want to automate testing with things like Cucumber as a living, more value-adding documentation and base for regression testing.







                              share|improve this answer








                              New contributor




                              Thorben Egberts is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                              Check out our Code of Conduct.









                              share|improve this answer



                              share|improve this answer






                              New contributor




                              Thorben Egberts is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                              Check out our Code of Conduct.









                              answered Apr 12 at 14:10









                              Thorben EgbertsThorben Egberts

                              213




                              213




                              New contributor




                              Thorben Egberts is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                              Check out our Code of Conduct.





                              New contributor





                              Thorben Egberts is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                              Check out our Code of Conduct.






                              Thorben Egberts is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                              Check out our Code of Conduct.





















                                  1














                                  "how many retries should be allowed, validations, and a bunch of other stuff that should go in with that story are missing. Where should all that information go in an agile Scrum setup?"



                                  That is why you have acceptance criteria.



                                  But it seams to me that you have another problem: who wrote your FRS? Why you did that investment, if you knew it will be agile project? In agile team decides technical details. If you read agile manifesto carefully, you will see that it is developers call for revolution.






                                  share|improve this answer








                                  New contributor




                                  kriscorbus is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                  Check out our Code of Conduct.
























                                    1














                                    "how many retries should be allowed, validations, and a bunch of other stuff that should go in with that story are missing. Where should all that information go in an agile Scrum setup?"



                                    That is why you have acceptance criteria.



                                    But it seams to me that you have another problem: who wrote your FRS? Why you did that investment, if you knew it will be agile project? In agile team decides technical details. If you read agile manifesto carefully, you will see that it is developers call for revolution.






                                    share|improve this answer








                                    New contributor




                                    kriscorbus is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                    Check out our Code of Conduct.






















                                      1












                                      1








                                      1







                                      "how many retries should be allowed, validations, and a bunch of other stuff that should go in with that story are missing. Where should all that information go in an agile Scrum setup?"



                                      That is why you have acceptance criteria.



                                      But it seams to me that you have another problem: who wrote your FRS? Why you did that investment, if you knew it will be agile project? In agile team decides technical details. If you read agile manifesto carefully, you will see that it is developers call for revolution.






                                      share|improve this answer








                                      New contributor




                                      kriscorbus is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                      Check out our Code of Conduct.










                                      "how many retries should be allowed, validations, and a bunch of other stuff that should go in with that story are missing. Where should all that information go in an agile Scrum setup?"



                                      That is why you have acceptance criteria.



                                      But it seams to me that you have another problem: who wrote your FRS? Why you did that investment, if you knew it will be agile project? In agile team decides technical details. If you read agile manifesto carefully, you will see that it is developers call for revolution.







                                      share|improve this answer








                                      New contributor




                                      kriscorbus is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                      Check out our Code of Conduct.









                                      share|improve this answer



                                      share|improve this answer






                                      New contributor




                                      kriscorbus is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                      Check out our Code of Conduct.









                                      answered 2 days ago









                                      kriscorbuskriscorbus

                                      416




                                      416




                                      New contributor




                                      kriscorbus is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                      Check out our Code of Conduct.





                                      New contributor





                                      kriscorbus is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                      Check out our Code of Conduct.






                                      kriscorbus is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                                      Check out our Code of Conduct.




















                                          Achilles is a new contributor. Be nice, and check out our Code of Conduct.









                                          draft saved

                                          draft discarded


















                                          Achilles is a new contributor. Be nice, and check out our Code of Conduct.












                                          Achilles is a new contributor. Be nice, and check out our Code of Conduct.











                                          Achilles is a new contributor. Be nice, and check out our Code of Conduct.














                                          Thanks for contributing an answer to Project Management Stack Exchange!


                                          • Please be sure to answer the question. Provide details and share your research!

                                          But avoid


                                          • Asking for help, clarification, or responding to other answers.

                                          • Making statements based on opinion; back them up with references or personal experience.

                                          To learn more, see our tips on writing great answers.




                                          draft saved


                                          draft discarded














                                          StackExchange.ready(
                                          function ()
                                          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fpm.stackexchange.com%2fquestions%2f26166%2fhow-to-refer-to-functional-requirement-specifications-frs-from-user-stories%23new-answer', 'question_page');

                                          );

                                          Post as a guest















                                          Required, but never shown





















































                                          Required, but never shown














                                          Required, but never shown












                                          Required, but never shown







                                          Required, but never shown

































                                          Required, but never shown














                                          Required, but never shown












                                          Required, but never shown







                                          Required, but never shown







                                          Popular posts from this blog

                                          Club Baloncesto Breogán Índice Historia | Pavillón | Nome | O Breogán na cultura popular | Xogadores | Adestradores | Presidentes | Palmarés | Historial | Líderes | Notas | Véxase tamén | Menú de navegacióncbbreogan.galCadroGuía oficial da ACB 2009-10, páxina 201Guía oficial ACB 1992, páxina 183. Editorial DB.É de 6.500 espectadores sentados axeitándose á última normativa"Estudiantes Junior, entre as mellores canteiras"o orixinalHemeroteca El Mundo Deportivo, 16 setembro de 1970, páxina 12Historia do BreogánAlfredo Pérez, o último canoneiroHistoria C.B. BreogánHemeroteca de El Mundo DeportivoJimmy Wright, norteamericano do Breogán deixará Lugo por ameazas de morteResultados de Breogán en 1986-87Resultados de Breogán en 1990-91Ficha de Velimir Perasović en acb.comResultados de Breogán en 1994-95Breogán arrasa al Barça. "El Mundo Deportivo", 27 de setembro de 1999, páxina 58CB Breogán - FC BarcelonaA FEB invita a participar nunha nova Liga EuropeaCharlie Bell na prensa estatalMáximos anotadores 2005Tempada 2005-06 : Tódolos Xogadores da Xornada""Non quero pensar nunha man negra, mais pregúntome que está a pasar""o orixinalRaúl López, orgulloso dos xogadores, presume da boa saúde económica do BreogánJulio González confirma que cesa como presidente del BreogánHomenaxe a Lisardo GómezA tempada do rexurdimento celesteEntrevista a Lisardo GómezEl COB dinamita el Pazo para forzar el quinto (69-73)Cafés Candelas, patrocinador del CB Breogán"Suso Lázare, novo presidente do Breogán"o orixinalCafés Candelas Breogán firma el mayor triunfo de la historiaEl Breogán realizará 17 homenajes por su cincuenta aniversario"O Breogán honra ao seu fundador e primeiro presidente"o orixinalMiguel Giao recibiu a homenaxe do PazoHomenaxe aos primeiros gladiadores celestesO home que nos amosa como ver o Breo co corazónTita Franco será homenaxeada polos #50anosdeBreoJulio Vila recibirá unha homenaxe in memoriam polos #50anosdeBreo"O Breogán homenaxeará aos seus aboados máis veteráns"Pechada ovación a «Capi» Sanmartín e Ricardo «Corazón de González»Homenaxe por décadas de informaciónPaco García volve ao Pazo con motivo do 50 aniversario"Resultados y clasificaciones""O Cafés Candelas Breogán, campión da Copa Princesa""O Cafés Candelas Breogán, equipo ACB"C.B. Breogán"Proxecto social"o orixinal"Centros asociados"o orixinalFicha en imdb.comMario Camus trata la recuperación del amor en 'La vieja música', su última película"Páxina web oficial""Club Baloncesto Breogán""C. B. Breogán S.A.D."eehttp://www.fegaba.com

                                          Vilaño, A Laracha Índice Patrimonio | Lugares e parroquias | Véxase tamén | Menú de navegación43°14′52″N 8°36′03″O / 43.24775, -8.60070

                                          Cegueira Índice Epidemioloxía | Deficiencia visual | Tipos de cegueira | Principais causas de cegueira | Tratamento | Técnicas de adaptación e axudas | Vida dos cegos | Primeiros auxilios | Crenzas respecto das persoas cegas | Crenzas das persoas cegas | O neno deficiente visual | Aspectos psicolóxicos da cegueira | Notas | Véxase tamén | Menú de navegación54.054.154.436928256blindnessDicionario da Real Academia GalegaPortal das Palabras"International Standards: Visual Standards — Aspects and Ranges of Vision Loss with Emphasis on Population Surveys.""Visual impairment and blindness""Presentan un plan para previr a cegueira"o orixinalACCDV Associació Catalana de Cecs i Disminuïts Visuals - PMFTrachoma"Effect of gene therapy on visual function in Leber's congenital amaurosis"1844137110.1056/NEJMoa0802268Cans guía - os mellores amigos dos cegosArquivadoEscola de cans guía para cegos en Mortágua, PortugalArquivado"Tecnología para ciegos y deficientes visuales. Recopilación de recursos gratuitos en la Red""Colorino""‘COL.diesis’, escuchar los sonidos del color""COL.diesis: Transforming Colour into Melody and Implementing the Result in a Colour Sensor Device"o orixinal"Sistema de desarrollo de sinestesia color-sonido para invidentes utilizando un protocolo de audio""Enseñanza táctil - geometría y color. Juegos didácticos para niños ciegos y videntes""Sistema Constanz"L'ocupació laboral dels cecs a l'Estat espanyol està pràcticament equiparada a la de les persones amb visió, entrevista amb Pedro ZuritaONCE (Organización Nacional de Cegos de España)Prevención da cegueiraDescrición de deficiencias visuais (Disc@pnet)Braillín, un boneco atractivo para calquera neno, con ou sen discapacidade, que permite familiarizarse co sistema de escritura e lectura brailleAxudas Técnicas36838ID00897494007150-90057129528256DOID:1432HP:0000618D001766C10.597.751.941.162C97109C0155020