When you start up your dental practice management system at the beginning of the day, do you ever wonder how what you see on the screen ended up getting there? In short, what you are viewing is the collaborative effort of multiple team members and departments of your dental software vendor. First there are individuals -
When you start up your dental practice management system at the beginning of the day, do you ever wonder how what you see on the screen ended up getting there? In short, what you are viewing is the collaborative effort of multiple team members and departments of your dental software vendor.
First there are individuals who conduct market needs analysis, gather industry intelligence, and analyze customer needs/feedback. Next, company management prioritizes the identified software requirements that will direct the software development team that produces the finished product for distribution.
This blog concentrates on the software development team and the process they follow to ensure the software they develop meets the needs of dental practices. What you learn will give you useful insight whether you are evaluating new dental software or already have a software solution.
Having a better understanding of the software development process can help you to articulate feature requests, questions and concerns more effectively. You will also gain a better understanding of where your ongoing investment in dental software goes!
The Dental Software Development Process
Have you ever requested a new feature or improvement to an existing feature and wondered why you can’t always get a definitive answer about if and when it can be completed? This is because there are normally a number of changes and new features already planned for the next software update as well as a series of steps that must take place when adding any new feature.
Here are the “best practices” that dental software developers typically follow to ensure delivery of a quality software solution:
1. Requirement gathering and analysis: Dental practice feature requirements are gathered in this phase based on vendor prior experience, market research, competitive analysis and most importantly, customer feedback. The objective of each feature under consideration must be clearly defined as well as the required data inputs and outputs. Assuming a feature request is deemed beneficial to a critical mass of customers, a Requirement Specification document is created which serves as a guideline for the next development phase.
2. System Design: In this phase, the feature’s functional design is prepared from the Requirement Specification document. System Design helps break down the specific requirements and identify how they fit into the overall system architecture. In this phase, the Testers define a test strategy that specifies what to test in the system design and how.
3. Coding: Upon completion of the system design documents, the work is divided into logical modules and actual program coding is started. This may involve more than one Programmer and is typically the longest phase of the software development life cycle.
4. Testing: After the code is developed it is tested against the requirements to make sure that the product is meeting the needs that were defined during the requirements phase.
5. Deployment: Following successful internal testing, an “alpha” version incorporating the new feature/s is deployed to a select group of customers who have agreed, with the understanding that issues may arise, to report their experience. Further changes to the update may be required to address the reported issues. A “controlled release” (beta version) of the update is then provided to a wider customer group. Once the version is deemed stable, it is ready for full customer deployment.
6. Software Maintenance/Updates: The best software is continually evolving and improving – never static. Consequently, software vendors periodically deliver new, improved versions of their software to provide their customers with up-to-date features and integrations. This process is known as “software maintenance” and is offered under different costing models. Software support is often bundled with software maintenance plans to offer a complete service package.
Software Updates, Upgrades & Customization
There is often confusion as to what constitutes a software update, a system upgrade or a customized feature. Service updates are the first form of software updates and consist of “fixes” and/or minor enhancements to existing features as requested by customers or by Software Support team members based on their experience working with customers.
Software Updates
Small improvements and features provided to the current version of the program are referred to as minor updates (for example version 8.4 to version 8.5). When more significant changes and new features are added to the software, it is termed a major update and correspondingly named as a new version (for example version 8.5 to version 9.0).
Software Upgrades
While an update modifies the current software product, an upgrade totally replaces it with a newer and often more superior version. Upgrades are necessary when new functional demands and requirements cannot be met by simple updates and as a result, typically involve migration to a new operating system, database management system or application platform (such as cloud based).
Customized Features
A new feature that is provided to a specific customer (usually for a fee) is known as a customization as it is not part of a general software release. An example may be an integration with a third-party software for the purposes of providing workflow synergies between the two applications. Care must be taken to ensure that any customization continues to function when new versions of the dental software are released.
Conclusion
The challenge for dental practice management software vendors has always been to take a complex product and make is as intuitive and easy to use as possible – without compromising functionality. Similarly, developing new features is not a one-time task but a continuous process software developers must follow.
New dental practice needs and technologies require dental software vendors to be nimble and have proactive systems in place to respond to change and keep their customers satisfied. By having a better understanding of the software development process, dental practices are in a better position to communicate requests to their vendor and ultimately receive the features they need on a regular basis.