Too many requests! You have made too many requests!! No more requests!!!
– How many times do you have to hear that before you get really angry?Amazon Chime API’s request throttling tested our patience like this. But all we ever wanted was to make a simple text chat app work! In this article, you’ll find out why Chime was so unkind to us, what we did to turn things around, and how you too can follow the path we forged.
Interesting fact: there are approximately 8,462 project management methodologies to choose from. Every project manager understands that selecting the right methodology is crucial to getting the job right.
So, how to understand which one is right for your project?
There are many various ways to deliver projects. Generally speaking, these ways are our project management models – applying different principles, themes, frameworks, processes and standards to help provide structure to the way we deliver projects.
Agile is one of the more recognizable project management methodologies. This methodology is best suited for projects that are iterative and incremental. It’s a type of process where demands and solutions evolve through the collaborative effort of self-organizing and cross-functional teams and their customers.
Agile is a methodology that has methodologies within itself, such as Scrum and Kanban. Scrum methodology is one of the most popular and simple frameworks to put the principles of Agile into practice.
Let’s talk about the Scrum and how it works
Scrum is a subset of Agile. It is a framework for agile development that helps teams work together with the customers. Much like a sports team training for the big game, Scrum encourages teams to learn through experiences, self-organize while working on a problem, and reflect on their wins and losses to continuously improve. Its goal is to develop, deliver, and sustain complex products through collaboration, accountability, and iterative progress. According to this, it is not surprising that Scrum is the most widely-used one among the teams.
Scrum team roles
- Product owner: The product owner represents stakeholders, which are typically customers.
- Development team: Group of professionals that consists of three to nine individuals who have the business, design, analytical and development skills to carry out the actual work, solve problems and produce deliverable products.
- Project manager: Manager who ensures the understanding and execution of Scrum is followed. The manager’s responsibilities include coaching and motivating the team, removing impediments during the development, and ensuring that the team has the best possible conditions to meet its goals and produce deliverable products.
Phases of Scrum Model
Now, let’s take a look at the main steps of the development process that Scrum consists of.
Step 1. Product Backlog Creation
A product backlog is a list that contains features to be implemented during the development process. It’s ordered by priority and every item is called a User story. A user story is an informal, general explanation of a software feature written from the perspective of the end user or customer. It helps development teams capture simplified, high-level descriptions of a user’s requirements written from that end user’s perspective. The examples below show how these stories can look like:
- As an internet banking customer, I want to see a rolling balance for my everyday accounts, so that I can keep track of my spending after each transaction is applied
- As a manager, I want to be able to understand my colleagues’ progress, so I can better report our success and failures.
- As a customer, I want to receive an SMS when the item arrives, so that I can go pick it up right away.
- As Max, I want to organize my work, so I can feel more in control.
This structure is not required, but it is helpful for defining done.“Why can’t we just write features or tasks instead?”
Step 2. Sprint Planning and Sprint Backlog Creation
The sprint duration is very important so that the user stories are as small as possible. The typical average sprint duration lasts about 2 weeks. If the sprint duration is small, then the advantage is that more customer feedback can be received and most of the errors and bugs can be addressed earlier. If the sprint duration is long, then it allows the developer to work thoroughly.
The next stage is to do the sprint backlog creation. It consists of user stories that will be completed during the current sprint. The scrum team must select the important user stories and make them into smaller tasks. They need to plan on how to get the task completed. The Scrum team should be capable of finishing all these stories on time. Also, one important thing is to prioritize the necessary tasks.
For example, the goal for Sprint: “A website visitor can order a product”. We discuss with the team and product owner how to implement this. Roughly, customers have to go through three steps to order something: 1) select a product, 2) enter address and billing information, 3) perform the payment. We discover several exception paths. After the discussion about what technology we will use for this goal and how the team will implement this functionality, we start creating the Sprint Backlog.
Below are some of the items that can end up on the Sprint Backlog:
- When an order is placed, send an email to the sales department;
- Allow customers to pay for their order by credit card;
- Encrypt user information in order (e.g. email, address);
Step 3: Working On Sprint and Scrum Meetings
The actual user stories are moved as small tasks in the sprint backlog, where the actual work starts. This is where the implementation of a software application, such as website development, begins.
To begin with, a task board is made with a lot of cards is used. The cards specify the details about the tasks such as assignee, work details, due date or the time duration, etc. The cards can be arranged according to their importance. When work on a task has been started, the corresponding sticker is moved from the “To do” field to the “In progress” one. When work is completed, the sticker can be moved to the “Testing” field, and after the task is successfully tested, the sticker goes to the “Done” field.
For this activity, we use specialized software JIRA and Trello for this task.
In this step the scrum meetings are important as it is done to track the progress status and who is doing what status. The burndown chart is the output of this meeting, as it provides the details about how many tasks are completed and if there are any issues or problems in completing the tasks in the “Work In Progress” columns.
It is also important to notice one more Scrum feature is Daily Scrum meetings. These meetings’ main purpose is to get full information about the current project status and make sure that all team members are on the same stage. During Scrum meetings, every single team member should tell what he has done for the day, which tasks will be the next, and what problems team members faced during the work.
Day by day Scrum meetings help increase the flexibility of the development process. They also allow understanding of what changes should be made.
Step 4. Testing, Product Increment and Sprint Review
The result of every sprint in Scrum is a potentially shippable product increment that can be presented to the customer. After each iteration, the development team creates a new version of a software product and adds new features with increased value. In the end part of every sprint, there is Sprint Review where the overall results can be demonstrated and analyzed. According to this info, the stakeholders can make a decision about further project changes and plan the next sprint.
Step 5. Retrospective and Next Sprint Planning
Retrospective’s main goal is to consider the results and the ways how to improve the development process on the next step. The team should talk about the lessons learned and the pitfalls that were during the development part. An important feature is to improve the work of the Scrum team as a whole. The team should conclude what went well during the working process and what can be done better during future iteration. When the ways of improvement are defined, the team can start and concentrate on the next sprint planning.
The project closure phase represents the final phase of the project management. Around this time, the final product is ready for delivery. Here, the main focus of the project manager and the team should be on product release and product delivery. In this stage, all the activities related to the project are wrapped up.
Once the product is handed to the customers, the documentation is finalized and the project is closed.
The main differential features of Scrum are flexibility and constant progress. It’s provided mostly by regular communication and close cooperation between the stakeholders at each step.
When the sprint is done, the customer can assess the working product functionality at the current iteration and make decisions about how the project should evolve during the next sprints.
Use Case: Web Development
Problem Statement: Important changes need to be implemented on an existing company website.
Scrum team roles:
- Product Owner: Team Lead
- Development Team: Developers
- Scrum Master: Project Manager
Basic Flow of Events:
- The website needs to be updated.
- Product Owner creates a backlog, i.e. the prioritized changes to make.
- The development team and the QA team is created.
- Sprint of 7 days is decided.
- Project manager is assigned to set up the meetings and help with issues.
- Tasks are assigned to the team
- A daily 15-minute Scrum is set up for holding team meetings
- The website is updated each day with the work done
- QA notifies issues on the same day.
- Each week, the Sprint Review meeting is held with the CEO for an update on progress.
Scrum is best suited for projects that consist of teams of less than seven people who need a flexible approach to deliver a product or service.