Getting agile with drupal

34
Getting Agile with Drupal Johnnie @ promethost.com Twitter: @johnniefoxi

description

Waterfall, Agile, Extreme Programming, Water-gile In this session we will discuss agile strategies that can help you get to done; efficiently, quickly and happier. I will cover the Scrum Framework concepts and some of the lessons learned from using agile strategy to manage a multinational distributed team. that does Drupal every day. This session is for Managers and team members that want to learn more about agile strategies and how to apply them to Drupal. Topics Covered Where we all start, Waterfall. Why agile is wrong, Agility is right. Scrum Framework basics What actions are Agile What actions are not Agile Lessons learned working with agile Challenges of Scrum for small teams Agility you can implement now

Transcript of Getting agile with drupal

Page 2: Getting agile with drupal

About Promet

• Founded in 2003• In 2008, switched focus to open source software and Drupal

• Team member locations in the US • Chicago• Texas• Philippines• Europe• Mexico• Tennessee• Ohio

• Chicago• Wisconsin• California• Mississippi• New York• Rhode Island

Page 3: Getting agile with drupal

About Me

Project Strategist

Certified Scrum Master

Drupal/Custom Development/IOS/C#/PHP

Projects exceeding 10,000 hours

Project Strategist

Recovering Developer

husband • geek •

photographer • traveler •

motorcyclist • kayaker •

traveler•entrepreneur •

Page 4: Getting agile with drupal

Lies about Agile

• It is a silver bullet that fixes all problems

• Agile is the right approach for all projects

• One Agile framework is good for all the projects you do.

• Agile will stop you from making bad decisions

• Agile will immediately show results

• All clients love Agile

• Your love life will improve if you adopt agile.

Page 5: Getting agile with drupal

Business Process

Page 6: Getting agile with drupal

Project Models

Page 8: Getting agile with drupal

History of Waterfall

•The first formal description of the waterfall model is often cited as a 1970 article by Winston W. Royce, though Royce did not use the term "waterfall" in this article.

•Royce presented this model as an example of a flawed, non-working model.

Waterfall model -Wikipedia, the free encyclopedia : taken from - http://en.wikipedia.org/wiki/Waterfall_modelAuthor

Page 9: Getting agile with drupal

But Wait… There’s more!

•“I believe in this concept, but the implementation described above is risky and invites failure.”

•“The development process has returned to the origin and one can expect up to a 100-percent overrun in schedule”

1970. Royce, Winston (1970), "Managing the Development of Large Software Systems", Proceedings of IEEE WESCON 26 (August): 1–9.

Page 10: Getting agile with drupal

Agile Is

• Agile software development is a group of software development methods based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams.

• It promotes adaptive planning, evolutionary development and delivery, a time-boxed iterative approach, and encourages rapid and flexible response to change. It is a conceptual framework that promotes foreseen interactions throughout the development cycle.

Agile software development - Wikipedia, the free encyclopedia : taken from - http://en.wikipedia.org/wiki/Agile_software_development

Page 11: Getting agile with drupal

Agile Paradigm Shift

http://www.sterlinghoffman.com/newsletter/articles/article482.html

Page 12: Getting agile with drupal

Alphabet Soup

• Agile Modeling

• Agile Unified Process (AUP)

• Dynamic Systems Development Method (DSDM)

• Essential Unified Process (EssUP)• Exia Process (ExP)

• Extreme Programming (XP)

• Feature Driven Development (FDD)

• Kanban (development) *there is some argument about this one

• Scrum

• Velocity tracking

Page 13: Getting agile with drupal

How to “be” agile

• Possession of a certification alone, will not make your team agile

Page 14: Getting agile with drupal

Agility

• In general, agility is defined as "the ability of a [system] to rapidly respond to change by adapting its initial stable configuration”

• agility or nimbleness is the ability to change the body's position efficiently, and requires the integration of isolated movement skills using a combination of balance, coordination, speed, reflexes, strength, and endurance

Agility - Wikipedia, the free encyclopedia : taken from - http://en.wikipedia.org/wiki/Agility http://creativecommons.org/licenses/by-sa/3.0/

taken from - http://farm9.staticflickr.com/8440/7766491880_f019084b32_n.jpg Author: http://creativecommons.org/licenses/by-nc-nd/2.0/deed.en

Page 15: Getting agile with drupal

The Agile Manifesto

• Individuals and interactions over processes and tools

• Working software over comprehensive documentation

• Customer collaboration over contract negotiation

• Responding to change over following a plan

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

Agile software development - Wikipedia, the free encyclopedia : taken from - http://en.wikipedia.org/wiki/Agile_Manifesto#Agile_Manifestohttp://creativecommons.org/licenses/by-sa/3.0/

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

Page 16: Getting agile with drupal

Agile Principles

1. Customer satisfaction by rapid delivery of useful software

2. Welcome changing requirements, even late in development

3. Working software is delivered frequently (weeks rather than months)

4. Working software is the principal measure of progress

