A few weeks ago, Carnegie Mellon University released a statement that one of their programs mistakenly sent acceptance letters via email to about 800 applicants. What department would make such an error? None other than the Computer Science Department.
We operate in a world where automation, speed, and ease are characteristics we want to apply to our daily work. But if the proper operating standards are not agreed upon and then also followed, terrible errors can occur – potentially depleting the reputation of your product, brand and organization.
Without knowing the background of the situation, it is difficult to pinpoint the exact cause of these false Carnegie Mellon acceptance letters. However, it is an important lesson learned for any organization deploying a technology solution. So how can an organization avoid these sorts of devastating mistakes?
1. Test, test, and test again.
A core part of any technical program is the need for adequate testing. There are several methodologies used today to assess a system or technical process. Depending on the solution, timeline, and resources available, a certain testing method may be more appropriate than others. However, I have summarized a few of the most common and foundational methods for testing that can be applied to nearly any technology solution.
- Unit testing: This type of testing is usually completed by the developer to verify a specific component or piece of code that they built. The purpose of this type of testing is to ensure the core, foundational functions of a system or process are operating as expected.
- System testing: This type of testing can be completed by developers or business analysts to test end-to-end system processes. The purpose of this type of testing is to confirm that the entire system completes expected functionality based on design requirements.
- “Chaos” testing: This type of testing does not typically involve test scripts, but instead investigates a particular system through random actions. The purpose of this type of testing is to confirm functionality that isn’t written directly into test scripts and can be incredibly illuminating, when it comes to actual functionality.
2. Two words: quality assurance.
Quality assurance (QA) is a way to maintain a level of quality for a product, service, or solution. It aims to address and resolve issues or mistakes before they reach the end-consumer. Similar to testing, there are various ways to tailor a QA program with your specific project or IT team. However, core components such as the ones listed are present in any successful QA program or procedure.
- Regular review: Determine the appropriate cadence for QA review. It may be daily, weekly, monthly or quarterly, depending on the scope and risks associated with your work. Getting into the rhythm of regular review ensures projects do not become severely derailed and require a much more significant course correction down the road.
- Technical and functional assessments: The best QA programs incorporate both technical and functional assessments by respective subject matter experts. An outside perspective that ensures the technical and functional work is not only accurate in and of itself, but also aligned with one another, will ultimately ensure the best solution. For larger scale projects, impacting multiple parts of the business, cross-functional reviews are imperative – not only to develop the solution, but to understand downstream impacts in the future.
- Communications: In order to have the desired level of engagement and understanding, it is important to communicate project updates and information appropriately. As it relates to testing and deployment, it is helpful to tailor materials to the impacted department and teams, as needed.
Fortunately, Carnegie Mellon did a fantastic job of quickly and effectively resolving the issue. However, these errors can be entirely avoided with thorough testing and QA procedures. Consider how you and your team can adapt the different testing and QA processes to your business or project – It will save you time and potentially a dream crushing mistake!