Software Development Model
Introduction
This project aims to develop an inclusive, user-friendly computer-based examination system using Node.js, GraphQL, and the MERN stack. It is designed to augment digital education access, particularly in resource-constrained settings, with a primary focus on developing countries like Nigeria. This initiative is paramount in shaping the future of education by incorporating technology, thereby amplifying learning opportunities and reaching larger student demographics.
Project Description
Primary Project Deliverable
The fundamental project goal is to architect an extensive examination system capable of administering various forms of assessments, including multiple-choice questions, short answer-type tests, spelling tests, and incorporating rich media such as audio and video. Additionally, this robust system will generate and store student scripts for later assessment by administrators. It must have an intuitive user interface, facilitating ease of use for educators and learners alike.
Stretch Deliverable
A stretch goal could involve creating a sophisticated, real-time feedback system that interprets students’ performances to generate recommendations for future learning pathways, thus encouraging a more personalized learning experience.
Development Model
The project will employ an Agile-Scrum development model, blended with a tracer code approach. The Agile-Scrum methodology aligns with the project’s nature as it promotes adaptability, collaboration, and early value delivery through incremental development cycles, known as Sprints.
Simultaneously, the tracer code strategy ensures rapid creation of a Minimum Viable Product (MVP). This MVP, although equipped with the core functionalities, acts as a placeholder for future enhancements based on user feedback and system evaluations.
Phase-wise Development Process
Phase I: Requirement Elicitation & Prioritization
In this phase, we’ll conduct comprehensive requirement gathering activities to pinpoint the project’s essential features and specifications. The acquired requirements will guide the project’s technical roadmap, API exploration, and formulation of the MVP. We’ll create a prioritized product backlog, assigning rough effort estimates to each feature or ‘Epic’ in Agile terms.
Phase II: Iterative Development (Sprints)
The project’s actual development takes place in a series of two-week Sprints. At the commencement of each Sprint, the Scrum Team identifies high-priority backlog items, breaks them down into manageable tasks or ‘User Stories’, and commits to their completion within the Sprint duration.
Phase III: User Acceptance Testing & Feedback Collection
After each Sprint, a functional increment of the product will be demonstrated to the stakeholders. User Acceptance Testing (UAT) is conducted, and valuable feedback is collected to refine the system further in subsequent Sprints.
Phase IV: System Hardening
We’ll incorporate ‘Hardening Sprints’ into our project timeline, primarily used for bug-fixing, performance tuning, and handling technical debt. These Sprints will enhance the system’s stability and resilience before a public release.
Reason for choosing this Model
The Agile-Scrum model combined with tracer code methodology effectively addresses the project’s nature. It offers a flexible development process with early and continuous stakeholder engagement, promoting alignment with user needs and expectations. The tracer code strategy ensures that an MVP is ready early for testing and feedback, supporting the iterative development process.
Weaknesses
The Agile-Scrum model may sometimes make progress tracking a bit complex due to its relative estimation techniques and fluid plan adjustments. However, this will be mitigated by performing a velocity analysis at each Sprint’s end, offering an insight into the team’s pace and productivity.
Also, as the team might be venturing into unfamiliar technology stacks, this might pose a learning curve. This challenge will be countered by arranging for regular training sessions and encouraging knowledge sharing among the team.
Planned Project Timeline
The project aims to be completed in a twelve-week timeframe.
* **Milestone 1** (Weeks 1-4): Comprises project planning, requirements gathering, and creating the tracer prototype. Divided into two sprints.
* **Milestone 2** (Weeks 5-12): Involves development from the tracer prototype into the final system, refining the system based on feedback, and bug fixing. This period will be divided into four sprints and two hardening weeks.
The stretch goal of the intelligent feedback system will be pursued if the main project goals are achieved ahead of schedule. This model thus combines the rigor and structure needed for a large-scale project while leaving room for creative solutions and adjustments as the project evolves.