5. Sustainable development, able to maintain a constant pace

6. Close, daily cooperation between business people and developers

7. Face-to-face conversation is the best form of communication (co-location)

8. Projects are built around motivated individuals, who should be trusted

9. Continuous attention to technical excellence and good design

10. Simplicity—the art of maximizing the amount of work not done—is essential

11. Self-organizing teams

12. Regular adaptation to changing circumstances

Page 17: Getting agile with drupal

Strategic agility

taken from - http://www.flickr.com/photos/coneee/2465075949//Author: http://www.flickr.com/photos/coneee/ http://creativecommons.org/licenses/by-nc-nd/2.0/deed.en

taken from - http://www.flickr.com/photos/coneee/2465075949//Author: http://www.flickr.com/photos/coneee/ http://creativecommons.org/licenses/by-nc-nd/2.0/deed.en

Page 18: Getting agile with drupal

Strategic Agility

• Technical• GIT

• Features

• Vagrant

• Chef

• Github

• Hosting

• Fewer modules

• Continuous integration

• Automated Testing

Page 19: Getting agile with drupal

Strategic Agility

• Operations• Sales

• Contracts

• Communications

• Project Management system

• Customer involvement

• Project plans (not straight jackets)

• Process

• Teamwork

Page 20: Getting agile with drupal

Tactical Agility

• Scrum ceremonies• Daily Scrum meetings

• Sprints• Planning

• Retrospectives

• Backlog

Page 21: Getting agile with drupal

Scrum

• The word "scrummage" is a modification of "scrimmage" (the form of the word previously used in rugby and still used in American and Canadian football), which in turn derives from or is a reflex of "skirmish". :

Scrum (rugby) - Wikipedia, the free encyclopedia : taken from - http://en.wikipedia.org/wiki/Scrum_(rugby)Author

Page 22: Getting agile with drupal

Scrum Framework

Page 23: Getting agile with drupal

Scrum Principles

• Focus - Because we focus on only a few things at a time, we work well together and produce excellent work. We deliver valuable items sooner.

• Courage -Because we are not alone, we feel supported and have more resources at our disposal. This gives us the courage to undertake greater challenges.

• Openness - As we work together, we practice expressing how we're doing and what's in our way. We learn that it is good to express concerns so that they can be addressed.

• Commitment - Because we have great control over our own destiny, we become more committed to success.

• Respect - As we work together, sharing successes and failures, we come to respect each other and to help each other become worthy of respect.

Page 24: Getting agile with drupal

Scrum/Agile Roles

Page 25: Getting agile with drupal

Backlog

• Conceptually, the Backlog is very simple; it is merely a list of Items that “represents everything that anyone interested in the product or process has thought is needed or would be a good idea...”

• The Backlog is used both to prioritize the work, and to enable understanding of the work being done.

Rawsthorne, Dan; Shimp, Doug (2011-06-29). Exploring Scrum: the Fundamentals: People, Product, and Practices (Kindle Locations 1882-1884). . Kindle Edition.

Page 26: Getting agile with drupal

Daily Scrum

• Daily Scrum• Stand up is no more

than 15 minutes• 3 Questions

• What did I/you do yesterday

• What are you doing today

• What are my roadblocks

http://thedailystandup.com/

Page 27: Getting agile with drupal

Sprints

• Sprints are 1 – 2 Weeks

• Product owner attends Sprints

• Past Sprint retrospective

• Next sprint goals

Page 28: Getting agile with drupal

Drupal Challenges

• Project Size

• Dedicated resources

• Separation of project skillsets• Front end

• Developer

• Theming

• Dev-ops

• Infrastructure

Page 29: Getting agile with drupal

The Co-location challenge

• Co-location• Communication

• Coffee machine Conversations

• Shoulder tap

• Non Verbal queues

• Team building events

• Team meetings

• Whiteboards

Page 30: Getting agile with drupal

Multinational challenges

• Time differential

• Good written communication

• Project management system

• Time must overlap

• Language barriers

• Phone call

Page 31: Getting agile with drupal

Top Learning

• 10. Simplicity--the art of maximizing the amount of work not done--is essential.

• Avoid Complexity

• Offload complexity– Acquia/ Pantheon / Github /

• Automate complex tasks• Vagrant

Page 32: Getting agile with drupal

Top 10 ways you know your team isn’t agile

1. There is no product backlog

2. Lots of up front Requirements

3. No team input

4. The project is fixed bid

5. No daily stand ups

6. No retrospectives

7. The customer isn’t involved

8. Developers not involved in determining who works on project

9. No sprints

10. No telling it like it is

Page 33: Getting agile with drupal

For Further study

Exploring Scrum: The Fundamentals. Dan RawsthorneSucceeding with Agile: Software Development with Scrum by Cohn

Extreme Programming by Kent Beck

Page 34: Getting agile with drupal

Questions?www.prometsource.com

[email protected]

Twitter: @johnniefox

@PROMETSOURCE