Assignment
Assignment
3. Customer Satisfaction: Agile provides early and continuous delivery of software, which
ensures that valuable software is delivered faster and with higher quality, increasing customer
satisfaction. For SkillSpark, this means the ability to quickly see improvements and have a
functional system early in the process.
- Daily Stand-ups: These meetings will help keep the team aligned and quickly address any
issues or blockers that junior developers are facing.
- Sprint Reviews: These are held at the end of each sprint to assess the development progress
and to plan next steps, ensuring that the development aligns with SkillSpark’s needs.
- Retrospectives: After each sprint, retrospectives can be used to reflect on the sprint that
was, discussing what went well, what could be improved, and what will be committed to in
the next sprint.
Assignment of Roles
Given the team structure outlined in the case study, the following role assignments are
suggested:
- Product Owner: The Managing Director or the Head of Training could serve as the
Product Owner. This role would be responsible for maximizing the value of the product
resulting from the work of the development team and managing the product backlog.
- Scrum Master: The part-time development manager could take on the role of Scrum
Master, facilitating Scrum events as needed and helping the team understand Scrum theory,
practices, rules, and values.
- Development Team: Comprising Billy, Eleanor, and Gethin, this team would be
responsible for delivering potentially shippable product increments at the end of each sprint.
Each developer can focus on different modules of the project based on their strengths—Billy
could focus on security aspects, Eleanor on database management and back-end, and Gethin
on front-end and user interfaces.
Conclusion
The Agile methodology, with its flexibility and emphasis on continuous improvement and
stakeholder involvement, is well-suited to SkillSpark's current needs and its vision for
growth. This approach will allow SkillSpark to begin benefiting from the new system as soon
as possible, with improvements and additional functionality added over time in alignment
with business needs.
Project Timeline
Project Start: Initiation of the project where all stakeholders agree on objectives and
deliverables.
Elicit Requirements: Gathering and analysing requirements from various
stakeholders to finalise the product backlog.
End of Sprint 1 to 3: Each sprint will focus on developing a set of features defined at
the beginning of the sprint, with sprint views and retrospectives at the end.
User Feedback: After deploying the MVP, initial feedback will be gathered from
end-users to prioritise subsequent feature development and improvements.
Final Testing and Bug Fixing: Focus on refining the product and ensuring all
functionalities work appropriately.
Project Handover and Training: Transitioning the system to SkillSpark’s
operational team with appropriate training sessions to ensure a smooth transfer.
Project Review and Closure: Final assessment of the project against initial goals,
documenting learnings and formal closure.
This plan, while initial and subject to refinement through the Agile Methodology process,
provides a clear roadmap and expectations for the SkillSpark management system
development project. Changes to the plan, when necessary, will be managed through Agile
practises, ensuring continuous alignment with business goals and stakeholder needs.
Stakeholders:
1. Managing Director (MD): As the top executive, the MD is interested in the overall
success of the project, focusing on improving operational efficiency and reducing
errors like scheduling conflicts or booking issues.
2. Head of Training: This stakeholder is concerned with the ease of scheduling trainers
and rooms and ensuring compliance with accreditation requirements.
3. Finance Director: Interested in how the system can track payments and manage
billing information.
4. Client Relations Manager: Looks for ease in managing client relationships,
including tracking interactions and understanding client needs.
5. Trainers: Requires a system that makes their schedules accessible and manageable,
with clear communication of session times, locations and materials needed.
6. Clients: Need a reliable and easy way to book courses, view available offerings, and
access certifications.
Eliciting Requirements:
The User Interface will provide an intuitive and user-friendly interface for all stakeholders,
including trainers, admin staff and clients. It will interface with all other components to fetch
and display data as required.
The Course Management System will manage all course-related data, including scheduling,
trainer assignments and course materials. It will communicate with the database to retrieve
and update course information and interfaces with the booking system for scheduling.
The Booking System will allow clients and staff to book courses, manage registrations and
handle cancellations. It will integrate closely with the Course Management System for real-
time availability and schedules and will update the Client Relationship Management system
with client activity.
The Client Relationship Management System will manage all client data, including contact
information, booking history and feedback. It will receive data from the Booking System to
update client records and will interface with the Reporting System for analytics.
The Reporting System will generate reports for management, providing insights into business
performance, course popularity, client feedback etc. It will gather data from the CRM, CMS
and Booking System to compile comprehensive reports.
The Database will serve as the central repository for all data within the system, including user
credentials, course details, booking information and client data. It will interact with all
components to store and provide data as needed.
Data Synchronisation (Real-time) – will be critical, especially between the CMS, Booking
System and Database, to ensure that course schedules are up-to-date and double bookings are
prevented.
Security Measures – will be implemented to protect data integrity and confidentiality across
the system.
1. Sprint Planning: Begin each sprint with a planning meeting where tasks are
prioritised and assigned based on the product backlog. This ensures that the most
critical features are developed first.
2. Pair Programming: Given the junior level of the development team, pair
programming would be beneficial, especially between the more experienced
developer, Elanor, and the other team members, Billy and Gethin. This will enhance
code quality and facilitate knowledge sharing.
3. Code Reviews: Regular code reviews should be integrated into the development
process, which can be led by the part-time development manager. This practise will
help in maintaining code quality and also in mentoring the team.
4. Continuous Integration (CI): Implementing CI practises will allow the team to
merge all developer working copies to a shared mainline several times a day, reducing
integration problems and encouraging early discovery of conflicts.
5. Scrum Meetings: Daily stand-up meetings should be conducted to discuss progress,
plan for the day, and address any obstacles that could impede the workflow.
Testing Strategy
Testing is crucial for ensuring the reliability and functionality of the new system. The
following strategies would work efficiently:
1. Unit Testing: Each developer should write unit tests for their code to ensure that
individual parts of the applications are working correctly. This can be integrated with
CI to automatically run tests whenever new code is committed.
2. Integration Testing: After unit testing, integration tests should be performed to
ensure that different parts of the application work together seamlessly. This is crucial
due to the modular nature of the system.
3. System Testing: Once all the components are integrated, system testing should be
conducted to evaluate the system’s compliance with the specified requirements.
4. User Acceptance Testing (UAT): Involve key stakeholders from SkillSpark in the
UAT phase to make sure the system meets their needs and expectations. This step is
critical before the final rollout.
In my opinion, I would suggest using a hybrid approach to ensure that every base is covered
before the final roll-out. The combination I would use is a mix of Unit Testing, Integration
Testing, User Acceptance Testing and Regression Testing. The reason for choosing this
combination is that it’s flexible, comprehensive and there is constant feedback leading to
significant improvement as the project progresses. By employing this hybrid testing
approach, the SkillSpark project can maintain high standards of quality and functionality
while adapting to the evolving needs of the business and its clients. This ensures not only the
delivery of a robust product but also promotes a culture of quality and continuous
improvement within the team.
Rolling out the new management system for SkillSpark involves several key phases to ensure
a smooth transition and adoption by all users. Below is the structure which should be
followed:
1. Deployment Timeline:
The system should begin deployment after the User Acceptance Testing phase is
successfully completed, ensuring that all critical functionalities are met and approved
by all stakeholders.
Communication of the transition to the new system via multiple channels such as
emails, meetings and internal newsletters. This should include information on the
rollout schedule, benefits of the new system and who to contact for support.
Scheduling an official “go-live” date that provides enough time for all users to
prepare for the change is important for transparency.
3. Training Programs:
Conducting training sessions segmented by user roles. For example, separate training
for administrative staff, trainers and management to focus on the functionalities
relevant to each group. Providing documentation such as user manuals, FAQ
documents and quick reference guides to aid the users and stakeholders.
Implementing a training portal where users can access training materials and video
tutorials at their convenience would improve the portability and accessibility of
training programs.
4. Phased Implementation:
Maintenance Needs:
Maintaining the new system is crucial to ensure its efficiency and longevity. Here is how the
maintenance should be approached:
Regular Updates and Patches – Schedule regular updates to the software to add new
features, fix bugs and enhance security. These should be planned during off-peak
hours to minimize disruption.
System Monitoring – Implement monitoring tools to constantly check the system’s
performance and immediately detect and rectify any issues. Monitoring can help
predict potential failures before they occur.
User Feedback – Regularly collect feedback from users to identify areas for
improvement. This feedback can be used to fine-tune the system and enhance user
satisfaction.
Maintenance Schedule – Establish a regular maintenance schedule that includes
checking system logs, updating user access permissions and ensuring data backups are
performed correctly.
Conclusion
In conclusion, the development and deployment of the new management system for
SkillSpark aims to streamline operations, enhance efficiency and improve user satisfaction
across various departments. The recommended Agile methodology will ensure that the
project remains flexible to adjustments and responsive to the needs of the business as they
evolve. This approach will also facilitate ongoing engagement with stakeholders, ensuring
that the system truly aligns with the operational goals and challenges of SkillSpark.
References
Unadkat, J. (2021). Test Driven Development (TDD) : Approach & Benefits. [online]
BrowserStack. Available at: https://www.browserstack.com/guide/what-is-test-
driven-development.