Saturday, June 18, 2011

What is Scrum?

I always hear 'Scrum' and 'Agile' words in my project since my project is following Scrum methodology. I started working in Scrum project, when I was very new to these terminologies. After 3 years, now I realize the importance for Scrum over other software development methodologies.

Below information I collected from few websites which defines above both things.

Agile Methodology

Agile methodology is an approach to project management, typically used in software development. It helps teams respond to the unpredictability of building software through incremental, iterative work cadences, known as sprints.

Agile development methodology attempts to provide many opportunities to assess the direction of a project throughout the development lifecycle. This is achieved through regular cadences of work, known as sprints or iterations, at the end of which teams must present a shippable increment of work. Thus by focusing on the repetition of abbreviated work cycles as well as the functional product they yield, agile methodology could be described as “iterative” and “incremental"

Agile methodology emphasizes the communication ,collaboration ,rapid exchange of information , teamwork and what is very important the functioning software and flexibility.

The results of “inspect-and-adapt” in this methodology to development greatly reduce both development costs and time to market. Because teams can gather requirements at the same time they’re gathering requirements, the phenomenon known as “analysis paralysis” can’t really impede a team from making progress. And because a team’s work cycle is limited to two weeks (or as defined), it gives stakeholders recurring opportunities to calibrate releases for success in the real world.




Scrum Methodology

Of all the agile methodologies, Scrum is unique because it introduced the idea of “empirical process control.” That is, Scrum uses the real-world progress of a project — not a best guess or uninformed forecast — to plan and schedule releases. In Scrum, projects are divided into succinct work cadences, known as sprints, which are typically one week, two weeks, or three weeks in duration. At the end of each sprint, stakeholders and team members meet to assess the progress of a project and plan its next steps. This allows a project’s direction to be adjusted or reoriented based on completed work, not speculation or predictions.

It’s primary goal is after iteration, provide high business value. Scrum is based on two to four weeks (usually 30 days) iteration called as ‘Sprint’.
A fundamental Scrum principal is that project teams should be self organizing. means that team members don't follow a prescriptive plan or set of tasks, but organize themselves initially based on the goals for the Sprint, and subsequently on a daily basis through daily scrum meetings. Recommended team size is from four to nine members.

Every day at the same time, the project team meets to discuss the project. Members are expected to stand during the entire meeting to encourage short meetings. Meetings are targeted to complete in 10 to 15 minutes. Below is main agenda of that meeting:
1. What things I have done since the last meeting?
2. What is my next plan?
3. Do I have any difficulties while completing my next tasks or current tasks.

Because of mentioned point 3, team can discuss on those issues and can help each other to achieve the goals that shows team work.
When multiple teams are involved in a project, a hierarchy of daily scrum meetings may occur, sometimes referred to as a Scrum of Scrums.
Scrum uses the term "backlog" to refer to a list of items that are related. Three backlogs are defined by the Scrum process: product backlog, release backlog, and sprint backlog.

At the start of each Sprint, the project team breaks down items from the Release Backlog, starting at the top (most important), and adds these into the Sprint Backlog. Once enough items have been selected to fill the Sprint, the Sprint Backlog is locked. Estimates include total time to complete each item, including but not limited to analysis, design, coding, testing, documentation, etc.

There is another item related to Backlogs that is key to Scrum. The Burndown Chart is used to indicate the number of remaining Sprint Backlog items yet to be completed in the current Sprint. A daily record is maintained showing the team's progress in achieving the goal of the Sprint.

At the end of a Sprint, the team meets to give demo to product management teams ans any interested stakeholders to demonstrate what work has been completed, and to evaluate priorities for the next Sprint. In addition, any outstanding roadblocks are also discussed, as well as their impact and possible solutions.

The Roles of Scrum

Scrum has three fundamental roles:
1. Product Owner
2. ScrumMaster
3. team member

Product Owner:
In Scrum, the Product Owner is responsible for communicating the vision of the product to the development team. He or she must also represent the customer’s interests through requirements and prioritization. Because the Product Owner has the most authority of the three roles, it’s also the role with the most responsibility. Product Owners must be available to answer questions from the team.

