Agile-Scrum Framework- A Quick Guide For Job Interviews
“At its root, Scrum is based on a simple idea: whenever you start a project, why not regularly check in, see if what you’re doing is heading in the right direction, and if it’s actually what people want? And question whether there are any ways to improve how you’re doing what you’re doing, any ways of doing it better and faster, and what might be keeping you from doing that.”
― Jeff Sutherland
Every framework has certain processes which need to be implemented flawlessly to obtain the desired benefits. Partial adoption or improper implementation can ravage the chances of success. Similarly, Scrum has also certain guidelines which need to be followed to get the maximum benefit from it.
There are guidelines for each and every process, whether it is practice for the project or something else. Even, we have properly defined rituals to worship the God, albeit different religions have different ways to pray. Some people follows the rituals strictly due to their faith and devotions, while others serve on fear. But the popular belief is that God's love can be obtained only when anyone follows all the rituals honestly.
Scrum is an Agile framework created for the complex projects to improve the team collaboration, communications, and speed. It has a well-defined set of few principles and guidelines which are carefully designed to get the desired outcome when it applied entirely.
What is Agile?
In the year 2001, 17 developers assembled at the famous snowbird resort in Utah to find out a way to ease out the complex software development process. The output of that discussion came out as Agile Manifesto for Software Development.
The Agile Manifesto primarily focuses on four major areas:
- Self-organizing motivated team members are important than the processes and various tools. And interactions within the team preferably sitting at same place (co-location) is highly essential for the benefit of the project
- It also emphasizes on working software over the extensive documentation. It is better to present something workable demo to the client rather than giving speeches on some powerpoint presentations
- Continuous customer and stakeholder involvement is essential to collect the requirements at every step instead of taking the requirement one time at the initial stages
- Focuses on quick response upon any changes rather than stick to the plan to take the changes later or as planned
The 12 Key Principles Behind the Agile Manifesto
Based on the four philosophies of Agile Manifesto, 12 principles are derived.Let's have a look at the 12 key principles of Agile Manifesto.
- The highest priority should be the satisfaction of customers by early and continuous delivery of working software, rather than keeping them waiting until the end of the project to see the complete deliverable
- There are no hard and first rules that changes are only acceptable in the initial phases. Agile encourages to accept the changes even at the later stage of development
- Continuous development is the key for frequent delivery of working software. The delivery period should be shortened, preferably in a couple of weeks rather than taking months
- Business people and the developers should work together on daily basis throughout the project to eliminate the misunderstandings in the requirements
- The agile project team is highly motivated and self-organized people who know their job better, do not require any kind of micromanagement. They only thing they need is a suitable environment, support and trust from their seniors to perform the tasks
- It encourages face to face conversation within the development team for efficient and effective communication
- The progress of the project can be measured by the working software delivers to the customer in a fixed iteration
- The Agile process supports continuous development at a constant pace. All the party involved in the project should be able to maintain the pace.
- The Agile team should focus on good design and technical excellence in their work
- It advises breaking off the complex requirements into simpler unit to execute them quickly and effectively, rather than taking time to complete the complex task as a whole
- It maintains that the self-organizing quality of the team can produce best architectures, requirements, and designs for the project
- The Agile team introspects at regular intervals to find out more effective ways of doing the work and accordingly fine tune the process
Popular Agile Methodologies and Frameworks
Some popular agile methodologies and frameworks used across the industries without any particular order are as follows:
- XP (Extreme Programming)
- Battlefield Agility
- Agile modeling
- Agile Unified Process (AUP)
- Disciplined agile delivery (DAD)
- Dynamic systems development method (DSDM)
Among these, Scrum is one of the most popular framework based on the fundamental of Agile principles. There are many such methodologies and frameworks available today to help you in implementing the Agile principles. Each of the frameworks has their own significance, though the basic goal is to implement the Agile Principles to its fullest. So, based on the size, complexity, and nature of the businesses, the organizations have freedom to choose the appropriate framework.
What is Scrum?
The apparent meaning of Scrum explains the scrum formation in the rugby team where the ball is thrown into it and the players try to gain possession of the ball to score. Each side consists of high-performance players having different functional expertise working towards a common goal.
Similarly, Scrum is an Agile framework which advocates cross-functional team collaborate to accomplish a complicated project. The basic principle of scrum is to deliver a small shippable piece of high quality working software incrementally at a specified duration.
The creators of Scrum Ken Schwaber and Jeff Sutherland further defined the 5 basic values of the scrum.
What is it
Highlight the challenges and obstacles facing to complete the work. Daily scrum is one such platform to put your difficulties in front of the team to get the required support
Provide commitment for the task you understands and capable of completing it within the committed time period to achieve the goal of the sprint
Stay focused on the sprint to deliver your committed task and the goal of the sprint
Always have the courage to take the changes even if that means accepting your mistake or diverted in other direction from the goal
Help others in learning the things on which you have commands but at the same time do not judge the things that others are not good at the subject you have the expertise
The Scrum Team
We have discussed the five basic values of the scrum, let's go deeper to discuss the scrum team and its various roles.
The scrum team comprises of three main roles, that is Product Owner, Scrum Master, and the Development Team which includes the developer, tester, and other functional roles.
The Product Owner defines the product vision. She/He is responsible for the project's ROI and manages the product backlog. She/He has the final authority to approve a task whether it is shippable or more works needed before shipping to the customer.
The Scrum Master also called the Servant Leader has the responsibilities to safeguards the scrum processes by making sure that all the scrum team lives by the values and practices of the scrum. They are the facilitator, ensures that the team must follow all the scrum ceremonies such as Sprint Planning meeting, Daily Scrum Meeting, Sprint Review Meeting etc. the Scrum Master protects the team from outside interferences and removes the barrier between the scrum team and product owner.
The Development Team
The core of the process is the development team. The development team comprises of Architects, Developers, Designers, Testing personnel and other professionals require to work in the project.
The ideal size of the team should be 6 to 9 members, should not exceed more than that. The focus is on the high-performance and cross-functional team committed to delivering the work with a clear vision of the business values.
So, as we discussed the roles and responsibilities of the scrum team, let us discuss how the team practices the Scrum Processes in the project to implement the actual Agile principles in its true sense.
- Jira Software - Makes Your Scrum A Cakewalk
JIRA Software is one of the best software development tool popularly used by many Agile teams. A single tool to fulfill all needs at one place instead of using separate tools for each Scrum processes.
The Scrum Ceremonies
The Scrum ceremonies consist of 4 major processes, those are:
- Sprint Planning Meeting
- Daily Stand-up Meeting
- Sprint Review Meeting
- Sprint Retrospective Meeting
To get the maximum benefit of the Scrum framework, all these ceremonies need to be followed stringently in a proper order without any break.
Normally, the high-level requirements are there in the product backlog. The first thing you need to do is to break the high prioritized requirements up to the granular level from which further decomposition is not possible. Then the team chooses certain numbers of high priority work items as per the capacity from the product backlog. The chosen work items are then moved to the Sprint backlog. The team needs to complete the stories in the sprint backlog within a specific time box and delivers a high-quality shippable working software at the end of the sprint.
The time box is called Sprint within which the work should be completed. The ideal durations of a sprint should be of 1 to 4 weeks. The team along with the Product Owner has the liberty to choose the length of the sprint. Once the length has been chosen, then that is fixed and the team keeps on repeating the cycles by taking new and incomplete work items from the product backlog.
Sprint Planning Meeting
The Sprint Planning Meeting held at the beginning of each sprint with a purpose to discuss the following objectives:
- To estimate the size and complexity of the prioritized work items listed in the product backlog
- Determine the amount of work needed to complete the work items
- Based on the estimation and amount of work required, the team picks the work items which can be developed and delivered within the Sprint
- Determine the Sprint goal which the team committed to achieving in the specified sprint duration
Who should participate in the meeting?
The Product Owner, Scrum Master, complete Development Team including the developers, testers, and others, and also the stakeholders which are related to the project by any means.
The Product Owner presents the high priority issues from the top of the product backlog. He provides the requirements against each item. The team discusses the issues and clarifies the details (if any) from the Product Owner and provides the probable high-level technical approach to deal with these issues. The items are then estimated based on the information gathered from the discussion.
There are some interesting techniques like story points calculations, Planning Poker game which can be used to do the estimation. Though Agile doesn't prescribe but these techniques are widely used by many scrum team across the industries.
Once the prioritized work items are estimated then the team picks up the items according to the team capacity. The selected items are then moved to Sprint backlog to start the work on them. After the meeting, the sprint backlog is ready with clearly defined sprint goal.
The ideal duration of the Sprint Planning Meeting should not be more than 4 hours for 2 weeks of Sprint.
Daily Stand-up Meeting
Agile principles emphasize on colocation, encourages face to face verbal communication rather than wasting time in writing series of email to and fro. The Daily Stand-up Meeting or the Daily Scrum Meeting justify that principle.
Who should participate in the meeting?
The participants of this meeting are the Scrum Master, the Development team and optionally the Product Owner. The Product owner is optional participants in the meeting but his presence can speed up the work in case of any clarification or decision needs to be made.
The purpose of the meeting is to enhance the team communications, track the work progress, identify the risks and remove the impediments if any. Another benefit of this meeting is it enhances visibility in the team as all the team members able to know each other works and their current progress as a whole.
As the name speaks, the meeting happens every day at a fixed time and fixed place throughout the Sprint cycles without any fail. The rule of the meeting is that everybody should be at the standing position, sitting is not allowed. That is because this meeting is of short duration and sitting comfortably can increase the length of the discussion.
Each team member verbally presents a brief information about the work done yesterday and what will they do today. And, if any team member is facing any obstacles and needs help, then only the required members can discuss further but that must be a separate meeting after the daily scrum call.
The Scrum Master plays the crucial role of facilitator in the meeting. He/She ensures that all the team members are attending the meeting.
The duration of Daily Scrum Meeting should not exceed more than 15 minutes. The Scrum Master ensures that the meeting must be over within the specified time frame.
Sprint Review Meeting
At the end phase of the Sprint, the Sprint Review Meeting takes place to demonstrate the actual work to the Product Owner and other Stakeholders to get the feedback from them.
The basic purpose of this meeting is to showcase the accomplished work of the current sprint to get the feedback before shipping to the customer or installing into the production.
Who should participate in the meeting?
The participants of this meeting are the Scrum Master, the Scrum Team, Product Owner and other related stakeholders/sponsors, and also customer representative if available.
The team demonstrates the shippable working software to the Product Owner and other Stakeholders. The Product Owner reviews all the work items of the current sprint and based on the work done either approve or reject the work items. The completed work items are then moved to the "Done" status and the uncompleted work items move to product backlog to reprioritize them later.
The ideal duration of the Sprint Review Meeting should be of 2 hours for the 2 weeks long sprint.
Sprint Retrospective Meeting
The Agile principle says the team should introspect their work at regular intervals to find out more effective ways of doing the work and then fine tune accordingly. Based on that principle Scrum Frameworks suggested the Sprint Review Meeting at the end of each Sprint to introspect the work done in the current Sprint.
Who should participate in the meeting?
The participants of this meeting are the Scrum Master, Product Owner, and the Scrum team.
The team sits together to introspect the work done in the just concluded sprint, gathers all the feedback and analyze them. They identify the necessary improvements to do the work in a better way. This is a typical lesson learned session for the betterment of the process, people, tools, and relationships, shouldn't be taken as finger pointing opportunity of others mistake.
The duration of this meeting should be of 2 hours for 2 weeks of Sprint.
Apart from the above ceremonies, there are some useful charts and metrics need to be prepared to track and manage the Sprint within the Agile-Scrum Framework. The Burn Down Chart, Burn Up Chart and Whiteboard are the useful armor to track the work effectively. We will discuss more on that in the upcoming articles.
These days, it becomes a trend in the market that many organizations are going into Agile ways. Be it the pressure from the competitive market or the demanding clients, most of the organizations looking for a way to deliver the project in a quick succession in a changing environment. And to meet their needs, the Agile-Scrum framework is the perfect solution to deal with those challenges.
Which popular Agile software development framework are you using in your project?
© 2017 Kishor Mohanty