Software Engineering Agile methodology SCRUM

21
Agile Development Introduction to SCRUM

description

Software Engineering Agile methodology SCRUM

Transcript of Software Engineering Agile methodology SCRUM

Page 1: Software Engineering  Agile methodology SCRUM

Agile Development

Introduction to SCRUM

Page 2: Software Engineering  Agile methodology SCRUM

Agile software development

Agile software development refers to a group of software

development methodologies based on iterative/incremental development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams. Examples of agile methods include Extreme Programming (XP) and Scrum.

Agile software development focuses on keeping code

simple, testing often, and delivering functional bits of the application as soon as they're ready

The goal of ASD is to build upon small client-approved

parts as the project progresses, as opposed to delivering one large application at the end of the project.

Page 3: Software Engineering  Agile methodology SCRUM

Why Agile

Preference to Individuals and interactions over

processes and tools

Working software over comprehensive

Documentation

Customer collaboration over contract

Negotiation

Responding to change over following a

plan

Page 4: Software Engineering  Agile methodology SCRUM

SCRUM

Scrum is an agile, lightweight process to manage and control development work

Scrum is a wrapper for existing engineering practices that iteratively and incrementally develop system products when requirements are rapidly changing

Page 5: Software Engineering  Agile methodology SCRUM

Why SCRUM

Scrum is a process that controls the chaos of conflicting interests and needs

Scrum is a way to improve communications and maximize co-operation

Scrum is scalable from single projects to entire organizations

That’s the reason companies like IBM, Microsoft and Xerox successfully address the failings of software development Process through SCRUM

Page 6: Software Engineering  Agile methodology SCRUM

SCRUM Terminology

Scrum is based on what is called a Sprint – a focused effort

for a 30-day period toward fixed goals. A Product Owner compiles all the changes planned for the

product and prioritizes the possible functionalities. The result of the Product Owner’s work is a Product Backlog

– a to-do list that is constantly reprioritized.

Before each Sprint, the highest prioritized goals are transferred to a Sprint Backlog.

Page 7: Software Engineering  Agile methodology SCRUM

SCRUM Terminology

Together with a user, the project members form a Scrum

Team consisting of 5–9 people. During discussions with the Product Owner, the goal of the Sprint is determined and the prioritized functionality is broken down into detailed tasks. The team is self-organized and the members have a joint responsibility for the results.

The Scrum Master coaches the development team, removes any possible impediments and constantly works to ensure that the team has the best possible circumstances for realizing the goals fixed for the Sprint.

Page 8: Software Engineering  Agile methodology SCRUM

SCRUM Flow

Page 9: Software Engineering  Agile methodology SCRUM

How Does SCRUM Work

Small teams (< 10 people)

A series of Sprints (1 - 4 weeks)

Visible, usable increments

Time-boxed

Page 10: Software Engineering  Agile methodology SCRUM

Sprint Rules

Total focus—no unwanted diversion

NO interruptions/changes from the outside

New work may be uncovered by the team

Very XP-ish [Concepts of Extreme programming if required ]

Page 11: Software Engineering  Agile methodology SCRUM

What Happens During a Sprint?

Frequent, short Scrum Meetings

Each team produces a visible, usable increment

Each increment builds on prior increments

Clearly defined deliverables and responsibilities

Each team member buys into the assignment

Page 12: Software Engineering  Agile methodology SCRUM

What’s a Scrum Meeting?

Short (15 - 30 min) frequent meetings, facilitated by the Scrum Master

All team members attend—even teleworkers

One activity – Scrum Master asks each attendee 3 questions

Page 13: Software Engineering  Agile methodology SCRUM

3 Questions

1. What have you completed (relative to the Backlog) since the last Scrum meeting?

2. What got in your way of completing this work?

3. What will you do between now and the next Scrum meeting?

Page 14: Software Engineering  Agile methodology SCRUM

End of a Sprint

Status meeting with all stakeholders.

Increments are delivered.

Surprises are reported.

ANYTHING can be changed, work can be added, eliminated, re-prioritized.

New estimates and team assignments are made for the next Sprint.

The Sprint/project can be cancelled.

Page 15: Software Engineering  Agile methodology SCRUM

Common Questions and Answers

Where does the word Scrum come from?

Scrum is a rugby term for the close-knit shoulder-to-shoulder formation a rugby team forms to jointly move the ball forward. The word was first used by Takeuchi and Nonaka in a famous article published in the Harvard Business Review in which they described the most successful product development projects in Japan.

Page 16: Software Engineering  Agile methodology SCRUM

Isn’t there a significant risk that Scrum runs wild with everyone doing as they like?

Experience from a multitude of various projects shows

that this does not happen. The reason is that the principles are easy to understand and the team has visible deliveries every 30 days. The shared responsibility for all parts of the code also makes the Scrum Team’s members more motivated to adhere to set routines and rules.

Page 17: Software Engineering  Agile methodology SCRUM

Can Scrum only be used for smaller projects?

No, the method can be up-scaled by putting together several smaller projects to form one larger. A so-called Scrum of Scrums can include hundred of programmers, organized in dozens of Scrum Teams.

Is Scrum a method just for software development?

Not at all! The method can be adapted for all different types of projects – for instance newspaper production or medical engineering development.

Page 18: Software Engineering  Agile methodology SCRUM

How do you start?

A common way of starting is to send one or more people on a

course to become a certified Scrum Master. Many companies offer these types of courses nowadays.

Another alternative is to start a pilot project and let someone with experience from a previous Scrum project serve as mentor for the Team, Scrum Master and Product Owner.

Page 19: Software Engineering  Agile methodology SCRUM

What happens if you don’t finish on time?

Scrum does not allow a delivery date to be altered! If you are

behind, you delete items in the Scrum Team’s Sprint Backlog and if you are ahead you can ask the Product Owner for more tasks.

Does a Sprint have to be 30 days?

Not necessarily, but it should be the same length throughout the entire project. Plus, experience shows that 30 days (about 1,000 effective hours for an experienced group) is a good compromise between a comfortable work pace and adaptability.

Page 20: Software Engineering  Agile methodology SCRUM

How does Scrum and CM [Configuration Management]

mix?

Well functioning CM routines are needed in a Scrum project, but normally there is no dedicated CM role. The operative CM process is handled by the self-organized development team. To slim the CM process, continuous integration and automatic tests are used to automate as much as possible.

Page 21: Software Engineering  Agile methodology SCRUM

Thanks

If U really

gone through