SlideShare a Scribd company logo
Agile Development Principals and Flow
What Agile Development is  not It is NOT a silver bullet. It is NOT for every team. It is NOT a “how to” to writing code for a language. It is NOT the only Development Methodology/Philosphy teams use. It is NOT just Waterfall, XP, Coding Standards, or SCRUM alone, it is all of these (and more) methods, together.
What Agile Development  is It is considered both a Philosophy and a Method for building and releasing products. It is intended for teams anywhere from 2 to 20 people (usually a max of 10 Developers). It is a collection of many development methods combined into one (this presentation bases mainly on 2 methods – SCRUM and XP(Extreme Programming)) It is a Philosophy that aims to not only make you more organized and time aware, but more importantly aims to turn your “group” into a “team” It is a philosophy that cannot be implemented unless you have total buy-in and commitment from both your team  and  management. It is about enhancing your team’s collaboration – not only amongst itself, but outside entities as well. It is about making your team a stronger and more dependable source.
Typical Agile Development Flow
Agile Development - Basics 1. Planning: Project Manager works with Team Lead and Client to determine requirements & scope.  This helps us know what you’re building before you start! 2. Scrums: Daily 15 minute team meetings to discuss yesterday & today.  Group communication  keeps team on track so we know about road blocks right away and can help each other thru them! 3. Sprints: Each project is broken into chunks of manageable sets of tasks. Rather than one never-ending project – sprints break the project up and get it done quicker!
Typical XP Team Roles
Product Manager Maintains and promotes the product vision. Documents the vision and shares it with Stakeholders. Obtains feedback on the product as it is built/tested. Sets priorities for release planning. Leads demos for clients. Sometimes considered a VP or other high management position as they have the authority to say “no” to needs, can assign specific members to a product development, and can handle organizational politics.
Domain Experts (Subject Matter Experts ) The best resource for answers to questions about specific subjects Figure out details to complex design decisions Are experts in their field
Interaction Designers Responsible for the perception of the UI Help define the product UI Understands customer needs and how they will interact with the product Are who review prototypes with users and determine if it suits what they want. Is usually a graphic designer, product manager or even a programmer. Keep the products overall design in mind as it is developed Determines if the direction the team is going with the design is going off course
Programmers Hopefully, an introduction is not necessary
Project Manager Help the team work with the rest of the organization. Usually double as customers. Track the current progress and determine when a project will be finished. Reports to the Developers’ Manager. Sets up meetings, determines schedules Also known as “Scrum Master”
Scrum in Under 10 Minutes http://www.youtube.com/watch?v=TWSXETDWGQ4 1. Daily 2. Subject-Matter Experts 3. Project Based
Project Life Cycle Client The client helps create the list of options. Big list of options then gets refined and becomes Product Backlog. The overall backlog is then broken down into high/med/low priority chunks.  The high priority are put into the first release. These are then broken into Sprints/Tickets/Tasks.  Tickets/Tasks are given time estimates so the Project Manager can establish a timeline. As the team progresses and thinks of new features – those are added back to the backlog for future releases.  Then it all starts over again! After Release 1 – back to the backlog for Release 2!
Helpful Tips for Budgeting Time
Process
Release Iteration (Release Backlog)
Communication Client Project Manager Project Lead Developers Project
Pair Programming
Why Pair? Reinfoces good programming habits. Positive peer pressure to perform crucial tasks. Spreads coding knowledge and tips throughout the team. Creates more focus on code. You will become more resilient to interruptions. The added brainpower will help you get past roadblocks more easily. Encourages collaboration and team effort.
How to Pair When you start working on a task, ask another programmer to work with you. If another programmer asks for help, make yourself available. Pairs are fluid and formed naturally, not assigned. Over time, pair with everyone on the team. Switch partners when you need a fresh perspective  Switch partners several times per day Make sure you are physically comfortable. Think out loud. Talk about your assumptions, short-term goals, general direction and any  relevant history of the feature or project. If you are confused about something, ask questions.
Driving and Navigating Expect to feel clumsy at first as your drive. You may feel that your navigator sees ideas and problems much more  quickly than you do.  He does. When navigating, expect to feel like you want to step in and take the  keyboard away from your partner.  Drivers communicate an idea with words and code. Don't correct typos unless it is clear your partner has overlooked it. Navigators help the driver be more productive by thinking about what's  going to happen next. While navigating, take notes when you think of an issue. Look up the issue on your own while the driver continues.  Switch roles frequently – at least every half hour (and take breaks!)
Pairing Tips Pair on everything you need to maintain. Pairs form fluidly rather than by assigning partners. Switch partners when you need a fresh perspective. Avoid pairing with the same person for more than a day at a time. Sit comfortably, side by side. Produce code through conversation.  Collaborate, don't critique. Switch driver and navigator roles frequently.
Key Pieces to Agile Development Trust  is essential for the team to thrive. Sitting together  leads to fast, accurate communication. Customer involvement  helps the team understand what to build. Ubiquitous language  (terminology that everyone can relate to) helps   team members understand one another. Coding Standards  provide a template for seamlessly joining the team's  work together. Iterations  keep the team's efforts aligned with the stakeholder goals. Reporting  helps reassure the organization that the team is working well.
Topics Not Covered Story Cards Burndown Charts Velocity Tracking Waterfall techniques Client interaction
Further Reading/Resources Book – The Art of Agile Development URLs: http://www.agile-software-development.com/ http://www.ambysoft.com/essays/agileLifecycle.html http://agilesoftwaredevelopment.com/ This Presentation: http://www.phpadvocate.com
Above All... HAVE FUN!

