April 26, 2014

Agile

INTRODUCTION TO AGILE – One Day Course

Course aim
This course will introduce the concepts and benefits of Agile Delivery and is aimed at all those who want to know more about what Agile is, its Values, Principles and Practices.

Agile is an alternative way of managing project and product delivery where customer involvement is key. This has been demonstrated to lead to better quality and earlier deliverables. However Agile is not just about a process, but is about looking afresh at the way we do things, so this event will benefit those responsible for culture change as well as process change in organizations.

Course Benefits
At the end of this course attendees will understand the difference between an Agile and a traditional project delivery culture. In addition we aim to help attendees to understand how Agile could make a posi-tive improvement in successful project delivery. In particular they will understand that Agile is more than a process – it is in fact a culture change in the way that it can be brought to motivate people and interact with the Business, and Customers .

Course Scope: The course will cover the following Agile Values, Principles and Practices.

  • What is Agile ?
  • Agile Manifesto ( Values, Principles and Practices )
  • Typical Agile Methods & Roles
  • User Stories
  • Project Lifecycle structure
  • Introduction to Agile Planning
  • Introduction to Agile Estimating
  • Prioritisation
  • Quality
  • Agile & its Benefits compared to traditional project delivery
  • Retrospectives

Delivery Method

  • Presentation
  • Practical exercises
  • Hand-outs

Presenter
Harry, Agile Advocate
Harry is a certified Scrum Master with over 8 years of experience in Coaching/Mentoring/Facilitating product development/delivery teams. He has extensive agile experience in various Agile practices including Scrum, Lean, XP, and DSDM. Having worked as a change agent and Scrum Master, he has been successful in managing the delivery of agile projects, while at the same time transferring knowledge to the team so that they eventually were able to self organise. Most recently he has been running workshop on Agile topics such as Planning & Estimation and User Story writing.

What Is Agile?

What’s all the buzz about Agile? We hear the word “Agile” every place these days.

Agile is all about building software incrementally, typically using short iteration of 1-4 weeks, to keep development aligned with changing business needs.

  • focus on customer value
  • deliver early & often
  • reduce batch size
  • limit work-in-progress
  • pull quality forward
  • inspect & adapt
  • collaborative culture

Agile  Manifesto for Agile Software Development

We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

That is, while there is value in the items on the right, we value the items on the left more.

 

Where Did Agile Come From?

In 1970, Dr. Winston Royce presented a paper entitled “Managing the Development of Large Software Systems,” which criticized sequential development. He asserted that software should not be developed like an automobile on an assembly line, in which each piece is added in sequential phases. In such sequential phases, every phase of the project must be completed before the next phase can begin. Dr. Royce recommended against the phase based approach in which developers first gather all of a project’s requirements, then complete all of its architecture and design, then write all of the code, and so on. Royce specifically objected to this approach due to the lack of communication between the specialized groups that complete each phase of work.

It’s easy to see how the “waterfall” methodology is far from optimized compared to agile methodology. First of all, it assumes that every requirement of the project can be identified before any design or coding occurs. Put another way, do you think you could tell a team of developers everything that needed to be in a piece of software before it was up and running? Or would it be easier to describe your vision to the team if you could react to functional software? Many software developers have learned the answer to that question the hard way: At the end of a project, a team might have built the software it was asked to build, but, in the time it took to create, business realities have changed so dramatically that the product is irrelevant. In that scenario, a company has spent time and money to create software that no one wants. Couldn’t it have been possible to ensure the end product would still be relevant before it was actually finished?

 What is Scrum?

Scrum is the most popular way of introducing Agility due to its simplicity and flexibility. Because of this popularity, many organizations claim to be “doing Scrum” but are not doing anything close to Scrum’s actual definition. Scrum emphasizes empirical feedback, team self management, and striving to build properly tested product increments within short iterations. Doing Scrum as it’s actually defined usually comes into conflict with existing habits at established non-Agile organizations.

Scrum has three roles: Product Owner, Team, and Scrum Master. The responsibilities of the traditional project manager role are split up among these three Scrum roles.

Scrum has five meetings: Backlog Grooming (aka Backlog Refinement), Sprint Planning, Daily Scrum (aka 15-minute stand-up), the Sprint Review Meeting, and the Sprint Retrospective Meeting.

Many books and classes are available from a variety of competing sources of varying accuracy and quality.  One place to start would be our basic  Scrum Training , which uses an entertaining approach to cover the most popular way of introducing Agile to teams.

 Why Agile?

Agile development methodology provides 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 potentially shippable product inclemently. By focusing on the repetition of abbreviated work iterations as well as the functional product they yield, agile methodology is described as “iterative” and “incremental.”

In waterfall, development teams only have one chance to get each aspect of a project right. In an agile paradigm, every aspect of development — requirements, design, etc. — is continually revisited throughout the lifecycle. When a team stops and re-evaluates the direction of a project every two weeks, there’s always time to steer it in another direction.

The results of this “inspect-adapt and Deliver” approach to development greatly reduce both development costs and time to deliver. Because teams can develop software at the same time they’re gathering requirements, the phenomenon known as “analysis paralysis” is less likely to hinder a team from making progress and deliver on time. And because a team’s work in 2-4 weeks iteration, it gives stakeholders recurring opportunities to calibrate releases for success in the real world. Agile development methodology helps companies build the right product. Instead of committing to market a piece of software that hasn’t even been written yet, agile empowers teams to continuously replan their release to optimize its value throughout development, allowing them to be as competitive as possible in the marketplace.

Leave a Reply