Software Development Workflow
Numerous software development approaches have surfaced since the inception of Information Technology. Usually, an approach, multiple approaches and combination of approaches are used for software development. Two guiding philosophies have given birth to sub-categories. The two major philosophies have been:
- Traditional Methodology; such as waterfall which is composed of definite phases. These are also referred to as Software Development Life Cycle (SDLC) Methodologies.
- Agile Methodology; defines a process of recurrence or iteration, where different development phases such as design, construction, and implementation can take place concurrently. We, at CUOnline use Scrum – a subset of Agile Methodology.
It is a recurring and incremental agile software development methodology for product development management. It has been defined as “a flexible, holistic product development strategy where a development team works as a unit to reach a common goal”. It opposes the oldest theory of sequential methodology where each life cycle has a distinct phase and processes cannot overlap. Scrum helps teams to self-organize by encouraging interaction and online collaboration of all team members along with daily real life meetings of members, where feedback from member other than team members may also be incorporated in development process.
Scrum’s Main Idea
The main idea behind this strategy is that the development process is not always smooth with perfectly marketed stages as it is supposed in sequential development methodologies. It recognizes that the customers can change their requirements during the development process. These changes cannot be accommodated in the traditional methods. It adopts a factual position – focusing on the team’s strength to address issues and incorporating new requirements swiftly instead of relying on problem definition initially. It stresses that the problem cannot be fully defined in the beginning.
The Scrum Process has 3 main phases.
- Planning:During this phase, the project planning takes place. Design decisions of high level are made at this stage.
- Sprint Cycle: The distinctive feature of Agile is iterative cycle of 3-4 weeks. During this phase the actual coding takes place. The Cycle begins with a Sprint Planning Meeting which decides what work will be done in the current sprint. Then development takes place. Then Sprint is closed with a Sprint Review Meeting. During this meeting, the progress in the last sprint is demonstrated, reviewed and essential adjustment are made accordingly in the project.
The Sprints continue till the development completion. The product is considered complete when the variables of time, competition, quality, and resources cost are balanced.
- Develop the product further – implement, test, and document.
- Wrap up the work – get it ready to be evaluated and integrated.
- Review the work done in this sprint.
- Adjust for any changes in requirements or plans.
- Closure: In the last phase, the product development is closed and the product is offered for release.
The distinctive feature of Scrum is Sprints. Sprints are the fixed length iterations. It provides a framework for shipping software in a measured time. At the end of the sprints, the milestones show tangible progress results that give direction and zeal to team members and stakeholders. Short iterations enables good estimation and fast feedback incorporation from test and feedback.
Four ceremonies provide structure to each sprint:
- Sprint Planning
- Daily Stand-Up/ Scrum
- Sprint Demo
- Sprint Retrospective
Roles in Scrum:
Scrum Methodology has three main roles. These are the committed entities in the software/product development. These roles are: Product Owner, Scrum Master, and the development team. Product Owner commissions the product. Scrum Master leads the development team, whereas the development team does the actual programming.
The Artifacts or tools used in Scrum to assess the progress are: Product Backlog, Sprint Backlog, Product Increment or PSI, Scrum burn-down charts, and Review burn-down charts. These tools provide tangible results which help guideline the project and analyze progress.
CUOnline has successfully implemented the Scrum Model in software development. The products developed by CUOnline such as Library management system, Virtual Learning Management System, Higher Education Management Suite, and Airline Fuel Management System were successfully planned, developed, and deployed in short time frame using Scrum Model.