Wednesday, October 14, 2015

What is Scrum & what does a Scrum Master do

Intro.
The Scrum process is anchored by the following standard fundamental elements; a backlog list, the team, owner, stand up, planning sessions, and retrospect. The Scrum Master role is to ensure all elements are functioning together properly, eliminating obstacles and tackling any unknowns head on. In addition to that, the Scrum Master will track the velocity (Burn down chart) within the iteration, capacity per iteration, capacity per person, and ensuring that the project and company requirements are met.

Scrum Project Charter (If needed)
For any new project, if a company calls for a charter, then the key elements will need to be identified by the Scrum Master, Owner and Team. The breakdown can be defined as such: Description (by Owner), Business Justification (by Owner), High level Project Requirements/Epics(by Owner, team and Scrum Master), Backlog (only if possible early in this stage by the Owner, team and Scrum Master), Risks (By the Owner and Scrum Master), Assumptions (By the Owner and Scrum Master) and Constraints (By the Owner and Scrum Master).

Project Initiation, Epic and User Story
The process is initiated by identifying the different areas in the system (Epics) and prioritizing them. This work is done by the Scrum Master, Owner(s) and team. In an ideal Scrum environment, a single role “Owner” will be designated for such a function, however in many companies, one must rely on many owners. For every Epic, a set of user stories are identified and created by the owner(s) and analysts. Each user story follows the standard format; “As a I would like/want to so that ”. Each user story will be estimated and added to the backlog list. This list must be visible to all parties in the team and stakeholders to ensure transparency. In addition to this, it is important to identify and make known the definition of when an item/task is "Done". "Done" is defined differently between companies and as you read further when an item will be defined "Done" will be clearer. In all cases an item is "Done" when  it is "Shippable"  or "ready for live system".

Iteration Initiation
At the start of any “iteration”, the Scrum Master schedules a planning session to go through each item with the team. The items are selected based on priority and ordered properly within the iteration. The sum of the estimates for the items selected for the iteration would equate to the calculated team’s capacity. Capacities are always adjusted to take into account how many points are spent on non-project related tasks.

Stand up
Throughout an iteration, everyday there is a daily stand-up. Each person will come ready to this time-boxed meeting with “What I did yesterday”, “what I will do today”, and “Obstacles in my way”. The Scrum Master role is to clear obstacles raised and keep velocities updated.

Functional Testing and Demo/Presentation
As a set of items are finished for the owner(s) and they have passed unit and functional testing, the changes will be presented with an opportunity for adjustment upon request. Negotiating as to what and if a change is possible in the present iteration based on that meeting is one of the Scrum Master's responsibilities.

Testing and Definition of "Done"
Some companies define "Done" when the user story has passed both functional testing and the owner presentation. Once all changes for the iteration passes through all testing environments, if a company applies manual or automated regression testing, then some of those companies define an item as "Done" once these tests pass. Many smaller companies would be ready to deploy the changes to a live system at this point. Larger companies tend to follow through user acceptance testing on a pre-production environment. Some such companies may define "Done" before the UAT others only after. For some companies with smaller teams who apply UAT, all members in the scrum team would be involved in UAT. In such cases it merits to define "Done" when the UAT is complete. For larger companies who have a scrum and UAT team, this is where the scrum team would start a new iteration. In all cases regardless of who is doing the Regression and UAT, any new item or defect discovered after the item(s) are set as "Done" will placed into the backlog list and re-prioritized accordingly.

Retrospect
At the end of every iteration, a retrospect meeting is initiated. Each team member will come to the meeting with three topics; “what went well”, “what did not go well”, and “how we can improve on what didn’t go well”. This will be a driver for the Scrum Master to improve every iteration to continuously advance the efficiency and quality of the team and system.