650 likes | 980 Views
“Never Have Your Dog Stuffed is really advice to myself, a reminder to myself not to avoid change or uncertainty, but to go with it, to surf into change.” Alan Alda. Agile. Making it Work for You. Presenters. Agile – Making it Work for You Gary Wunrow – Program Manager, Sentry Insurance
E N D
“Never Have Your Dog Stuffed is really advice to myself, a reminder to myself not to avoid change or uncertainty, but to go with it, to surf into change.” Alan Alda Agile Making it Work for You
Presenters • Agile – Making it Work for You • Gary Wunrow – Program Manager, Sentry Insurance • Q&A Session • Jim Stitzlein – Sr. VP & CIO, Sentry Insurance • Jeff Sanner – IT Director of Digital Interactive, Sentry Insurance • Gary Wunrow
Agenda • What is Agile? • Definition • Core Principles • Why Agile? • Origin and Evolution • How is Agile done? • Popular Methods • When should Agile be used and Who should use it? • Implementation Options • Considerations • Q&A with Gary, Jim and Jeff
What is Agile? “It is in the admission of ignorance and the admission of uncertainty that there is a hope for the continuous motion of human beings in some direction that doesn't get confined, permanently blocked, as it has so many times before in various periods in the history of man.” Richard P. Feynman
What is Agile? • Merriam-Webster Definition • 1: marked by ready ability to move with quick easy grace <an agile dancer> • 2: having a quick,resourceful and adaptable character <an agile mind>
What is Agile? • Definition of Agile Software Development • Agile software development is a group of software development methodologies based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross functional teams.
What is Agile? • Agile Values (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 interactionsover process and tools • Working softwareovercomprehensive documentation • Customer collaborationover contract negotiation • Responding to changeover following a plan • That is, while there is value in the items on the right, we value the items on the lefteven more • Source: www.agilemanifesto.org
What is Agile? Our highest priority is to satisfy the customerthrough early and continuous deliveryof valuable software Source: www.agilemanifesto.org
What is Agile? Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. Source: www.agilemanifesto.org
What is Agile? Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. Source: www.agilemanifesto.org
What is Agile? Business people and developers must work together daily throughout the project. Source: www.agilemanifesto.org
What is Agile? Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. Source: www.agilemanifesto.org
What is Agile? The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. Source: www.agilemanifesto.org
What is Agile? Working software is the primary measure of progress. Source: www.agilemanifesto.org
What is Agile? Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. Source: www.agilemanifesto.org
What is Agile? Continuous attention to technical excellence and good design enhances agility. Source: www.agilemanifesto.org
What is Agile? Simplicity--the art of maximizing the amount of work not done--is essential. Source: www.agilemanifesto.org
What is Agile? The best architectures, requirements, and designs emerge from self-organizing teams. Source: www.agilemanifesto.org
What is Agile? At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. Source: www.agilemanifesto.org
What Agile is not. • A silver bullet for success • A direct remedy for team/organizational issues • Easy • A free for all
Why Agile? “The quest for certainty blocks the search for meaning. Uncertainty is the very condition to impel man to unfold his powers.” Erich Fromm
Why Agile? • Understanding Engineering Methods • Predictive Methods • Adaptive (Empirical) Methods
Why Agile? • Potential benefits of using an adaptive method • Reduced Cost • Reduced time between concept and deployment • Allows for system evolution • Encourages engagement and builds trust with the customer • Fosters a healthy environment for developers to work in • Levels accountability
Why Agile? • Summing it Up • Adaptive Methods (Agile Software Engineering) are not new • IT Capabilities during early business adoption drove the use of predictive methods (waterfall) • IT capabilities grew rapidly with the advent and proliferation of: • Object-oriented design and programming • The internet and communications bandwidth • Personal computing • The emerging complexity of systems and software is driving business and the IT community back to adaptive methods
How is Agile done? “Uncertainty is a sign of humility, and humility is just the ability or the willingness to learn.” Charlie Sheen
How is Agile done? • Agile Methods • Extreme Programming (XP) • Scrum • Lean Software Development • Kanban • Scaled Agile Framework • Agile Modeling • Adaptive Software Development • Crystal • Dynamic Systems Development Method (DSDM) • Feature Driven Development (FDD) • Unified Process (Rational or Agile) • Microsoft Solutions Framework for Agile Software Development
How is Agile done? • Extreme Programming • Software Engineering Methodology & OOP practices • Values • Communication • Simplicity • Feedback • Courage • Respect
How is Agile done? • Extreme Programming • Practices • Pair Programming • Test Driven Development • Refactoring • Continuous Integration • Small Releases • Coding Standards • Collective Code Ownership • Simple Design
How is Agile done? http://www.extremeprogramming.org
How is Agile done? http://www.extremeprogramming.org
How is Agile done? http://www.extremeprogramming.org
How is Agile done? http://www.extremeprogramming.org
How is Agile done? • Scrum • Management Methodology for Software Development • Values • Collaboration • Transparency • Prioritization • Focus • Simplicity
How is Agile done? • Scrum • Roles • Product Owner • Scrum Master • Team(s) • Practices • Backlog Management • Release Management • Sprint Planning • Daily Scrum • Sprint Closeout
How is Agile done? http://www.scrumalliance.org
How is Agile done? • Kanban • Management Method for Software Development • Based on Just-In-Time lean manufacturing practices • Values • Increase Flow • Maximize resources • Reduce work in progress (WIP) • Process Improvement • Practices • Backlog Management • Kanban Board • Step Limits • Expedite Critical Features/Bugs • Evaluation Cycles
How is Agile done? http://www.kanbanblog.com
How is Agile done? • Scaled Agile Framework (SAFe) • Organizational Framework for Agile Software Development • Moving beyond agile for teams • Governance • Strategy • SAFe is published by Leffingwell, LLC. Leffingwell LLC owns trademarks and copywrite for the content. It is freely available at www.scaledagileframework.com
How is Agile done? • Tying it all together (literally) • Extreme Programming provides a loose management wrapper with detailed development practices • Scrum is currently the most popular Agile management method • Kanban as gaining popularity due to its impact on productivity and focus on improvement • SAFe is a structured wrapper for Agile development that assists with scaling the concepts for larger organizations • The possibilities • SAFe wrapped ScrumBanXP
When should Agile be used and Who should use it? “Knowledge is an unending adventure at the edge of uncertainty.” Jacob Bronowski
When should Agile be used and Who should use it? • Reasons to Consider Agile • Need to streamline development process • Need to shorten development lifecycle • General process improvement • Establish / Re-establish trust with business / customer
When should Agile be used and Who should use it? • Change Management Considerations • Transparency may be a shock to developers • Team members need to be prepared to have accountability and responsibility • Customer / Business needs to accept and participate in implementation • Customer / Business needs to be prepared to have accountability and responsibility • Environment needs to be tolerant of failure • Bad habits, practices and relationships will be exposed
When should Agile be used and Who should use it? • Implementation Steps • Get / Create an expert • Understand the current state • Build a business case • Includes choosing / defining the method • Find a champion, or better yet, champions • Define a Pilot Implementation (project, department) • No less that 4 months, no more than 9 months • The expert should be directly involved in planning and executing the pilot • Training – IT Management, Team, Customer • Learn and Mature through the pilot • Create implementation plan for rest of organization
When should Agile be used and Who should use it? • Can Agile be implemented without business support? • Yes, but… • The expected improvements will not be as significant • Iterative work cycles and related reporting can occur without daily business involvement • XP development and testing techniques can be implemented in any iterative cycle • Need to identify a Business / Customer surrogate • Gains will still be found in productivity, quality and design • Herald your successes and continually try to engage the business / customer in the process
When should Agile be used and Who should use it? • How does one choose an agile method to implement? • Scrum is the most simple and straight forward method to implement • Talk to your customer to determine what is important to them and make sure your implementation addresses those points specifically • The name of the method is least important • Strive to incorporate all 12 agile disciplines • At least incorporate 8 agile disciplines
When should Agile be used and Who should use it? • Governance • Not formally addressed in most agile methods • Need to address • Can be addressed in backlog or as part of the process • Key Control Deliverables • Project Tracking • Configuration Management • Change Control • Risk & Issue Management • Budget
When should Agile be used and Who should use it? • Things to look out for: • Overzealous method evangelists • Minimizing for the sake of minimizing • Multi-tasking – waterfall wrapped in an iteration