Getting Back to the Basics of Developing Health IT Solutions

The Importance of Functional Requirements

Functional requirements are specific features that are specified by software developers so the users can complete the established objectives of the system [1]. Currently, software developers are failing to set functional requirements, which can lead to the software project failing. Consequently, software projects have a failure rate from 50% to 80% [2]. This can be time-consuming and costly for businesses and developers. 

Common Reasons for Software Projects Failing

Lack of Communication

The first common reason for projects failing is the lack of communication with the business over the specific requirements, functions, and features they need [3]. Establishing a strong line of communication between all parties helps to create an accurate timeline with specific priorities. It is important that the stakeholders unanimously set priorities that align with their business objectives so that developers can make an effective execution plan [3]. This can help improve clarity and the execution of the project. Even with increased communication, there may be difficulty between the sponsors and the developers in determining priorities within the project [3]. Clients often set undefined requirements since they are unsure of the specific results and functions they want. Oftentimes, the developers will have to assist sponsors in understanding the goals and objectives they want for the end product. 

Lack of Proper Planning & Structure

Oftentimes, projects fail due to the lack of detailed planning & structure. Developers need to understand what stakeholders are expecting so they know what deliverables to provide [3]. Afterward, developers need to avoid setting goals outside of the established requirements. Furthermore, although projects require bottom-up planning, they need to be adaptable to any changes made by the business [3]. Partners need to hold numerous collaborative meetings that address potential changes.

Moreover, developers need to avoid over-customizing the software and creating unrealistic goals outside of the set requirements [3]. Projects often fail because they lack a shared vision and concrete execution plan [3]. Creating a detailed project outline with established budgets and timelines is crucial. Lastly, projects can fail due to the lack of providing training for the end-user [3]. Developers need to step outside of the technical world and improve their soft skills when providing training to businesses. 

Requirements Traceability Matrix (RTM)

The RTM assists in documenting the fulfillment of requirements, as well as the testing and deviations [4]. It is an effective tool for managing goals, ensuring that the correct tests are running, and helping to map out the effects of potential changes during development [4].

Oftentimes the RTM requires continuous maintenance and updates in order to ensure accurate traceability [5]. When the project grows in complexity, tracking all of the requirements can be expensive and time-consuming. This can lead to inaccurate traceability data and can defeat the purpose of implementing the RTM [5]. However, the RTM is worth the additional maintenance and cost needed to maintain it. It assists in tracking requirement changes as well as keeping the scope of the project on track and traceable. It is essential for developers to implement it in order to prevent projects from failing or working on misaligned goals. 

Software Development Life Cycle (SDLC)

The SDLC increases the efficiency of the project’s development by outlining the different tasks needed for creating a software application [6]. The first phase is the planning phase, where the scope of the project is defined [6]. Next, is the defining structure phase which establishes what the project needs and is supposed to accomplish [6]. Afterward is the design and prototyping phase, which is an early version of what the software is supposed to be [6]. Next, is the software development phase, which is when the program gets written and documented by developers [6]. Subsequently is the testing phase, where the program is tested in different environments to prevent potential glitches [6]. Afterward is the deployment phase where the users are able to access the program [6]. Finally, the last phase is the operations and maintenance phase, where developers fix potential bugs and update the application as needed [6].

SDLC Models

Waterfall

The waterfall method is a straightforward and linear method. This model is useful for smaller projects with clearly outlined goals and requirements [7]. However, this model is not useful for long-term projects due to its time-consuming process and lack of adaptability to changes [7]. 

Agile

The agile model focuses heavily on the consumer and their input [6]. This requires constant communication with users in order to address changes in requirements. However, it can negatively impact the project when developers start focusing too much on customer feedback [6]. Therefore, developers need to balance putting the customers’ needs first while staying on track with the project’s objectives.

Iterative

The iterative model starts off with a basic model of the software so that developers can work on improving it in small iterations [6]. This helps break down larger projects into smaller and simpler steps. This model is also useful for dealing with any potential issues that come up to reduce risks. However, the cons of this model are that resources may run out early and the project may run past its deadline [6]. 

DevOps

The DevOps model is similar to the agile model since they both work to incorporate usability into the development process [6]. However, DevOps also incorporates operations and feedback from users into the development process [6]. This requires constant communication between the development and operations teams which can be difficult to manage for some companies. However, the DevOps model leads to more innovative solutions and high-quality products thanks to the collaboration between the developers and users [8]. Developers can effectively implement changes according to the user’s feedback. This allows for improved project planning, execution, and management.

HITS

HITS focuses on transforming health information technology via collaboration in the development of healthcare informatics tools. It accomplishes this by implementing both the agile and the DevOps models. This allows HITS to form strategic partnerships that incorporate user feedback to promote safe, efficient, effective, timely, patient-centered, and equitable patient care. Having the right team take care of the software development process so that functional requirements are met helps to avoid costly and timely software project failures. If you’re looking for the right team, HITS is it! You can reach out to us directly at info@healthitsol.com. Check out this link if you’re interested in having a 15 minute consultation with us: https://bit.ly/3RLsRXR.

References

  1. https://www.nuclino.com/articles/functional-requirements 
  2. https://acqnotes.com/acqnote/careerfields/common-software-failure-causes#:~:text=Most%20software%20projects%20fail%20completely,between%2050%25%20%E2%80%93%2080%25
  3. https://www.forbes.com/sites/forbestechcouncil/2020/03/31/14-common-reasons-software-projects-fail-and-how-to-avoid-them/?sh=66f01c01798c 
  4. https://www.perforce.com/resources/alm/requirements-traceability-matrix#:~:text=What%20is%20a%20Requirements%20Traceability%20Matrix%20(RTM)%3F,%2C%20test%20results%2C%20and%20issues
  5. https://www.projectmanagement.com/blog/blogPostingView.cfm?blogPostingID=19739&thisPageURL=/blog-post/19739/Why-implement-a-requirements-traceability-matrix-#_=_ 
  6. https://phoenixnap.com/blog/software-development-life-cycle#:~:text=SDLC%2C%20or%20Software%20Development%20Life,assigned%2C%20completed%2C%20and%20measured.
  7. https://www.techuz.com/blog/top-12-sdlc-methodologies-with-pros-and-cons/
  8. https://www.roberthalf.com/blog/salaries-and-skills/6-basic-sdlc-methodologies-which-one-is-best#:~:text=The%20DevOps%20methodology%20is%20a,stages%20of%20the%20SDLC%20process