Implementing Agile : Do's and Don'ts

Post on 30-Jun-2015

1.649 views 0 download

Tags:

Transcript of Implementing Agile : Do's and Don'ts

Implementing Agile Do's and Don'ts

Anay Narendra KamatPresentSoft Technologies

http://www.presentsoft.co.in

Takeaway

• Learning from mistakes• Confidence from success stories

All the teams and people mentioned in this talk are real and as such, could resemble to the people living or dead and the teams existing in organizations.

The Prime Directive

Regardless of what we discover, we understand and truly believe that everyone did the best job they could, given what they knew at the time, their skills and abilities, the resources available, and the situation at hand.

Why to be Agile?

What does it take to be Agile?

Agile manifesto:Individuals and interactions over processes and tools

Working software over comprehensive documentationCustomer collaboration over contract negotiation

Responding to change over following a plan

Do perfectly agile teams really exist?

TEAM A

• BA formed the list of stories based on the requirements given by the client only.

• PM managed the team without getting into micro-management.

• Team provided and received updates during stand-ups.• Every member of the team was allowed to communicate

with the client• Dev followed PP, good design pattern, TDD and Continuous

Integration• QAs used automation tools to run tests• Deployment was automated as well

TEAM B

• Product owner had delegated the responsibility of requirements and communication to one of his trusted person

• BA formed the stories based on the requirements given by the client only

• Only PM and BA were allowed to communicate with the client

• Teams shared updates through stand-ups• Team followed PP, good design patterns, TDD and CI• QAs used automation tools• Deployment was automated

TEAM C• Team members had attended SCRUM trainings• Each team managed the leave requests of their members• Requirements/Stories were written by a different team• Estimates were done in ideal days• Duration of sprint was 3 weeks• Long stand-ups• Code reviews were done by members of another team.• Team did not follow TDD, PP, CI• QA members belonged to a different team• Requirements changed frequently• Team never delivered all the stories planned in the sprint.

TEAM D• All the stories were written and updated in project management tool

directly by the client.• Team relied heavily on email communication• Only few senior members were allowed in client call updates• Estimates were done in story points mapped to idea days• Team did not follow TDD, code was completely procedural, CI was not

used• Team members were divided in specialized groups• QA members belonged to a different team• Deployment procedure was separate for production and stage

environments• Only few people were able to handle deployment activities on

production

TEAM E

• Client had no time to give or finalize requirements. BA had to judge most of the requirements on his own.

• Only PM, BA and Architect was allowed to communicate directly with the client

• Long stand-ups. Stand-up was driven by the Project Manager.• Development used to start for the stories which were not

completely defined• Design decisions were taken completely by the architect• No strict code reviews. OO was not followed since

management was of the opinion that it was too advanced for the team members.

Quotes

Quotes

• It’s been 3 months since we started following scrum. We don’t see any improvement, but situation has definitely become worst – A team member

• On estimates done using story points over the scale of 2 - 3 - 5 - 8 (and 13), team of 12 people cannot achieve velocity of more than 10 points – Scrum expert of one organization

• Let’s start with the estimates, 2 point is for the story taking 1.5 days, 3 point for the stories taking 4 days … – A team lead from one organization

• We learnt a great thing. Remember it, and you can implement in your next project . – PM

Do’s and Don’ts

Focus Areas

• Project planning• Project management• Development• Quality analysis• Documentation• Skill enhancements

Project planning

Duration of sprint matters

Try to have high bus number

Have a story wall

Involve entire team in estimation meetings

Follow continuous integration

Design the deployment strategy well in advance.

• And make it scripted

Project management

Do not micro-manage

• Ensure that team understands the goal and the big – picture and is not dependent on stories.

• Be with the team

Encourage innovative ideas

Ensure learning from “Yesterday’s weather” is implemented

Development

Do not design too much in detail

Reuse, Reuse and Reuse

Be responsible

• Ensure you are not breaking existing features• Use automated unit tests. It helps a lot.• Every feature needs to be “Deployable”

Quality analysis

Put efforts to understand real user behavior

Reduce manual work through automation tools

Encourage test automation right from the beginning

Do not use “Number of defects identified” as matrix to measure

QA effectiveness

Documentation

Documentation

• Prefer following over text based documentation/comments:– Automated Unit Tests– Automated Functional Tests– Deployment scripts– Story description and discussions from project

management tool

Example : Using Cucumber

Skill enhancements

Skill enhancements

• Pair programming helps• Encourage training within the team• Encourage and reward implementation of

innovative ideas• Discourage forming of specialized groups

within the team

Questions ……

Thank you

ContactEmail: anay@presentsoft.co.in

Twitter: http://twitter.com/kamatanay