Project Overview
My project is a staff management and shift scheduling system for YongAn, a long-term care home. The system will connect employee records, certifications, availability, schedules, requests, attendance, notifications, and reports. The main goal is to replace information that is currently separated across spreadsheets, paper records, and phone messages.
The scheduling part has several connected rules. The system must consider whether an employee is active, available, qualified, already assigned to another shift, or on approved leave. It must also check minimum staffing and required certification coverage. Because these rules affect one another, I do not want to build the entire application before testing any part of it.
Selected Model
I selected an iterative and incremental development model with a small number of Agile practices. Incremental development means that I will divide the project into working sections and add useful features in stages. Iterative development means that I can review and improve a feature after its first version has been completed.
This model is appropriate for an individual project. A full Scrum process would add roles and meetings that are not useful for one developer. Instead, I will use a prioritized task list, short iterations, regular feedback, continuous testing, and a review at the end of each increment.
Why I Selected It
Some requirements are easier to confirm after the client sees a working screen. For example, a scheduling warning or approval workflow is easier to discuss in a demonstration than in a written description. The selected model allows me to receive feedback without delaying all implementation until every detail is final.
The model also reduces technical risk. Authentication and employee records can be tested before the scheduling rules depend on them. Direct schedule assignments can be completed before open-shift and swap workflows reuse the same validation logic. Attendance and reports can then build on published assignments.
I considered Waterfall, prototyping, and Spiral development. Waterfall provides clear phases, but it is less flexible when a workflow needs to change after a demonstration. Prototyping is useful for interface ideas, but it does not provide enough structure for database integrity, security, and testing. Spiral development includes detailed risk analysis, but it would add too much process for this project. Iterative and incremental development gives me enough control and flexibility without unnecessary overhead.
Planned Increments
I divided the implementation into five increments:
1. Foundation: project setup, database connection, authentication, roles, employees, and certifications.
2. Scheduling core: shift types, schedule periods, shifts, assignments, and schedule views.
3. Scheduling rules: availability, overlap, rest time, qualification coverage, and minimum staffing checks.
4. Requests: time off, open shifts, shift swaps, and manager approval.
5. Attendance and delivery: clock records, hours, overtime, dashboards, notifications, reports, testing, and deployment material.
Each increment will include planning, implementation, testing, review, and a short record of changes. A feature will not be considered complete only because its page is visible. Its database operation, server validation, permissions, and main error cases must also work.
Testing and Change Control
Testing will take place throughout development. Unit tests will be used for calculation and time rules. API and workflow tests will cover authorization and state changes. Browser checks will confirm that the main tasks are understandable on desktop and smaller screens.
Small corrections and necessary business-rule changes can be added to the current or next increment. Larger additions will be recorded as future work so that the core scheduling system remains achievable within the course timeline.
This development model gives the project a clear order while still allowing feedback and correction. The next stage will define the detailed requirements and acceptance criteria for each major workflow.