Software Development Model

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.