More Related Content

Agile presentation

  • 2. What Agile Development is not It is NOT a silver bullet. It is NOT for every team. It is NOT a “how to” to writing code for a language. It is NOT the only Development Methodology/Philosphy teams use. It is NOT just Waterfall, XP, Coding Standards, or SCRUM alone, it is all of these (and more) methods, together.
  • 3. What Agile Development is It is considered both a Philosophy and a Method for building and releasing products. It is intended for teams anywhere from 2 to 20 people (usually a max of 10 Developers). It is a collection of many development methods combined into one (this presentation bases mainly on 2 methods – SCRUM and XP(Extreme Programming)) It is a Philosophy that aims to not only make you more organized and time aware, but more importantly aims to turn your “group” into a “team” It is a philosophy that cannot be implemented unless you have total buy-in and commitment from both your team and management. It is about enhancing your team’s collaboration – not only amongst itself, but outside entities as well. It is about making your team a stronger and more dependable source.
  • 5. Agile Development - Basics 1. Planning: Project Manager works with Team Lead and Client to determine requirements & scope. This helps us know what you’re building before you start! 2. Scrums: Daily 15 minute team meetings to discuss yesterday & today. Group communication keeps team on track so we know about road blocks right away and can help each other thru them! 3. Sprints: Each project is broken into chunks of manageable sets of tasks. Rather than one never-ending project – sprints break the project up and get it done quicker!
  • 7. Product Manager Maintains and promotes the product vision. Documents the vision and shares it with Stakeholders. Obtains feedback on the product as it is built/tested. Sets priorities for release planning. Leads demos for clients. Sometimes considered a VP or other high management position as they have the authority to say “no” to needs, can assign specific members to a product development, and can handle organizational politics.
  • 8. Domain Experts (Subject Matter Experts ) The best resource for answers to questions about specific subjects Figure out details to complex design decisions Are experts in their field
  • 9. Interaction Designers Responsible for the perception of the UI Help define the product UI Understands customer needs and how they will interact with the product Are who review prototypes with users and determine if it suits what they want. Is usually a graphic designer, product manager or even a programmer. Keep the products overall design in mind as it is developed Determines if the direction the team is going with the design is going off course
  • 10. Programmers Hopefully, an introduction is not necessary
  • 11. Project Manager Help the team work with the rest of the organization. Usually double as customers. Track the current progress and determine when a project will be finished. Reports to the Developers’ Manager. Sets up meetings, determines schedules Also known as “Scrum Master”
  • 12. Scrum in Under 10 Minutes http://www.youtube.com/watch?v=TWSXETDWGQ4 1. Daily 2. Subject-Matter Experts 3. Project Based
  • 13. Project Life Cycle Client The client helps create the list of options. Big list of options then gets refined and becomes Product Backlog. The overall backlog is then broken down into high/med/low priority chunks. The high priority are put into the first release. These are then broken into Sprints/Tickets/Tasks. Tickets/Tasks are given time estimates so the Project Manager can establish a timeline. As the team progresses and thinks of new features – those are added back to the backlog for future releases. Then it all starts over again! After Release 1 – back to the backlog for Release 2!
  • 14. Helpful Tips for Budgeting Time
  • 17. Communication Client Project Manager Project Lead Developers Project
  • 19. Why Pair? Reinfoces good programming habits. Positive peer pressure to perform crucial tasks. Spreads coding knowledge and tips throughout the team. Creates more focus on code. You will become more resilient to interruptions. The added brainpower will help you get past roadblocks more easily. Encourages collaboration and team effort.
  • 20. How to Pair When you start working on a task, ask another programmer to work with you. If another programmer asks for help, make yourself available. Pairs are fluid and formed naturally, not assigned. Over time, pair with everyone on the team. Switch partners when you need a fresh perspective Switch partners several times per day Make sure you are physically comfortable. Think out loud. Talk about your assumptions, short-term goals, general direction and any relevant history of the feature or project. If you are confused about something, ask questions.
  • 21. Driving and Navigating Expect to feel clumsy at first as your drive. You may feel that your navigator sees ideas and problems much more quickly than you do. He does. When navigating, expect to feel like you want to step in and take the keyboard away from your partner. Drivers communicate an idea with words and code. Don't correct typos unless it is clear your partner has overlooked it. Navigators help the driver be more productive by thinking about what's going to happen next. While navigating, take notes when you think of an issue. Look up the issue on your own while the driver continues. Switch roles frequently – at least every half hour (and take breaks!)
  • 22. Pairing Tips Pair on everything you need to maintain. Pairs form fluidly rather than by assigning partners. Switch partners when you need a fresh perspective. Avoid pairing with the same person for more than a day at a time. Sit comfortably, side by side. Produce code through conversation. Collaborate, don't critique. Switch driver and navigator roles frequently.
  • 23. Key Pieces to Agile Development Trust is essential for the team to thrive. Sitting together leads to fast, accurate communication. Customer involvement helps the team understand what to build. Ubiquitous language (terminology that everyone can relate to) helps team members understand one another. Coding Standards provide a template for seamlessly joining the team's work together. Iterations keep the team's efforts aligned with the stakeholder goals. Reporting helps reassure the organization that the team is working well.
  • 24. Topics Not Covered Story Cards Burndown Charts Velocity Tracking Waterfall techniques Client interaction
  • 25. Further Reading/Resources Book – The Art of Agile Development URLs: http://www.agile-software-development.com/ http://www.ambysoft.com/essays/agileLifecycle.html http://agilesoftwaredevelopment.com/ This Presentation: http://www.phpadvocate.com