0% found this document useful (0 votes)
23 views

Assignment

Uploaded by

elliotghader444
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views

Assignment

Uploaded by

elliotghader444
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 10

Software Development Processes

1CWK100 Case Study Report


Elliot Ghader (22484660)

Elliot Ghader (22484660) Page 1


Introduction
This report addresses the software development project for SkillSpark Training Services, a
company that provides specialized training across the north of England. Recently, SkillSpark
has faced organizational challenges due to its reliance on outdated methods like spreadsheets,
emails and phone calls. This was highlighted by a significant incident where a lack of proper
booking led to the cancellation of a training session, resulting in embarrassment and a
potential loss of business. The purpose of this report is to propose a development strategy for
a new management system aimed at improving SkillSpark’s operations. This system will help
manage course scheduling, bookings, and record-keeping more efficiently. The development
will be undertaken by a team of junior developers under the guidance of a part-time
development manager, with a goal to deliver a Minimum Viable Product (MVP) within six
months. The report will outline the software development methodology, project planning, and
system requirements, aiming to streamline operations and support future growth.

Software Development Methodology


Methodology Choice: Agile Development Approach

For SkillSpark's software development project, an Agile development methodology is


recommended. Agile is particularly suited to projects like this one, where the system
requirements are likely to evolve as the development progresses. This methodology supports
iterative development, where requirements and solutions evolve through collaboration
between self-organizing cross-functional teams. It is ideal for projects where flexibility and
iterative feedback are required.

Justification for Agile Methodology

1. Flexibility and Adaptability: Given that SkillSpark is transitioning from a disorganized


system primarily based on ad-hoc tools like spreadsheets, phone calls and emails, the
flexibility offered by Agile will allow the development team to adjust features and priorities
as new system needs and challenges emerge.

2. Continuous Feedback and Improvement: Agile promotes frequent reflection on how to


become more effective, which is crucial for a small, potentially inexperienced team as
described in the case study. Continuous feedback from the SkillSpark management during the
sprint reviews will help in quickly identifying and addressing any misalignments or issues.

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.

Techniques from Agile Methodology

Elliot Ghader (22484660) Page 2


- Scrum Framework: Utilizing Scrum, an Agile framework, the team can manage the
project by dividing it into several phases or sprints. Each sprint would result in a potentially
shippable product increment, aligning with the goal to have an MVP within six months.

- 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

Elliot Ghader (22484660) Page 3


For SkillSpark's management system development, creating a structured and clear project
timeline is crucial. Given the dynamic nature of Agile methodology, the plan will
accommodate changes as needed, while still maintaining a clear view of the project's
progress. Below, the project is broken down into phases with estimated completion dates,
presented in a table format.
[Table 1] Table of Milestones & Deadlines

Milestone Completion Date

Project Start Week 1

Elicit Requirements Week 4

End of Sprint 1 (Prototype 1) Week 5

End of Sprint 2 (MVP) Week 9

First Round of User Feedback Week 10

End of Sprint 3 (Feature


Week 17
Expansion)

Final Testing and Bug Fixing Week 19

Project Handover and Training Week 21

Project Review and Closure Week 24

Explanation of Timeline Breakdown:

 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.

Elliot Ghader (22484660) Page 4


Project Stakeholders & Requirements
For SkillSpark’s new management system, identifying stakeholders and understanding their
requirements are critical steps. Effective requirements elicitation and management ensure that
the system developed meets the needs of all parties involved.

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:

 Interviews: One-on-one sessions with each type of stakeholder to gather in-depth


insights about their needs and expectations.
 Surveys: For broader input, especially from trainers and clients who are numerous
and might provide diverse perspectives.
 Workshops: Collaborative sessions involving multiple stakeholders to brainstorm
requirements and prioritise features.
 Observation: Spending time with stakeholders while they perform their current tasks
can help identify unarticulated needs.

Handling and Managing Requirements

 Documentation: All requirements should be documented in a detailed manner. These


documents should be accessible to all project team members and updated regularly as
new requirements are identified.
 Presentation: Requirements can be presented in regular stakeholder meetings to
ensure transparency and gather immediate feedback.
 Management: Use of tools like Trello to track requirements, changes, and progress.
This allows stakeholders to see real-time updates and ensures that no requirement is
overlooked.

Effective stakeholder management and requirements elicitation are foundational to the


success of SkillSpark’s vision. By understanding each stakeholder’s needs and employing a
structured approach to gather and manage requirements, the project team can ensure the

Elliot Ghader (22484660) Page 5


developed system will meet all necessary criteria and support the company’s operational
goals. This approach not only aligns the development process with the stakeholders’
expectations but also paves the way for smoother system adoption and higher satisfaction.

System Design & Architecture


For SkillSpark’s new management system, a comprehensive and integrated design approach
is necessary to ensure seamless operations and user experience. Here, I outline the system’s
scope, detailing the individual components and their interconnectivity.

Core Components of the System

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.

System Integration and Communication

Application Programming Interfaces – will be used to facilitate communication between


the different system components. For example, the Booking System will use APIs to query
the CMS for course availability.

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.

Elliot Ghader (22484660) Page 6


This integrated system architecture is designed to support SkillSpark’s operations efficiently,
providing a robust framework that only meets the current needs but also scales effectively as
the company grows. Through thoughtful integration and strategic component design, this
system will enhance operational efficiency, improve client satisfaction and provide actionable
insights to management, driving SkillSpark’s success forward.

Implementation & Testing


Implementation Recommendations

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.

Techniques Not Recommended

 Test-Driven Development (TDD): While beneficial, TDD might be challenging for


the team given their junior status and lack of familiarity with this approach. This can
be gradually introduced as the team gains more experience.

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.

Elliot Ghader (22484660) Page 7


5. Regression Testing: Whenever new features are added or existing features are
updated, regression testing should be performed to ensure that new changes haven’t
adversely affected the existing functionalities.
6. Performance Testing: Before going live, it’s essential to test how the system
performs under normal and peak load conditions to ensure that the system remains
stable and responsive.

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.

Deployment & Maintenance


System Rollout

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.

2. Announcement and Communication:

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:

Elliot Ghader (22484660) Page 8


Considering a phased approach by initially rolling out the system to a smaller group
or department and gradually expanding to include all areas of the organisation may be
beneficial. This can help mitigate risks by addressing any unforeseen issues on a
smaller scale before full deployment.

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

[1] GeeksforGeeks. (2023). Software Development Process. [online] Available at:


https://www.geeksforgeeks.org/software-development-process/.

AcqNotes (2023). Software Development Process Tutorial. [online] YouTube.


Available at: https://www.youtube.com/watch?v=B0GtVUf4zoQ.

McGuire, M. (2024). Top 4 software development methodologies | Synopsys Blog.


[online] www.synopsys.com. Available at:

Elliot Ghader (22484660) Page 9


https://www.synopsys.com/blogs/software-security/top-4-software-
development-methodologies.html.

‌Trapani, K. (2018). What is Agile/Scrum. [online] cPrime. Available at:


https://www.cprime.com/resources/what-is-agile-what-is-scrum/.

Unadkat, J. (2021). Test Driven Development (TDD) : Approach & Benefits. [online]
BrowserStack. Available at: https://www.browserstack.com/guide/what-is-test-
driven-development.

Setter, M. (2023). What Is User Acceptance Testing (UAT): Meaning, Definition.


[online] Usersnap Blog. Available at: https://usersnap.com/blog/user-acceptance-
testing-right/#:~:text=The%20User%20Acceptance%20Test%20(UAT.

Elliot Ghader (22484660) Page 10

You might also like