Friday, June 14, 2013

The Scrum Framework

I am interning at a local Healthcare IT firm, and when I reflected
on the readings of this week, I couldn't think of better process to discuss
than scrum, which would fit the strategy of the organization I am working for.

The article ‘Capitalizing on capabilities’, categorized
capabilities of organizations in to 11 traits and discussed that organizations
should perform an audit and evaluate their strategies. It also mentioned that
instead of focusing on all capabilities, the organization should focus on 2-3 important
strategies which should be comparable to provide world class. The rest of the capabilities
should either be at industry parity or above industry performance level. The
article ‘Does Your Organization have the Capabilities to execute its Strategy’
discusses how organizations need to evaluate their capabilities in terms of
people, processes and technology to meet their strategies. It provides a four step
process for organizations to determine and assess their capability gaps and
provides a management process to close them. The article ‘Competing through organizational
agility’ wrote about how important it is to quickly identify, and capture opportunities
before rivals do.

As a healthcare IT Company our strategy is to
identify, analyze and develop new solutions to address health care's
greatest challenges and create the next generation of health care IT products. We
assess new and existing technology investment opportunities to pursue
healthcare innovation. For, these reasons it’s extremely important that we
adopted a process which is iterative, helps rapid prototyping and cross-functional
product development. Scrum process assists in this regard completely.

What is Scrum?

It’s a methodology which helps teams develop a product.
Product development happens in small incremental phases which fosters team work
on complex projects and helps teams to respond to feedback and changes to get the
desired product. It’s actually named after a rugby formation where it refers to
restarting the game after a minor infraction.

Roles and concepts:

Scrum works by having well defined roles and
responsibilities. Broadly there are 3 major roles in Scrum, but at our company
we have more:

Product Manager/Owner: this is the most taxing role in the process
of product development. He represents the stake holders, is responsible to keep
the product development process delivers value to the business ( performs ROI
Analysis), collects requirements from the customers, creates technical
documents, prioritizes them and adds them to the ‘backlog’. Typically one
product is one product manager, but our project being so complex has 2 of these
roles.

Scrum master: Scrum master ensure that the user stories in
the product backlog are developed by the development team without any
impediments. He enforces the scum rules and this role can be taken by anyone in
the project. In our project this role is performed by the QA lead.

Development team: This team builds applications depending on
the project requirements collected. Depending on the scope and complexity of
the project there are 5-8 developers in the team. In our team we have 5
developers and I am one of them.

Quality Assurance team: They ensure that the product is
built as per specifications.

Design team: They ensure that the product development has a Human
centered design approach.

Sprints:

Sprint is a unit of Scrum and has a fixed duration. Normally
each sprint is 4-6 weeks in duration and has a finished product by the end of
it. Sprints are preceded by planning meets where the scope of the sprint is
decided and ‘user stories’ written by the product manager are prioritized
according to importance.

Daily scum meetings:

During the sprint the all team member meet and discuss daily
what they did yesterday, what they plan to do today and by when do they hope to
complete the task allocated. These meetings run for about 15-20 mins and are organized by
the scrum master. Any impediments to the development process are recorded and
worked towards removing them. This is a
great way of tracking project progress and ensuring that the project is on
track.

Sprint review meeting:

When a sprint ends, a review meeting is held. The developed
product is presented to the stake holder. All team members need not be present for
this meeting. This is followed by the sprint retrospective meeting where all
members are present. 3 main questions are asked: what worked well? What did not
work? What should be incorporated into in the next sprint?

The sprints, daily sprint meetings coupled with the final
sprint review meeting makes this process the most utilized across industries which
develop products. The lever of transparency and agility provided by this
framework is unparalleled. I was fortunate enough to join the team when the
sprint was coming to an end and I had the opportunity to attend the daily scrum
meetings, the sprint review and the sprint retrospective. As an example, we use
ruby as a language to build web applications which in itself is fast. Any change
requests made by clients or corrections requested by the product manager are
quickly incorporated and made build ready.

This framework leverages the capabilities, provides a
process to implement the strategy and makes the firm organizationally agile to
adopt new technologies.