Scrum: Agile Software Development and Project Management
Learn how we organize our software development at subshell using the agile methodology “Scrum”.
Overview of Our Everyday Life with Scrum
We rely on Scrum! Scrum is a method of agile software development. By using Scrum, we plan our work in short two weeks development cycles and define work steps which are fixed for this period of time. Scrum calls the recurring cycles “Sprints”. Planning a Sprint at subshell is the task of a person called “Product Owner”. By having the responsibility for our product Sophora, our Product Owner determines new requests, sorts them according to priority and allocates them to one of four Development Teams at subshell. Based on self-organizing Development Teams, we do no longer need traditional project management. Teams get support by our ScrumMasters who are assigned to one team. Some of ScrumMaster’s manifold tasks are teaching Scrum principles, eliminating problems that disrupting the agile process or supporting subshell’s Product Owner. All requests that are not planned in the current Sprint are listed in the Product Backlog. It captures all upcoming tasks.
Ten years of experience with Scrum: subshell has established Scrum for over ten years already. With Scrum we have found a method to structure our product development processes in the best possible way. Also, it supports us in organizing our work flexible. By having short development cycles, we are able to get a fast feedback from our customers. Additional advantages of short cycles are to identify problems and bugs earlier than before and the fact to present a potentially shippable product increment (sum of all Product Backlog items completed during a Sprint) after each Sprint. Thus, we are open for changes and new ideas at any time, whether internal or on customer’s request. With Scrum we create innovations and optimize quality and productivity of our daily work. The transparent and agile development process causes a higher employee and customer satisfaction.
Benefits of Scrum
By following the approach of Scrum we are able to improve our development continuously. The benefits of Scrum at a glance:
- Scrum supports internal and external communication.
- Regular feedback, for instance at meetings or reviews, enables a transparent software development.
- Short development cycles optimize organization and agreements on deadlines.
- Increased willingness as well as the possibility to react flexible to new requirements.
- Every two weeks a shippable product increment is created.
- Frequent feedback by customers through acceptance of already completed requirements.
- Continuous product improvements.
- Sprint planning reduces error rates of large-scale projects.
- Self-organizing development teams optimize their time scheduling.
- Constant quality assurance increases customer satisfaction.
subshell’s Definition of Scrum in Detail
With Scrum we divide our work into two weeks Sprints. At subshell a Sprint begins with the Sprint Planning and terminates by the Review (presentation of results completed during the Sprint), followed by the Retrospective (retrospective view and analysis of the Sprint). Scrum defines three roles for the entire development process: Product Owner, Development Team and ScrumMaster.
The Product Owner is responsible for the implementation of all product requirements. subshell’s Product Owner defines requirements for the upcoming Sprint. The decision when and in which order tasks should be done determines our Product Owner as well. Also, prioritizing the Backlog is one of the responsibilities of Product Owners.
subshell counts four Development Teams. All teams work on tasks assigned to them by our Product Owner. Each team defines the number of requirements which are intend to work on next Sprint. The team assumes the organization among themselves.
subshell’s ScrumMaster supports one of our Development Teams and makes sure that every team member has an extensive understanding of Scrum and assists with implementation. Managing and clearing away obstacles as well as demonstrating new stages are additional tasks of ScrumMasters.
A Scrum Team is composed of Product Owner, ScrumMaster and Development Team. As an interdisciplinary team, it is independent of other teams. The whole Scrum Team is responsible for our product Sophora.
The Product Backlog records all upcoming requirements one below the other. Scrum calls single product features “Product Backlog Items”. Our Product Owner is responsible for prioritizing these items and decides, which items belong to the upcoming Sprint. At any time, it is possible to add new requirements to the Backlog.
subshell’s Sprint Planning is held every two weeks. We have subdivided the planning into three steps:
Higher prioritized items in subshell’s Product Backlog are planned for the upcoming Sprint. ScrumMasters and Product Owner get together for bear requirements of different projects in mind and in order to assign duties to all Development Teams. The final decision, which requirements need to be done by the next Sprint, is determined by subshell’s Product Owner.
2. Preliminary Sprint Planning
The ensuing meeting called „Preliminary Sprint Meeting“. ScrumMasters, Product Owner and representatives of each team come together to discuss the requirements, which have been assigned to the teams during the Prioritization. All teams have the opportunity to talk about single requirements, assign them to other teams - if necessary - and to evaluate the expenditure. The results of this Preliminary Sprint Planning turn up again in the Sprint Backlog of each team.
3. Sprint Planning
The new Sprint is getting closer: Each Development Team join a meeting with the name Sprint Planning. Each team discusses among themselves assigned requirements and calculate the available working time and the expenditure during the Sprint. The available working time is calculated from the sum of days on which subshell’s employees are present at the upcoming Sprint. Subsequently, each team discusses single requirements and allocates task if desired. The advantage: Before working on tasks, developers have the chance to clear uncertainty and possible obstacles. Also, developers estimate the time required processing all tasks and decide, whether the processing is done by one or by two persons. After the Sprint Planning Meeting the team starts processing all tasks. The Sprint is now open for business!
Each development team has its own Sprint Backlog. A Sprint Backlog records all assigned requirements for the current Sprint with a limited duration of two weeks. Now, our teams work on tasks according to the Product Owner’s priority. In order to manage and plan tasks subshell uses JIRA software.
For subshell’s Development Teams the new two weeks Sprint begins after termination of Sprint Planning. Teams work only on assigned tasks listed in the Sprint Backlog. subshell’s ScrumMasters accompanies the team during the Sprint and clear away obstacles, which could affect the working process.
Our daily stand-up meeting take place regularly at ten o’clock. subshell’s employees belong to different teams – whether corporate management, project management or development team – come together in order to report about current changes, progresses and obstacles at the Daily Scrum Meeting, lasting a quarter of an hour. For subshell’s ScrumMasters the short meeting is a great opportunity to exchange daily experiences and to inform about upcoming requirements.
At the end of each Sprint subshell’s Retrospective takes place. This meeting is carried out by each development team individually. During the Retrospective teams analyze the past Sprint and work out specific improvement measures for the next Sprint. The Retrospective supports our Development Teams in optimizing team cooperation and way of proceeding on a long-term basis.
The last mentioned Scrum Meeting is called Review and is held on every second Friday of a two weeks Sprint. At subshell we call it “Demo”, because we demonstrate our shippable Product Increment at this meeting. All employees come together in order to take a look on new completed requirements. Each team present the tasks they have done during the last two weeks. subshell’s Review is only internal. A review with external stakeholders occurs for single projects. subshell uses the one-hour Review Meeting to talk about unresolved issues and in order to provide time for internal feedback and improvement measures of single requirements. Traditionally, subshell’s Demo ends with cake for all.
JIRA is a Atlassian software in order to create and manage digital tasks. The platform is used for project- and issue-tracking. It supports our internal and external communication while working on product requirements. Also, we use JIRA for technical support requests. Both, customers and employees create new tasks with JIRA and document the work they have already done. The software is also used as a monitoring tool and offers reporting options such as burndown charts. With JIRA we make our development process transparent.