How does a logical contradiction arise unnoticed?

Web development case study

Lack of clear communication and assumptions made can lead to unexpected issues.

In this case study, we will examine a training company that encountered a logical contradiction in their web system as a result of multiple updates aimed at enhancing user experience.

This case study does not allow the identification of the real company. However, the process and all the logical elements described are as close to the real case as possible. The case study is based on a real life situation that has happened.

Project background:

SkillBuildTeamX (not the real name) is a training company. They offer a variety of training courses for professionals to enhance their skills in different areas.

Initially the company asked an independent web developer to build a web system for course registration, scheduling, and tracking participant progress.

Over a period of time, the business owner, Jane (not her real name), made several requests to update the web system. These updates were intended to streamline the business processes and improve user experience.

Chronology of events:

  1. Initially, the web system allowed participants to enrol in any course without any prerequisites.
  2. New feature: Knowledge test
    To ensure that participants possess the required foundational knowledge, Jane requested a new feature: "Test of current knowledge". Participants would now need to complete certain tests before enrolling in more advanced courses. Most courses do not require participants to take the tests, but some of them do. This function can be activated as required for courses where it is necessary due to the complexity of the course.
  3. New service: Live workshops
    Based on user feedback, Jane decided to organise online "preparatory" workshops once a month instead of tests. This was necessary because the tests were making it so difficult to sign up that sales were declining. Despite the decision, the previously developed "knowledge test" features remained in the system but were not used anymore.
  4. New course
    About ten months after Jane stopped the knowledge tests and introduced free monthly workshops to make it easier to start a course, she decided to launch a new training course.
  5. New feature: Limited access for free
    In response to new customer feedback, Jane decided to implement a "course preview" feature. Prospective participants could access a limited portion of a course's content to get a sense of its value before committing to enrollment.
    With UX in mind, Jane asked her web developer to implement this feature so that users could actually register for the course they had chosen.
    Given that "knowledge tests" were not used anymore, the new function allowed users to access the limited version of the selected course easily.

    As time went on, Jane was pleased to see more and more users registering for the free, limited version of the courses.
  6. New decision: Trying Knowledge test again for a new course
    A few month later, Jane thought she would use the knowledge test functions again because the newest course required a higher level of prior knowledge. Luckily, the feature was still available in the system, she easily created new courses in the system, which required knowledge tests again.

Marketing campaign

Jane realised an issue regarding the "course preview" feature: She struggled to convert these participants into paying customers.
Jane was aware that when people get something for free, they need to be encouraged to make a payment, so she decided to run a marketing campaign for participants who had registered for the limited version of a course.

Jane requested the following from her web developer:

  • Send a promotional newsletter to those clients only who have access to a limited course;
  • Let's offer 10% discount;
  • Put a link in the email, allowing them to click and pay for the course easily;
  • Once customers paid, let's give them full access to the course.

Result of the marketing campaign:

The campaign was successful. More than 30% of participants who registered for the limited versions paid, and got access to the full course.

However, Jane realised that participants in the new course requiring a knowledge test got access to the course without a test. She thought there was an error in the system.


This was the point when we met Jane.
After analysing the situation, we explained to her that, although all her decisions were sensible and good business decisions at the time, a minor communication failure had led to a logical inconsistency within the system.


Analysis

Issue with the new function:

The issue with the new function is that it does not account for the "knowledge tests" required for some advanced courses. The promotional newsletter and the easy payment link were designed to encourage users to pay for and access the full version of the courses, but they bypass the knowledge test requirements in the process.

Cause of the Issue:

The cause of the issue is the lack of communication and assumptions made by Jane. She assumed that the web developer was aware of the knowledge test requirement for the latest course. However, her web developer wasn't aware of the use of the test function because it was solely Jane's decision to give it another go.

Nature of the Issue:

The nature of the issue is a logical contradiction within the web system. On one hand, the system is designed to require knowledge tests for some advanced courses to ensure that participants possess the required foundational knowledge. On the other hand, previously developed "limited access courses" combined with the promotional newsletter and easy payment link features enable users to bypass the knowledge test requirement and directly access the full version of the course.

Reason of the issue:

Jane assumed but did not explicitly communicate the requirement for a “knowledge test”. Consequently, the new web developer may not have been aware of the knowledge test requirement when implementing the promotional newsletter and easy payment link features.


Solution:

To resolve the issue, Jane should take the following steps:

  • Communication:
    Jane needs to have a thorough discussion with the web developer about the current system, its features, and the requirements of the new course. She should explicitly mention the knowledge test requirement and explain its importance for certain advanced courses.
  • Review existing features:
    Together with the web developer, Jane should review the existing features in the system, identify any redundancies, and make decisions on whether to keep or remove them. This will help ensure that the system is streamlined and efficient.
  • Update the promotional newsletter, and easy payment link features:
    The web developer should update these features to take into account the knowledge test requirements for advanced courses. For instance, the promotional newsletter could mention that a knowledge test is required for specific courses, and the easy payment link could be programmed to redirect users to the knowledge test page before allowing them to proceed with the payment.
  • Implement a conditional access system:
    The web developer should create a conditional access system that checks if a user has completed the required knowledge test before granting access to the full version of an advanced course. This would ensure that users are not able to bypass the test requirement.
  • Testing:
    Before launching the updated system, Jane and the web developer should thoroughly test the new features to ensure that they work as intended and do not create any new issues.
  • Monitor and gather feedback:
    After implementing the solution, Jane should continuously monitor the system and gather feedback from users to identify any potential issues or areas for improvement.

By following these steps, Jane can ensure that the web system functions properly and effectively enforces the knowledge test requirements for advanced courses while still providing a seamless user experience for all participants.

Perfect Web Solutions use cookies and other similar technologies on this website to improve your browsing experience and functionality of our site. By clicking "I accept cookies", you consent to the storing on your device of all the technologies described in our Cookie Policy.