While studying web development, I have a thought of how on the world do people translate their ideas into real world products (and yes, I'm talking about software here), like, what is that bridge that connects the realm of idea to a real software product?
That's when I came across with the book "Software Development from A to Z: A Deep Dive Into All the Roles Involved in the Creation of Software."
This book helped me to answer many of my questions about software creation mostly for web dev (though not all, but it's a handful), and this is when I decided to share my learning journey about Software Development to the people on the web.
To start with, Scrum is a big topic, but let's condense it a bit and learn at least the essentials.
One way to define it is that Scrum is an Agile approach to software development, where things start simple, from planning, to development, to testing, and probably, shipping to production. And from that step, it is followed by gathering feedback and reiterating the process over and over again, until the project finished.
In scrum, there are different roles an organization might have on implementing Scrum. They are:
- Product Owner
- Scrum Master
- Team/s (Team members)
The product owner brings the bright ideas to the table, and gives the software requirements for the product backlog.
The Product owner can also represent the customers and their needs, where the concept of the product or a feature starts to take shape.
Scrum masters facilitates the teams as well as communicating with the product owner.
It is often attributed that scrum masters as servant-leaders.
They make sure the goal is achieved. Team members work on the user stories and move tasks from to-do and pushes it to done (depending on how the organization defines done, it is a set of criteria a task must meet to be able to considered done).
Usually, the product owners are the originators of product ideas. They are the visionaries that can see opportunities and needs that they want to fulfill and offer to the market.
They are you're average entrepreneurs, so to speak.
From this point, the product requirements are specified, mostly a meeting with scrum masters and/or team members is held to build the Product Backlog
From this point, the Sprint backlog is filled with a list of user stories.
A sprint is a timebox of about 1-4 weeks in which the team members develop and fulfill the user stories.
Every starting day of a sprint, a daily scrum is held, which is a 15-minute meeting about what the team just finished yesterday, what they're working on, and discuss the blockings and try to resolve it if there are, so that they can start the day more effectively.
All the progress is reflected on a Burndown chart, which tracks the number of tasks finished by the team over time, or the team's average velocity.
Also, during the sprint, the Scrum board reflects the progress of the work, based on which are yet To-Do, In-progress, and Done. The consideration of done depends on the criteria set for a task and if it is met.
At the end of a sprint, comes the sprint review. This is when the past sprint is discussed and analyzed. The team also showcases the product or feature to the product owner. A Sprint retrospective also is done where the team and scrum master discusses the past sprint and the things that have gone wrong so that they can prevent it the next sprint.
Depending on that sprint, the requirements, and/or the product owner, the product might be shipped to production.
All feedback will be used as guide for the next sprint to make the product better suite the requirements or needs of the customers.
This process will reiterate many times to continuously improve the product and better fit the needs of the customers and the market.
Scrum is a good framework to help teams and organizations develop their products quicker and more efficient.
The process might vary from companies, but the essence is the same, "deliver fast, get feedback, repeat."
Don't forget to follow me on Twitter!