Difference between revisions of "User:Shawndouglas/sandbox/sublevel4"

From LIMSWiki
Jump to navigationJump to search
Tag: Reverted
Tag: Reverted
Line 2: Line 2:
When planning a project, it makes perfect sense to initially research and detail the specifics of the project. In the case of software development, this initial planning is vital to ensuring the project is legitimate in the eyes of critical stakeholders. This typically requires a software requirements specification. Merriam-Webster defines a "specification" as "a detailed precise presentation of something or of a plan or proposal for something."<ref name="MWSpec">{{cite web |url=https://www.merriam-webster.com/dictionary/specification  |title=specification |work=Merriam-Webster |publisher=Merriam-Webster, Inc |accessdate=20 September 2019}}</ref> From the perspective of submitting a software requirements specification to stakeholders, this definition makes sense. Without this critical specification step, the software development project is sure to face the second most commonly cited reason for project failure: poor requirements management.<ref name="BiegRequire14">{{cite web |url=https://www.pmi.org/-/media/pmi/documents/public/pdf/learning/thought-leadership/pulse/requirements-management.pdf |format=PDF |title=Introduction |work=Requirements Management: A Core Competency for Project and Program Success |author=Bieg, D.P. |publisher=Project Management Institute |page=3 |date=August 2014 |accessdate=20 September 2019}}</ref>  
When planning a project, it makes perfect sense to initially research and detail the specifics of the project. In the case of software development, this initial planning is vital to ensuring the project is legitimate in the eyes of critical stakeholders. This typically requires a software requirements specification. Merriam-Webster defines a "specification" as "a detailed precise presentation of something or of a plan or proposal for something."<ref name="MWSpec">{{cite web |url=https://www.merriam-webster.com/dictionary/specification  |title=specification |work=Merriam-Webster |publisher=Merriam-Webster, Inc |accessdate=20 September 2019}}</ref> From the perspective of submitting a software requirements specification to stakeholders, this definition makes sense. Without this critical specification step, the software development project is sure to face the second most commonly cited reason for project failure: poor requirements management.<ref name="BiegRequire14">{{cite web |url=https://www.pmi.org/-/media/pmi/documents/public/pdf/learning/thought-leadership/pulse/requirements-management.pdf |format=PDF |title=Introduction |work=Requirements Management: A Core Competency for Project and Program Success |author=Bieg, D.P. |publisher=Project Management Institute |page=3 |date=August 2014 |accessdate=20 September 2019}}</ref>  


In fact, the ISO/IEC/IEEE 29148:2018 standard (a conglomeration of what was formerly IEEE 830 and other standards) is in place to help specify "the required processes implemented in the engineering activities that result in requirements for systems and software products" and provide guidelines for how to apply those requirements.<ref name="ISO29148">{{cite web |url=https://www.iso.org/standard/72089.html |title=ISO/IEC/IEEE 29148:2018 |publisher=International Organization for Standardization |date=November 2018 |accessdate=20 September 2019}}</ref> The standard describes the characteristics that make up quality software requirement development, including aspects such as<ref name="SeibertHowDoYou11">{{cite web |url=https://hubtechinsider.wordpress.com/2011/07/28/how-do-you-write-software-requirements-what-are-software-requirements-what-is-a-software-requirement/ |title=How do you write software requirements? What are software requirements? What is a software requirement? |work=HubTechInsider |author=Seibert, P. |date=28 July 2011 |accessdate=20 September 2019}}</ref>:
How should software developers approach their software requirements specification? The ISO/IEC/IEEE 29148:2018 standard describes the characteristics that make up quality software requirement development, including aspects such as<ref name="SeibertHowDoYou11">{{cite web |url=https://hubtechinsider.wordpress.com/2011/07/28/how-do-you-write-software-requirements-what-are-software-requirements-what-is-a-software-requirement/ |title=How do you write software requirements? What are software requirements? What is a software requirement? |work=HubTechInsider |author=Seibert, P. |date=28 July 2011 |accessdate=10 March 2022}}</ref>:


* correctly describing system behavior;
* correctly describing system behavior;
Line 10: Line 10:
* unequivocally ensuring the requirements are testable, modifiable, and traceable.
* unequivocally ensuring the requirements are testable, modifiable, and traceable.


A requirement typically comes in the form of a statement that begins with "the system/user/vendor shall/should ..." and focuses on a provided service, reaction to input, or expected behavior in a given situation. The statement may be abstract (high-level) or specific and detailed to a precise function. The statement may also be of a functional nature, describing functionality or services in detail, or of a non-functional nature, describing the constraints of a given functionality or service and how it's rendered. An example of a functional software requirement could be "the user shall be able to query either all of the initial set of databases or select a subset from it." This statement describes specific functionality the system should have. On the other hand, a non-functional requirement, for example, may state "the system's query tool shall conform to the ABC 123-2014 standard." The statement describes a constraint placed upon the system's query functionality. Once compiled, a set of requirements can serve not only to strengthen the software requirements specification, but the requirements set can also be used for bidding on a contract or serve as the basis for a specific contract that is being finalized.<ref name="MemonSoftware10">{{cite web |url=https://www.cs.umd.edu/~atif/Teaching/Spring2010/Slides/3.pdf |format=PDF |title=Software Requirements: Descriptions and specifications of a system |author=Memon, A. |publisher=University of Maryland |date=Spring 2010 |accessdate=20 September 2019}}</ref>
In the scope of laboratory information management system (LIMS) development, the developer and distributor (i.e, the vendor) has a head-start on the targeted end user: the vendor has a standard to turn to in its requirements development. The laboratory seeking a LIMS doesn't really have such a standard for developing a set of requirements for their acquisition, and many won't even know they should develop a set of LIMS requirements.


Over the years, a wide variety of companies, consultants, and researchers have compiled public and private software requirements specifications for [[laboratory informatics]] systems. These compiled lists of requirements for how a given laboratory informatics solution should be developed, delivered, and maintained have changed as technology and user demand evolved. Often times, these requirements documents turn into a mix of "wishlist" requirements from potential and active clients, as well as regulation-mandated requirements. The wishlist items aren't necessarily ignored by developers, but they do in fact have to be prioritized as "nice to have" or "essential to system operation," or something in between.<ref name="AasemAnalysis10">{{cite journal |title=Analysis and optimization of software requirements prioritization techniques |author=Aasem, M.; Ramzan, M.; Jaffar, A. |journal=Proceedings from the 2010 International Conference on Information and Emerging Technologies |pages=1–6 |year=2010 |doi=10.1109/ICIET.2010.5625687}}</ref><ref name="Hirsch10Steps13">{{cite web |url=https://www.phase2technology.com/blog/successful-requirements-gathering |title=10 Steps To Successful Requirements Gathering |author=Hirsch, J. |publisher=Phase2 Technology, LLC |date=22 November 2013 |accessdate=20 September 2019}}</ref><ref name="BurrissSoftware07">{{cite web |url=http://sce2.umkc.edu/BIT/burrise/pl/requirements/ |archiveurl=https://web.archive.org/web/20190724173601/http://sce2.umkc.edu/BIT/burrise/pl/requirements/ |title=Requirements Specification |work=CS451R, University of Missouri–Kansas City |author=Burris, E. |publisher=University of Missouri–Kansas City |date=2007 |archivedate=24 July 2019 |accessdate=02 February 2020}}</ref> While this reasonable mix of requirements has served informatics software developers well<ref name="HofmannRequire01">{{cite journal |title=Requirements engineering as a success factor in software projects |author=Hofmann, H.F.; Lehner, F. |journal=IEEE Software |volume=18 |issue=4 |pages=58–66 |year=2001 |doi=10.1109/MS.2001.936219}}</ref>, sometimes a fresh approach is required.


===What requirements are typically associated with a LIMS?===
More broadly, a requirement typically comes in the form of a statement that begins with "the system/user/vendor shall/should ..." and focuses on a provided service, reaction to input, or expected behavior in a given situation. The statement may be abstract (high-level) or specific and detailed to a precise function. The statement may also be of a functional nature, describing functionality or services in detail, or of a non-functional nature, describing the constraints of a given functionality or service and how it's rendered. An example of a functional software requirement could be "the user shall be able to query either all of the initial set of databases or select a subset from it." This statement describes specific functionality the system should have. On the other hand, a non-functional requirement, for example, may state "the system's query tool shall conform to the ABC 123-2014 standard." The statement describes a constraint placed upon the system's query functionality. Once compiled, a set of requirements can serve not only to strengthen the software requirements specification, but the requirements set can also be used for bidding on a contract or serve as the basis for a specific contract that is being finalized.<ref name="MemonSoftware10">{{cite web |url=https://www.cs.umd.edu/~atif/Teaching/Spring2010/Slides/3.pdf |format=PDF |title=Software Requirements: Descriptions and specifications of a system |author=Memon, A. |publisher=University of Maryland |date=Spring 2010 |accessdate=20 September 2019}}</ref>


===What requirements are typically associated with a LIMS?===
Over the years, a wide variety of companies, consultants, and researchers have compiled public and private software requirements specifications for [[laboratory informatics]] systems. These compiled lists of requirements for how a given laboratory informatics solution should be developed, delivered, and maintained have changed as technology and user demand evolved. Often times, these requirements documents turn into a mix of "wishlist" requirements from potential and active clients, as well as regulation-mandated requirements. The wishlist items aren't necessarily ignored by developers, but they do in fact have to be prioritized as "nice to have" or "essential to system operation," or something in between.<ref name="AasemAnalysis10">{{cite journal |title=Analysis and optimization of software requirements prioritization techniques |author=Aasem, M.; Ramzan, M.; Jaffar, A. |journal=Proceedings from the 2010 International Conference on Information and Emerging Technologies |pages=1–6 |year=2010 |doi=10.1109/ICIET.2010.5625687}}</ref><ref name="Hirsch10Steps13">{{cite web |url=https://www.phase2technology.com/blog/successful-requirements-gathering |title=10 Steps To Successful Requirements Gathering |author=Hirsch, J. |publisher=Phase2 Technology, LLC |date=22 November 2013 |accessdate=20 September 2019}}</ref><ref name="BurrissSoftware07">{{cite web |url=http://sce2.umkc.edu/BIT/burrise/pl/requirements/ |archiveurl=https://web.archive.org/web/20190724173601/http://sce2.umkc.edu/BIT/burrise/pl/requirements/ |title=Requirements Specification |work=CS451R, University of Missouri–Kansas City |author=Burris, E. |publisher=University of Missouri–Kansas City |date=2007 |archivedate=24 July 2019 |accessdate=02 February 2020}}</ref> While this reasonable mix of requirements has served informatics software developers well<ref name="HofmannRequire01">{{cite journal |title=Requirements engineering as a success factor in software projects |author=Hofmann, H.F.; Lehner, F. |journal=IEEE Software |volume=18 |issue=4 |pages=58–66 |year=2001 |doi=10.1109/MS.2001.936219}}</ref>, sometimes a fresh approach is required.


===How should labs develop their requirements?===
===How should labs develop their requirements?===

Revision as of 20:24, 10 March 2022

LIMS Requirement Development Is More Than a Laboratory Wish List

When planning a project, it makes perfect sense to initially research and detail the specifics of the project. In the case of software development, this initial planning is vital to ensuring the project is legitimate in the eyes of critical stakeholders. This typically requires a software requirements specification. Merriam-Webster defines a "specification" as "a detailed precise presentation of something or of a plan or proposal for something."[1] From the perspective of submitting a software requirements specification to stakeholders, this definition makes sense. Without this critical specification step, the software development project is sure to face the second most commonly cited reason for project failure: poor requirements management.[2]

How should software developers approach their software requirements specification? The ISO/IEC/IEEE 29148:2018 standard describes the characteristics that make up quality software requirement development, including aspects such as[3]:

  • correctly describing system behavior;
  • effectively removing ambiguity from the language used;
  • completely covering the system behavior and features;
  • accurately prioritizing and ranking the requirements; and
  • unequivocally ensuring the requirements are testable, modifiable, and traceable.

In the scope of laboratory information management system (LIMS) development, the developer and distributor (i.e, the vendor) has a head-start on the targeted end user: the vendor has a standard to turn to in its requirements development. The laboratory seeking a LIMS doesn't really have such a standard for developing a set of requirements for their acquisition, and many won't even know they should develop a set of LIMS requirements.


What requirements are typically associated with a LIMS?

More broadly, a requirement typically comes in the form of a statement that begins with "the system/user/vendor shall/should ..." and focuses on a provided service, reaction to input, or expected behavior in a given situation. The statement may be abstract (high-level) or specific and detailed to a precise function. The statement may also be of a functional nature, describing functionality or services in detail, or of a non-functional nature, describing the constraints of a given functionality or service and how it's rendered. An example of a functional software requirement could be "the user shall be able to query either all of the initial set of databases or select a subset from it." This statement describes specific functionality the system should have. On the other hand, a non-functional requirement, for example, may state "the system's query tool shall conform to the ABC 123-2014 standard." The statement describes a constraint placed upon the system's query functionality. Once compiled, a set of requirements can serve not only to strengthen the software requirements specification, but the requirements set can also be used for bidding on a contract or serve as the basis for a specific contract that is being finalized.[4]

Over the years, a wide variety of companies, consultants, and researchers have compiled public and private software requirements specifications for laboratory informatics systems. These compiled lists of requirements for how a given laboratory informatics solution should be developed, delivered, and maintained have changed as technology and user demand evolved. Often times, these requirements documents turn into a mix of "wishlist" requirements from potential and active clients, as well as regulation-mandated requirements. The wishlist items aren't necessarily ignored by developers, but they do in fact have to be prioritized as "nice to have" or "essential to system operation," or something in between.[5][6][7] While this reasonable mix of requirements has served informatics software developers well[8], sometimes a fresh approach is required.

How should labs develop their requirements?

  1. Detail the existing information management system or processes (even if they are manual).
  2. Define the associated information and data, and classify their criticality.
  3. Identify current and previous information management policy and tools, as well as their effectiveness.
  4. Identify the regulations, standards, and best practices affecting your laboratory and its digital assets.
  5. Identify the laboratory's various practical workflows and detail how information management tools intersect and improve the workflows.
  6. Perform a gap analysis of the current information management system or processes (i.e., define what needs are currently not being met).
  7. Declare and describe objectives based on the outcomes of the above assessments, highlighting how you envision identified gaps should be filled.
  8. Select and refine requirements based on the assessments, objectives, and policies highlighted prior, identifying a handful of the most critical requirements.


What other considerations should a lab make with their LIMS requirements?

While a laboratory can call up LIMS vendors, ask for a demo, and compare notes on the lab's requirements, it may make sense for the lab to issue a formal request for information (RFI) or request for proposal (RFP) and have major vendors approach the lab with how they can meet its needs. The RFI and RFP are traditional means towards soliciting bidding interest in an organization's project, typically containing the organization's specific requirements and vital questions that the bidder should be able to effectively answer. However, even if your organization chooses to do most of the investigative work of researching and approaching LIMS vendors, turning to a key set of questions typically found in an RFI is extremely valuable for "fact finding."

An RFI is an ideal means for learning more about a potential solution and how it can solve your problems, or for when you're not even sure how to solve your problem yet. However, the RFI should not be unduly long and tedious to complete for prospective vendors; it should be concise, direct, and honest. This means not only presenting a clear and humble vision of your own organization and its goals, but also asking just the right amount of questions to allow potential vendors to demonstrate their expertise and provide a clearer picture of who they are. Some take a technical approach to an RFI, using dense language and complicated spreadsheets for fact finding. However, vendors appreciate a slightly more inviting approach, with practical questions or requests that are carefully chosen because they matter to you.[9] Remember, however, that an RFI is not meant to answer all of your questions. The RFI is meant as a means to help narrow down your search to a few quality candidates while learning more about each other.[9] Once the pool of potential MSSPs is narrowed down, more pointed questions can be asked to ensure those providers meet your needs.

Be cognizant, however, that there may be no LIMS vendor that can meet each and every need of your lab. Your lab will have to make important decisions about which requirements are non-negotiable and which are more flexible. The vendors you engage with may be able to provide realistic advice in this regard, based upon your lab's requirements and their past experience with labs in your industry. As such, those vendors with real-world experience developing systems for laboratories in your industry may have a strong leg up on other vendors, as they can make informed comments about your lab’s requirements based on their past experiences.

If you have zero experience developing an RFI, you may want to first seek out various example RFIs on the internet, as well as some basic advice articles on the topic. Some websites may provide templates to examine for further details.

  1. "specification". Merriam-Webster. Merriam-Webster, Inc. https://www.merriam-webster.com/dictionary/specification. Retrieved 20 September 2019. 
  2. Bieg, D.P. (August 2014). "Introduction" (PDF). Requirements Management: A Core Competency for Project and Program Success. Project Management Institute. p. 3. https://www.pmi.org/-/media/pmi/documents/public/pdf/learning/thought-leadership/pulse/requirements-management.pdf. Retrieved 20 September 2019. 
  3. Seibert, P. (28 July 2011). "How do you write software requirements? What are software requirements? What is a software requirement?". HubTechInsider. https://hubtechinsider.wordpress.com/2011/07/28/how-do-you-write-software-requirements-what-are-software-requirements-what-is-a-software-requirement/. Retrieved 10 March 2022. 
  4. Memon, A. (Spring 2010). "Software Requirements: Descriptions and specifications of a system" (PDF). University of Maryland. https://www.cs.umd.edu/~atif/Teaching/Spring2010/Slides/3.pdf. Retrieved 20 September 2019. 
  5. Aasem, M.; Ramzan, M.; Jaffar, A. (2010). "Analysis and optimization of software requirements prioritization techniques". Proceedings from the 2010 International Conference on Information and Emerging Technologies: 1–6. doi:10.1109/ICIET.2010.5625687. 
  6. Hirsch, J. (22 November 2013). "10 Steps To Successful Requirements Gathering". Phase2 Technology, LLC. https://www.phase2technology.com/blog/successful-requirements-gathering. Retrieved 20 September 2019. 
  7. Burris, E. (2007). "Requirements Specification". CS451R, University of Missouri–Kansas City. University of Missouri–Kansas City. Archived from the original on 24 July 2019. https://web.archive.org/web/20190724173601/http://sce2.umkc.edu/BIT/burrise/pl/requirements/. Retrieved 02 February 2020. 
  8. Hofmann, H.F.; Lehner, F. (2001). "Requirements engineering as a success factor in software projects". IEEE Software 18 (4): 58–66. doi:10.1109/MS.2001.936219. 
  9. 9.0 9.1 Holmes, T.. "It's a Match: How to Run a Good RFI, RFP, or RFQ and Find the Right Partner". AllCloud Blog. https://allcloud.io/blog/its-a-match-how-to-run-a-good-rfi-rfp-or-rfq-and-find-the-right-partner/. Retrieved 21 August 2021.