ScrumMaster:
The ScrumMaster acts as a media between the Product Owner and the team. The ScrumMaster does not manage the team. Instead, he or she works to remove any issues that are obstructing the team from achieving its sprint goals. In short, this role helps the team remain creative and productive, while making sure its successes are visible to the Product Owner.

Team Member:
In the Scrum methodology, the team is responsible for completing work. Ideally, teams consist of seven cross-functional members, plus or minus two individuals. For software projects, a typical team includes a mix of software engineers, architects, programmers, analysts, QA experts, testers, and UI designers.
Each sprint, the team is responsible for determining how it will accomplish the work to be completed. This grants teams a great deal of autonomy, but, similar to the Product Owner’s situation, that freedom is accompanied by a responsibility to meet the goals of the sprint.

What are the benefits of the SCRUM methodology?

The benefits are on both sides. The client is happy because they received what they needed and expected. For developers the benefits of taking a part in Scrum methodology are more subjective – it might be his/her motivation and satisfaction of making the work done, in an efficient fashion.

This is nice site to look for Scrum information.Site: www.scrummethodology.org

List of well known Agile techniques other than Scrum:-

1. Extreme Programming (XP) :-

Extreme Programming (XP) is one of the more well known Agile methodologies. It is a programmer-centric methodology that emphasizes technical practices to promote skillful development through frequent delivery of working software. Technical practices e.g. code reviews.
One of the characteristic distinctions between XP and other methodologies is its cycle time and level of service. XP recommends very short iterations between one and four weeks. XP is also a very low service methodology. Minimal artifacts in an XP project include story cards, code, and unit tests.

2. Lean Software Development :-

Lean is a methodology that aims to trim the fat from the software process, starting with requirements, and including how business looks at the systems they request. Lean is similar to Scrum in that it focuses much more on the project management aspects of software development rather than the technical ones, specifically targeting the cost and ROI attributes of a project. Lean pays a good deal of attention to gathering the "right" requirements. Requirements are measured based on their impact to the business, and must be defined in clear, complete, and verifiable ways. Incomplete, missing, wrong, unverifiable, and conflicting requirements are filtered out during the requirement process.
Due to this focus on requirements, the Customer plays an absolutely vital role in the Lean process. Based on a wealth of quantitative metrics, Lean realizes that many projects fail due to their configuration and management. Projects with a silo'd, isolated, or "not my problem" attitude will face swift changes when Lean steps in. Lean attempts to also address resource issues such as the team not having the right skill sets, not enough team members, or too much turnover. In this sense Lean is very "root cause"-oriented.

3. Feature Driven Development (FDD) :-

The center of FDD is domain model. Creating domain model is foundation step for FDD, which requires collecting domain knowledge from all domain experts. A small set of features are identified for a team to work on for a period of time recommended to last no more than two weeks. Once the initial set of features is delivered, another set is tackled. Multiple teams can work in parallel on different sets of features, with all activity being tracked on a per feature basis.

You can find more about this at link devx

One final note is that since Scrum focuses on the project management aspects of a project and specifies no technical practices, it integrates well with other Agile methodologies. It is commonly combined with XP, but will work with other approaches as well.

3 comments:

  1. Something I found useful on below link:
    http://www.mountaingoatsoftware.com/blog/stories-epics-and-themes

    Difference between “user stories”, “epics” and “themes." ::

    user story :
    A user story is simply something a user wants.

    Epic:
    A scrum epic is a large user story. There's no magic threshold at which we call a particular story an epic. It just means “big user story.” So, “epic” is just a label we apply to a large story. Calling a story an epic can sometimes convey additional meaning.

    Theme:
    “theme” is a collection of user stories. We could put a rubber band around that group of stories I wrote about monthly reporting and we'd call that a “theme.” Sometimes it's helpful to think about a group of stories so we have a term for that.

    ReplyDelete
  2. http://www.mddionline.com/article/fda-endorses-agile-what-does-mean

    ReplyDelete
  3. Very well written article it is,Basically this is the way how things can be learn source always needs to be a correct one.
    This is how it can be taken to another level because it has that outcome, benefits of agile methodology actually lets us know.

    ReplyDelete