Evaluation Criteria

Category Criterion The question to be asked
Effectiveness Accessibility Can the system be used by people with impaired abilities?
Effectiveness Visual appeal Does the site look visually appealing?
Efficiency Time to implement How long did it take to implement the solution?
Effectiveness Ease of use How easy is it to navigate the interface?
Efficiency Timeliness (assumed render speed e.g. how much extra content is there to load) How fast does the system operate?
Effectiveness Clearness of communication of message Is the content easy to comprehend?
Efficiency Development cost How much did it cost to build the solution?
Effectiveness Requirements satisfaction Has the solution implemented all of the functional and non-functional requirements?
Efficiency Running cost How much does it cost to keep the service running?
Efficiency Work required to keep the service running How much work and how often is maintenance is required to keep the service running?

Evaluation Strategies

Timeframe Description Efficiency & Effectiveness Measures Assessed
6-10 months Use bills from server and database hosts to calculate the total monetary cost of hosting the service after it has been implemented for some time Running cost
6-10 months Log hours spent performing maintenance and updating the product Work required to keep the service running
1 week Obtain an accessibility rating using Chrome’s developer tools and perform an accessibility audit to determine effectiveness Accessibility
1 day Use the Lighthouse report feature in Chrome’s developer tools to generate a rating of the site’s performance and accessibility Accessibility, Timeliness (assumed render speed e.g. how much extra content is there to load)
1-2 weeks Perform surveys of users to determine general perception of the site’s appearance, ease of use, clearness and satisfaction of requirements Requirements satisfaction, visual appeal, ease of use, clearness of communication of message
1 day Use GitHub commit history to determine the total amount of time spent building the project Time to implement
1 day If any proprietary software has been used to deliver the solution, calculate total cost from the billing history Development cost

Evaluation of Development Model & Problem Solving Methodology

The agile development model and its associated problem solving methodology has proven a highly effective strategy for continuous development largely due to the flexibility it provides. Without the limitation of a sequential feature implementation process, it was possible to alter previously completed systems to better integrate with another task being worked on. Ultimately, this also increased the rate of development because there was no need to “over-engineer” a feature due to the limitations of previously-written code that it depended on. I built Openbook by tasking myself to incrementally build “features” in no specific order. This flexibility has proven to be helpful in time management because I was able to choose between working on less complicated, smaller features and tedious, bigger features depending on the time I had available. Generally, I have found that the ability to prioritise tasks is incredibly helpful for a project of this scale.

A big motivation behind choosing the agile development model was the anticipated complexity of the project. I feel as though the project was even more complicated than I anticipated, particularly given it comprises two key systems. It is hard to imagine that the waterfall model or the spiral model would have allowed me to effectively manage the complexity of this project, justifying my choice of agile development. My project consists of two separate systems. One of those systems is reliant on the other to operate. Due to this limitation, it was necessary to complete a basic implementation of the textbook engine system before commencing development on the majority of core features on the site. Therefore, at a high level, the project was not entirely an iterative agile development flow, however, to build each system, the agile development model was applied.

Particularly given that there was a timeframe to deliver the solution, agile development has resulted in a much higher speed of delivering the solution than what would have been achieved with an alternative development model such as the waterfall or spiral model. The agile development model places a greater emphasis on the speed of implementing functionality, even if it is not built to the highest standard initially, because the model’s methodology believes in continuous evaluation and improvement. This has also meant that much of my time was able to be dedicated to refining and improving the solution instead of spending the full timeframe building a bigger, but less functional solution.

The development cycle used when building the solution cannot be strictly labeled ‘lean’ or ‘scrum’, but a general problem solving methodology remained consistent:

  1. Complete a basic implementation of the feature
  2. Test how the feature integrates with other parts of the software
  3. Evaluate and make changes to either the feature or another part of the software to improve the integration

This process is repeated for multiple iterations for each feature, and a new cycle is started whenever a problem is identified. This problem solving methodology is essentially a by-product of using the agile development model and worked exceptionally well during the development of this project. Other development models do not provide the same kind of iterative approach to problem-solving that agile does.

In summary, the development model and problem solving methodology selected for this project have been implemented to the development process very successfully. Hence, it can be concluded that these were justified choices that benefited the project with regards to both its efficiency and effectiveness.

As for the completeness of the solution itself, the vast majority of the software requirements have been met. Due to time constraints and feature priority, it was not possible to fully implement the “classes” functionality described in the functional requirements, however, some systems have been built to support the future implementation of this requirement. The development cost has been kept to zero, as all software depended upon by the solution is free and open-source. Using a Chrome lighthouse report to audit the performance and accessibility of the site, it has been concluded that the site is highly performant with a score of 93 out 100 featuring fast load speeds and responses. The site does not fulfil all suggestions set out in the Web Content Accessibility Guidelines, however it scores between 63 to 70 out of 100 with core navigation features being deemed accessible. Based on feedback provided during usability testing, users generally consider the solution interface easy to use, intuitive, visually appealing and comprehendible.