You are here

What is Scrum in Agile Software Development?

Scrum is an iterative Agile Software Development Frameworks used for managing software development work. Scrum is very flexible and accommodates constantly changing requirements by the customer.

The Scrum Framework is designed for teams of three to nine developers and breaks down work into small fixed duration called Sprints. Daily 15 to 30 min stand-up meetings are conducted to track progress, update status, and address any issues.

The sprints break product development work, which includes a list of User Stories in a Product Backlog, into small increments that minimize the amount of up-front planning and design. When developing Phonora Photo Gallery, I wanted to be able to build features quickly and regularly. I knew I could not achieve this by following the tradition waterfall method, which involves building the scope of the entire software, so I followed Agile and used Scrum with my team of 2 Developers, 1 Database Administrator, and 1 Quality Assurance Analyst. I gathered User Stories for each desired feature in the software and started development of the individual features.

In Scrum, an Iteration or Sprint typically last for two weeks. Each Sprint involves cross-functional teams working on all aspects of the software development: specifications, analysis, planning, design, coding, and testing. At the end of each sprint, a working product is demonstrated to the customer. Feedback is then gathered from the customer to make changes. This method reduces risk by directly involving the customer in the process. This method was perfect for me to develop Phonora Photo Gallery as I could quickly gather requirements for a feature, develop, test, and collect feedback within two weeks. Frequently, I would receive User Stories for feature that were too big to fit into a sprint. So, I would break those User Stories into smaller stories and accommodate the feature across multiple Sprints.

I soon realized that a Sprint does not add enough functionality to make the software viable for market release as multiple Sprints are required to release a version of the product. So, I would release a minor version of the software after every three or four sprints.

Product Owner: The Product Owner is responsible for delivering value to the business. The Product Owner gathers requirements known as User Stories from the customer and translates the User Stories into a list of tasks or issues called Product Backlog.

The Product Owner prioritizes the tasks in product backlog based on importance and dependencies and assigns the tasks to the development team. Scrum teams have one Product Owner and I served as the Product Owner in the development of Phonora Photo Gallery.

Scrum Master: Scrum Master is responsible for managing the project and product development. Scrum Master however is not a traditional team lead or Project Manager. The way Scrum Master differs from a Project Manager role is that the Project Manager may manage multiple projects that span across teams while the Scrum Master is native to the Scrum team. The Scrum Master ensures that the development takes place according to the requirements and each sprint is on time. Since, my development project was small, I also served the role of the Scrum master in the development of the Phonora Photo Gallery.

Developers: Developers are responsible for coding and building the software. There may be 3 to 8 developers on a scrum team. I hired 2 developers on a contract to work on Phonora Photo Gallery.

Quality Assurance Analysts: Quality Assurance Analysts are responsible for testing the software to make sure the software is operating according to the specifications. There may be 1 to 2 Quality Assurance Analysts on a scrum team. I hired 1 Quality Assurance Analyst to test the development of Phonora Photo Gallery.

In addition, I also hired 1 Database Administrator on contract to build the database schema, write sql queries, and develop sql scripts for any database schema changes in each version release of the Phonora Photo Gallery.

Scrum is great for development of software such as the development of Phonora Photo Gallery. However, Scrum does not cover the whole product development lifecycle, hence, hybridization of Scrum with other software development methodologies is common.

For example, there is often a need to gather high level requirements, build an initial high level design, and prepare budget and forecasting. These tasks are achieved by combining Scrum with other methodologies resulting in a hybrid methodology. Some of the hybrid methodologies include Scrumban, Scrum of Scrums, and Large-Scale Scrum.

Scrumban is one of the hybrid methodology developed by combining Scrum and Kanban.

Scrum of Scrums is a method to operate in areas of overlap and integration among teams.

Large-Scale Scrum is used to extend and expand the Scrum teams with scaling rules and guidelines to implement scrum on a broader scale without losing the original purposes of Scrum.

Jagmeet Singh writes about Technology and Business on W3Courses.com. Jagmeet is the owner of Parallel Exchange and developed Phonora Photo Galley software product. In his spare time he enjoys photography and loves to travel.