adopting agile via continuous improvement by rasmeet @ ahmedabad java meetup

51
ADOPTING AGILE VIA CONTINUOUS IMPROVEMENT Nov 29, 2014 - Rasmeet Devji

Upload: ahmedabadjavameetup

Post on 05-Jul-2015

413 views

Category:

Software


0 download

DESCRIPTION

http://www.meetup.com/Ahmedabad-Java-Meetup-Group/events/218730172/ Topics covered in session: - Practically used Roles & Processes & Tools - Practical learning of Agile practices and value additions P.S.: If you missed to attend http://2014.agileindia.org/ @Banglore then definitely don't miss this one, Mr. Rasmeet will share some of the curated content just for us!

TRANSCRIPT

Page 1: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

ADOPTING AGILE VIA

CONTINUOUS

IMPROVEMENT

Nov 29, 2014

- Rasmeet Devji

Page 2: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Agenda

Overview

Adopting Agile via Continuous

Improvement

Q&A

Page 3: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Agile India 2014 Conference

Asia's largest & premier international

conference on Agile and Lean Software

Development methods

LEARN...NETWORK...EXPLORE

Some of us had the opportunity to attend this

conference

Page 4: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Agile Principles

There are 12 Agile Principles

They represent the characteristics of an Agile

process

Agile Principles

Page 5: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Agile Practices

These are activities that are used to manifest

or implement the Agile values and principles

There are nearly 40 practices

Some come from Agile while others come from

XP

Agile Practices - http://www.noop.nl/2009/04/the-big-

list-of-agile-practices.html

Page 6: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Prioritized Product Backlog

Page 7: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Short Iterations

Page 8: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Co-located Teams

Page 9: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Planning Poker

Page 10: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Team Velocity

Page 11: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Stabilization Iterations

What are they?

Are they required?

Pros and Cons?

Page 12: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Emergent Design

Page 13: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Informal Design

Page 14: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Design Inspections

Page 15: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Document Decisions

“Working

Software over

comprehensive

documentation

” The Agile

Manifesto

Page 16: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Test-Driven Development Unit

Testing

Page 17: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Pair Programming

Page 18: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Collective Code Ownership

Page 19: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Code Inspections

Page 20: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

System Metaphor

Page 21: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Continuous Integration

Page 22: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Potentially Shippable Features by end of each

Iteration

Page 23: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Whole Multidisciplinary Team with One Goal

Page 24: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Anything Else?

Page 25: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Value Add To Customer

Always question the

value add to the

customer in what we

do

Page 26: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Customer Involvement

Real customer

involvement is

required

Page 27: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Continuous Feedback Loop

Build a Continuous

Feedback Loop

Page 28: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Continuous Course

Correction

Continuous

Course Correction

through

Continuous

Feedback

Page 29: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Introduce Improvements In

Parts

Introduce

Changes /

Improvements

part by part

One At a Time

Page 30: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Multiple Teams Adopting

Agile

Change happens

side-in across the

hierarchy and NOT

top down or bottom

up

Intel’s case study

Page 31: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Don’t Need To Code To Test

Create wireframes

/ mock ups /

Presentations to

present your

solution to the

Customer.

Once accepted,

can build

iteratively

Page 32: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Analysis before you Act…

Life is too short to

build something

nobody wants!!!

Page 33: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Processes

Keep them as Lean

as possible

They should not

block deliverables

and instead should

support and

enable them

Page 34: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Processes

Constantly tweak

them until you get

best deliverables

They differ from

one project to

another

Page 35: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Planning

Do not plan for a very

long time

Page 36: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Don’t Be A Feature Pusher

Vertical Slicing of

features could help

Page 37: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Quality Of Tests

The quality of test

cases is equally

important as the

quality of code

Page 38: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Simple Design

Subtle design

for ease of

change

Tests should

Pass

Done! is when

the code is

verifiable and

shippable

Page 39: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Simple Design

SOLID design

principles

No duplication

Do the Simplest

Thing that Could

Possibly Work

Page 40: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Great Teams Deliver in Crisis Situation

A team is a great team

when it not only follows

the processes and best

practices but more

importantly delivers in

crisis situation

Page 41: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Pair Programming

Pair up a strong

team member +

another who has

minimal

understanding

Should happen on

a rotation basis

That way everyone

learns more about

the system

Page 42: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

T Professionals

Page 43: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Trunk Based Development

A technique for

making a large-scale

change to a software

system in gradual way

that allows you to

release the system

regularly while the

change is still in-

progress.

Page 44: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

How We Adopted Agile

Green Field Project

Team size ranged

between 1 – 10 on

need basis

Started with

Kanban

Moved to Scrum

2 weeks Iterations

Page 45: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

How We Adopted Agile

Introduced tools like Jenkins, Wiki and JIRA

one at a time

Introduced Code Reviews through Crucible,

Code scans through Checkstyle, Sonar and

Security Checks through HP Fortify one at a

time

Increased Code Coverage gradually from 30%

to 75%

Introduced CI through Jenkins + Automated

Tests + Puppet based deployments

Page 46: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Few practices that mattered the

most...

Personal Integrity and Consistency

Co-located Team Members

Adaptability to changes

One at a time

Quick Response

Continuous Feedback and Course Correction

Self Organized and Self Managed Team

Page 47: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Agile a Silver Bullet?

Page 48: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Are we done yet? Almost!

User-Driven

Development is

the Agile

Development practi

ces revised to

incorporate the

best Lean

Startups principles

Watch This

Page 49: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Q & A

Page 50: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Resources

Agile Manifesto – http://agilemanifesto.org/

Agile Principles -

http://agilemanifesto.org/principles.html

Agile Practices - http://www.noop.nl/2009/04/the-big-

list-of-agile-practices.html

Agile In a Nut Shell - http://www.agilenutshell.com/

Agile India 2014 Conf - http://2014.agileindia.org/

Martin Fowler on Agile -

http://martinfowler.com/tags/agile.html

UDD - http://www.userdrivendev.com/p/udd-

phases.html

Page 51: Adopting agile via continuous improvement By Rasmeet @ Ahmedabad Java Meetup

Adopting Agile via Continuous

Improvement

Thank You!!