The researchers choose agile methodology for developing the system. The main reason why agile was chosen over others is mainly because agile uses a short development cycle, also known as ‘sprint’ which focuses more on continuous development of a certain product. Changes and improvement can be made throughout every phase in order to improve effectiveness and efficiency of this project. Scrum was also implemented because with scrum it allows the development team to work simultaneously rather than sequentially. Programmers do not have to wait for all of their queries to be answered and all the information before starting to code. Everything is adaptable and modifiable both during and after the project. The same can be said about testing code, which is done on a regular basis rather than during the final phase when all coding has been completed (Agilest, 2016). Tasks in Scrum are prioritised in the order of significance, which implies that the tasks that are done first in return will have the greatest impact on return on investment. By delivering completed pieces of prioritised work in sprints, you may get parts of your product to market faster than you can with typical projects, which release all completed work at the conclusion of the project (Romero-Chacon et al., 2019). Scrum method also holds meetings on a daily basis to get better visibility on the project. The team can give updates on their designated task during this short meeting.
In this phase, the team will list down the important functional and non functional features that our online learning system needs. The features listed will be prioritised based on the feedback from students and the lecturer’s experience as well as its implementation difficulty. There are 4 items that mainly goes into creating product backlog such as its features, the bugs or defects detected, technical work and information attainment where the team will obtain information to help their work such as prototype, proof-of-concept, research, experiment etc. The product owner will be responsible for prioritising the items or features in the product backlog.
Product backlog is important as it allows the development team to focus on the prioritised tasks. As a result, it will lead to an increase in efficiency in the team’s productivity. In addition, product backlog allows the team to work on their time flexibility as they can adjust the duration for the tasks that need a lot of time to be completed.
Next phase is the sprint backlog where the team will identify the tasks to be completed. Not only that, a list of actionable plans will also be created in completing the tasks. The tasks will be based on the product backlog that has been created. Each of the tasks will be broken into smaller tasks and the most important task to be completed will be prioritised.
This scrum event refers to the main feature of this development methodology where the scrum team works to complete a few tasks to a certain extent in a fixed amount of time which is usually one month. During this Sprint, the team will accomplish a few things to ensure the backlog will be transformed into a learning management system that can be demonstrated to the product owner or stakeholder. Besides that, the product backlog is refined if deemed necessary and the scope of the proposed project will be reconsultated and clarified with the product owner as new information is learned as well as to ensure that the quality will not decrease.
To plan for an upcoming Sprint, a collaborative event with the scrum team and product owner which is called a Sprint Planning is held. The topics that are discussed during this event includes the work that can be done during the Sprint event and how the chosen work will be accomplished. The team will then create a plan to assemble the backlog items for the development of the system before the end of the decided time frame.
During the Sprint event, Daily Scrums will be held which is a brief meeting to inspect and discuss any progress that is being made towards the Sprint Goal. The team can choose any type of structure or techniques that are necessary to ensure that the Daily Scrum that is held will focus on progressing towards the Sprint Goal and construct a course of plan for the following day of work. The benefits of this event is that it can improve the team’s communication, identify any obstructions of work, promote critical thinking and reduce the need for other meetings.
There are responsibilities for each of the roles in a Daily Scrum, the team of developers are responsible to determine the progress that is being made and how it is trending towards the completion of the project. Besides that, the scrum master will ensure that the Daily Scrum will be held but the developers will be responsible for supervising the event. The scrum master will also make certain that the Daily Scrum will be within a short fixed amount of time.
In a traditional scrum method, the sprint demo comes at the end of a sprint. During the demo, the team gets together for an informal session to view a demo of the increment. The development team showcases the backlog items that are now ‘Done’ to stakeholders and teammates for feedback. The team demonstrates fixed bugs, new features, and infrastructure necessary for future work. This review meeting is also when the product owner would rework the product backlog based on the current sprint, which can feed into the next sprint planning session.
The demo is an important part of Agile development as this phase allows the stakeholders to see the progress of the project and see if it aligns with the user’s needs. With various parties around to look at their work's progress, different inputs can be given which can help with generating new features or ideas for the project. Other than that, an effective demo provides a chance for the team to celebrate their accomplishments and get feedback about their work. They also encourage critical conversations that can set in motion future sprint works
Relating to our own project at hand, the demo stage would involve the development team as well as stakeholders or in our case, staff and admins from the university who are going to manage the system in the future. The development team would present their work at each sprint and stakeholders would give comments on improvements based on user needs towards their work.
In scrum development, several notable techniques or principles are used to ensure the team is in an optimal state to complete their tasks and prevent setbacks towards the project.
In Scrum, the empirical process is based on observation of hard evidence and experimentation rather than theory. There are three main ideas to empirical process control: transparency, inspection, and adaptation.
As the Scrum process relies on many individuals, self-organisation is essential. Everyone involved is empowered to work independently, and the self-organisation principle allows for greater buy-in among all parties, while making it easier to assess individual contributions. The principal of self-organisation believes that workers will deliver significantly more value when encouraged to self-organise rather than working under the command and control style of traditional project management.
Scrum is a collaborative process, as evident by the many roles involved. This principle focuses on three dimensions of collaboration which are awareness, articulation, and appropriation. It advocates for project management as a shared value-creation process with teams working and interacting together to deliver the greatest value.
This principle highlights the focus of scrum to deliver maximum business value from early on in the project and continuing throughout. This principle involves organising and prioritising tasks based on their value and how they need to be completed.
This principle emphasises time as a limiting constraint in Scrum. In Scrum, tasks are completed in “sprints,” with specific lengths of time assigned to each one. Other elements, including “sprint planning” and daily meetings, are also given specific start and stop times. This time-boxing ensures that all involved know how much time is allocated to each step, with the goal of eliminating wasted time and delays. This can effectively manage the project planning and the execution .
Iterative development relates to the understanding that a project may need to be refined multiple times during the development process. It also emphasises how to better manage changes and build projects that satisfy customer needs. Iterative development allows the team to make adjustments and manage changes easier for the refinement of the project.