The Agile Drupalist - Methodologies & Techniques for Running Effective Drupal Projects
Getting agile with drupal
-
Upload
promet-source -
Category
Technology
-
view
739 -
download
0
description
Transcript of Getting agile with drupal
Getting Agile with Drupal
Twitter: @johnniefoxi
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
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 •
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.
Business Process
Project Models
Waterfall
http://leadinganswers.typepad.com/leading_answers/files/original_waterfall_paper_winston_royce.pdf
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
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.
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
Agile Paradigm Shift
http://www.sterlinghoffman.com/newsletter/articles/article482.html
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
How to “be” agile
• Possession of a certification alone, will not make your team agile
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
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.
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
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
Strategic Agility
• Technical• GIT
• Features
• Vagrant
• Chef
• Github
• Hosting
• Fewer modules
• Continuous integration
• Automated Testing
Strategic Agility
• Operations• Sales
• Contracts
• Communications
• Project Management system
• Customer involvement
• Project plans (not straight jackets)
• Process
• Teamwork
Tactical Agility
• Scrum ceremonies• Daily Scrum meetings
• Sprints• Planning
• Retrospectives
• Backlog
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
Scrum Framework
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.
Scrum/Agile Roles
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.
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/
Sprints
• Sprints are 1 – 2 Weeks
• Product owner attends Sprints
• Past Sprint retrospective
• Next sprint goals
Drupal Challenges
• Project Size
• Dedicated resources
• Separation of project skillsets• Front end
• Developer
• Theming
• Dev-ops
• Infrastructure
The Co-location challenge
• Co-location• Communication
• Coffee machine Conversations
• Shoulder tap
• Non Verbal queues
• Team building events
• Team meetings
• Whiteboards
Multinational challenges
• Time differential
• Good written communication
• Project management system
• Time must overlap
• Language barriers
• Phone call
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
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
For Further study
Exploring Scrum: The Fundamentals. Dan RawsthorneSucceeding with Agile: Software Development with Scrum by Cohn
Extreme Programming by Kent Beck
Questions?www.prometsource.com
Twitter: @johnniefox
@PROMETSOURCE