Agile: What's in it for me?

Download Agile: What's in it for me?

Post on 31-Oct-2014




1 download

Embed Size (px)




1. Agile: Whats in it for me? CodeStock 2009 2. Adrian Carr Software Developer for 10 years Currently work for Jewelry Television in Knoxville Worked for Fidelity Information Systems in Atlanta Worked for Alltel Information Systems in Atlanta Worked for a large non-profit in Boone, NC Founder and Organizer of Knoxville Agile Practitioners Group ( http:// ) 3. Disclaimer Be skeptical, but open minded. This is how I develop software. Take the parts that make sense to you. Ignore the rest. Ron Jeffries If you currently have a high rate of success on your projects, then this may not be the best thing for you. 4. What Agile is Not Supposed to Be 5. Some Agile Myths No documentation Cowboy coding No up-front design Agile is a silver bullet. 6. What is Agile Software Development? project management process that encourages frequent inspection and adaptation, a leadership philosophy that encourages teamwork, self-organization and accountability, a set of engineering best practices that allow for rapid delivery of high-quality software, a business approach that aligns development with customer needs and company goals 7. Agile Practices Scrum- Small, self-organizing, cross-functional teams Defined roles within a team. Defined rules, based on project management. Work in short iterations, or sprints Demo progress at the end of every iteration. Re-plan for the next iteration, always doing the highest value things first. 8. Agile Methodologies XP Very disciplined. Onsite customer Pair programming Unit testing Refactoring Frequent delivery Continuous integration Test-Driven Development Simplicity 9. 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 That is, while there is value in the items on the right, we value the items on the left more. We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: 10. Traditional Projects 11. Traditional Projects: 12. 13. 14. IT has an Image Problem Typically, were seen as a roadblock. When we do succeed, we're viewed as too slow, too expensive, or delivering poor quality. 15. Whats in it for Me? 16. I Own or Run This Business- Whats in it for Me? What is the #1 killer of projects? Answer: Time In traditional projects, we often run out of time and something has to go. What is it? Quality, documentation, testing. In agile projects, testing and quality is a part of every iteration. What get cut is features, and thats not necessarily a bad thing. 17. I Own or Run This Business- Whats in it for Me? ROI There's a reason why you're paying these expensive people to do this work for you. You want your stuff. You want it as soon as possible. You'd rather not pay more for it than you have to. Or, since youre going to have to pay for it, you at least want to get the most for your money. A team of 8 -10 people costs about a million dollars a year. 18. I Own or Run This Business- Whats in it for Me? Traditional Projects and the Cost of Change Feature bloat. Youre paying for unused or rarely used features. Idea> Analysis > Development > Testing > Deployment> Return on Investment Most of the costs are in the Analysis, Development, and Testing. Reduced time to market. Agile teams will do the most important things first, and deploy them in production as soon as possible. 19. I Own or Run This Business- Whats in it for Me? Reduced risk. You get to assess it and decide on it every few weeks. If you want to stop, you can. Changes after deployment: Agile teams can respond more quickly, assuming they have unit tests and quality code. 20. I Own or Run This Business- Whats in it for Me? Everything is just fine.. 21. I Own or Run This Business- Whats in it for Me? Reality always wins in the end, so get there sooner. 22. I Own or Run This Business- Whats in it for Me? What if the project is doomed to fail? If you are going to fail, do it fast. 23. Im a Project Manager- Whats in it for Me? Project Managers job is to create a schedule, monitor progress, control the risks, and keep people informed. This is very difficult to do. Especially when people are afraid to tell the truth. How does a project get to be a year behind schedule? Answer: One day at a time. 24. Im a Project Manager- Whats in it for Me? You can have people get started earlier. Typically, you don't give the green light for developers to actually get started developing anything until we know all the requirements. With Agile, you don't assume that you ever know all the requirements until you are done. You do need to know enough to get started, but you don't need the entire picture in detail. When you dont know enough about a project, you may want to go ahead and get started. Have very short sprints and get feedback early and often. 25. Im a Project Manager- Whats in it for Me? Instead of managing risk with lots of documents and contracts that create an "us vs. them" environment, you manage risk with real, working software, and contracts that encourage collaboration between different parties. 26. Typical Scrum Team Board Transparency is more evident. 27. Multi-Team Project Board Big, Visible Charts 28. Im a Project Manager- Whats in it for Me? The culture of transparency makes it easier for you to provide visibility and a more realistic status up the chain. Unknowns should be known much earlier in the process. 29. Im a Project Manager- Whats in it for Me? Managing Risk: There are known knowns. These are things we know that we know. There are known unknowns. That is to say, there are things that we know we don't know. But there are also unknown unknowns. There are things we don't know we don't know. - Donald Rumsfeld When problems pop up early, we have lots of options. When problems pop up at the end of a project, our options are very limited; work more, cut quality, etc. 30. Im a Tester- Whats in it for Me? How is QA viewed today on most traditional projects? Often viewed as a roadblock, or second class citizen. If bugs get into production, who gets the blame? Are you ever told " Don't talk to the developers while they are working. They are too busy, and I don't want you to waste their time." ? 31. Im a Tester- Whats in it for Me? Agile teams elevate the role of testing. Quality becomes essential when teams are repeatedly deploying software. You will be working on a close-knit team. 32. Im a Tester- Whats in it for Me? Inspection to find defects is waste. Inspection to prevent defects is essential. A quality process builds quality into the product. If you routinely find defects during verification, your process is defective. If you have test and fix cycles, you are testing too late. This is churn, and wasteful. Move QA people from end of process to beginning and middle of process. Find defects as soon as they are created. 33. Im a Developer- Whats in it for Me? ROI Developers often don't think about ROI. They view this as a business term, and often don't care. Well, here's a revelation: Your salary is calculated as ROI. You, your benefits, your computer, are all calculated as ROI. You are being paid to do something. The people paying you want a return on their investment. The better investment you provide, the better you will be viewed. A better way of working. Support vs. control. Imagine a work situation where your manager says What can I do to help you ?, instead of saying do this, now do that, and do it this way . Trust vs. micromanagement The team decides the best way to reach the goals put forth in front of them. 34. Im a Developer- Whats in it for Me? You will be working on a close-knit team. Can get more done together than you can separately. Collaboration, support system. 35. Im a Developer- Whats in it for Me? Increased communication. Everyone on the team is working toward the same goals. Laughing. Sense of community. Sense of ownership. 36. Im a Developer- Whats in it for Me? You should gain skills you didnt have before. Less useless documentation. Those obstacles that you tolerate now? They should become more obvious, and some of them will go away if your management is doing their job. 37. Im a Developer- Whats in it for Me? Freedom to pick tasks. No one assigns tasks, and you have ownership over your tasks. Great feeling of accomplishment. Food is often involved. Almost always results in higher morale. 38. From: The Principles Behind the Agile Manifesto Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. 39. Principles behind the Agile Manifesto Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. Working software is the primary measure of progress. 40. Principles behind the Agile Manifesto Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. Business people and developers must work together daily throughout the project. 41. Principles behind the Agile Manifesto Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. 42. Principles behind the Agile Manifesto Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. 43. Principles behind the Agile Manifesto Continuous attention to technical excellence and good design enhances agility. Simplicity--the art of maximizing the amount of work not done--is essential. 44. Principles behind the Agile Manifesto The best architectures, requirements, and designs emerge from self-organizing teams. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. 45. How Do I Start? Ideally, get support from the top, and jump in with both feet. Hire a good consultant. Get your people trained. Make sure they understand the principles as well as the practices. Do it by the book for a year, and then change parts of it only if it really makes sense. 46. How Do I Start? Start with Scrum. Fairly easy to implement. Quick wins Improved Morale Add XP development practices Continuous integration Unit testing Transition to Lean (After a year of successful Scrum) One piece flow Optimizing the whole 47. How Do I Start If I cant get support f...