ESSAP Agile Loops

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    ESSAP Agile Loops - Presentation Transcript

    1. Agile loops from jargon to understanding (cc) F. Gobbo, S. Gentilini, F. Bertone, V. Del Bianco, please refer to: federico.gobbo@uninsubria.it Dipartimento di Informatica e Comunicazione Università degli Studi dell'Insubria
    2. Acknowledgements
      • This is a derivative work from the talk "XP loops"
      • presented in XP BE 2007
      • by
        • Vera Peeters (Tryx)
        • Pascal Van Cauwenberghe (NAYIMA)
    3. Wannabe Agile?
    4. What Agile is not
        • Not a panacea.
        • Not a silver bullet.
      • It doesn't tell you if a project is worth starting.
      • It tells you how to start and when to stop in time.
      • (c) artwork / graphic by Michael Whitehead for Next 16-9-2003
    5. Ready to start?
    6. Start from your (onsite) customers... Business decisions are taken by the customers Technical decisions are taken by the developer team ...and trust!
    7. Principles and values
        • Collaboration       instead of      negotiation
    8. User stories
        • Customers tell:
      •                      the value
        • Developers tell:
      •                        the price
      Don't show the kitchen, serve the dishes!
    9. Principles and values
        • Collaboration       instead of      negotiation
        • Communication   instead of      requirement elicitation
    10. Small releases
        • Steering and adapting
      •               
        • Short-time planning
        • release = iteration (XP)
        • release = sprint (Scrum)
        • Timeboxing everywhere
      •                       
      Be realistic, don't pretend to look in a crystal ball!
    11. Principles and values
        • Collaboration       instead of      negotiation
        • Communication   instead of      requirement elicitation
        • Feedback, feedback, feedback!
    12. Planning game
      • How much business  value can you deliver in the next release?             
        • Pair writing
        • Product backlog
      •                       
      Delivering business value early and often
    13. Principles and values
        • Collaboration       instead of:      negotiation
        • Communication   instead of:      requirement elicitation
        • Feedback, feedback, feedback!
        • Business value instead of: overdesign & unused features
    14. Sustainable  pace
      • Find your natural  rhythm of work
      • (for all involved!)
        • Think about the long run
        • No overtime
      •                  
      Our suggestion: the Pomodoro Technique
    15. Principles and values
        • Collaboration       instead of      negotiation
        • Communication   instead of      requirement elicitation
        • Feedback, feedback, feedback!
        • Business value instead of overdesign & unused features
        • Respect for people  instead of pretending
    16. Daily Standup  Meetings
      • 3 questions:
        • What I have done?
        • What I will complete today?
        • I need help with...
      •                  
      Keep it short!
    17. Principles and values
        • Collaboration       instead of      negotiation
        • Communication   instead of      requirement elicitation
        • Feedback, feedback, feedback!
        • Business value instead of overdesign & unused features
        • Respect for people  instead of pretending
        • Small, realistic chunks of work every day
    18. Pair Programming
      • Two programmers work together at one keyboard: driver types in code, observer- navigator reviews code and considers the strategic direction of the work. Not for everyone...
    19. Pair Programming and Productivity...
      • PairProgramming reduces productivity! That would be true if the most time consuming part of programming was typing... Martin Fowler
        • Start with a reasonably well-defined task
        • Agree on one tiny goal at a time
        • TDD please
        • Rely on and support your partner
        • Sync up frequently
        • Be especially courteous
        • Take a moment to celebrate
        • Often switch roles
    20. Principles and values
        • Collaboration       instead of      negotiation
        • Communication   instead of      requirement elicitation
        • Feedback, feedback, feedback!
        • Business value instead of overdesign & unused features
        • Respect for people  instead of pretending
        • Small, realistic chunks of work every day
        • Fun and quality    instead of   heroism
    21. Unit Tests
      • Automated test that validates that units of source code are working properly.
      Test cases written in the same language as the production code. Each test case is independent from the others.
    22. So what?
        • Safety Net
        • Facilitates change
        • Facilitates refactoring
        • Simplifies integration
        • Documentation
        • Design
        • Separation of interface from implementation
        • Force code being testable
        • ...
    23. Principles and values
        • Collaboration       instead of      negotiation
        • Communication   instead of      requirement elicitation
        • Feedback, feedback, feedback!
        • Business value instead of overdesign & unused features
        • Respect for people  instead of pretending
        • Small, realistic chunks of work every day
        • Fun and quality    instead of   heroism
        • Quality work every time
    24. Test Driven Development
      • without inmagine.com
      • with forbes.com
    25. Test Driven Development
      • write a test implement code  to pass the test refactor
      • testdriven.com
      • forbes.com
    26. Principles and values
        • Collaboration       instead of      negotiation
        • Communication   instead of      requirement elicitation
        • Feedback, feedback, feedback!
        • Business value instead of overdesign & unused features
        • Respect for people  instead of pretending
        • Small, realistic chunks of work every day
        • Fun and quality    instead of   heroism
        • Quality work every time
        • Technical excellence
    27. Refactoring
      • without
      • with
    28. Refactoring
      • clean code that works! get rid of smelling code: duplication large classes large methods long parameters list etc etc..
      •  
    29. Principles and values
        • Collaboration       instead of      negotiation
        • Communication   instead of      requirement elicitation
        • Feedback, feedback, feedback!
        • Business value instead of overdesign & unused features
        • Respect for people  instead of pretending
        • Small, realistic chunks of work every day
        • Fun and quality    instead of   heroism
        • Quality work every time
        • Technical excellence
        • Simplicity
    30. Continuous Integration
        • Small steps
        • Small changes
        • Small problems
      Integrate frequently (multiple integrations per day). Each integration is verified by an automated build.
    31. Not so easy...
      • Once you are there, great benefits:
        • Control
        • Visibility
        • Early warnings
        • Availability of a "current" build
    32. Principles and values
        • Collaboration       instead of      negotiation
        • Communication   instead of      requirement elicitation
        • Feedback, feedback, feedback!
        • Business value instead of overdesign & unused features
        • Respect for people  instead of pretending
        • Small, realistic chunks of work every day
        • Fun and quality    instead of   heroism
        • Quality work every time
        • Technical excellence
        • Simplicity
        • Be in control
    33. Collective Code Ownership
      • Everyone can contribute to everything Any developer can change any line of code Everyone is responsible for all the code No one person becomes a bottle neck for changes
    34. Prerequisites and Alternatives
      • Prerequisites, at least: CodingStandards Version management Unit tests
      • Alternatives? CodeStewardship ... So what? Define who ones the code! More "collective", is better, but has more prerequisites
    35. Principles and values
        • Collaboration       instead of      negotiation
        • Communication   instead of      requirement elicitation
        • Feedback, feedback, feedback!
        • Business value instead of overdesign & unused features
        • Respect for people  instead of pretending
        • Small, realistic chunks of work every day
        • Fun and quality    instead of   heroism
        • Quality work every time
        • Technical excellence
        • Simplicity
        • Be in control
        • Trust your teammates
    36. Acceptance Tests
      • Customers specifies scenarios to test when a user story has been correctly implemented A story can have one or many acceptance tests Acceptance tests are black box system tests
      Customers sign completed stories  when their acceptance tests pass
    37. Acceptance Tests HowTo
        • Written at the start of each iteration
        • Start a story executing acceptance tests
        • Write unit tests
        • Keep adding unit tests and production code until all the acceptance tests pass
    38. Principles and values
        • Collaboration       instead of      negotiation
        • Communication   instead of      requirement elicitation
        • Feedback, feedback, feedback!
        • Business value instead of overdesign & unused features
        • Respect for people  instead of pretending
        • Small, realistic chunks of work every day
        • Fun and quality    instead of   heroism
        • Quality work every time
        • Technical excellence
        • Simplicity
        • Be in control
        • Trust your teammates
        • Working software is measure of progress
    39. Velocity
      • Velocity is the rate at which you complete your work, in a certain period of time. In project management terms: velocity is the amount of work that a team can complete in a specified period of time.
    40. Velocity and Burndown
      • Velocity to make commitments in future iterations If a team does not know its velocity, how will that team be able to know how much work to put into an iteration?
      • Burndown to meet commitments in one iteration If a team doesn't focus burndown, it is probable that the team will miss the scope of the iteration
    41. Open Workspace Self-organizing teams Collaboration Comunication Trust Simplicity Self-organization Feedback!!
    42.  
    43. Principles and values
        • Collaboration       instead of      negotiation
        • Communication   instead of      requirement elicitation
        • Feedback, feedback, feedback!
        • Business value instead of overdesign & unused features
        • Respect for people  instead of pretending
        • Small, realistic chunks of work every day
        • Fun and quality    instead of   heroism
        • Quality work every time
        • Technical excellence
        • Simplicity
        • Be in control
        • Trust your teammates
        • Working software is measure of progress
    44. μεταφορά : "a transfer", in rhetoric "transference of a word to a new sense", from μεταφέρω - metaphero , "to carry over, to transfer" Metaphor Shared Vision      Ubiquitous Language            Communication                   Simplicity 
    45. Principles and values
        • Collaboration       instead of      negotiation
        • Communication   instead of      requirement elicitation
        • Feedback, feedback, feedback!
        • Business value instead of overdesign & unused features
        • Respect for people  instead of pretending
        • Small, realistic chunks of work every day
        • Fun and quality    instead of   heroism
        • Quality work every time
        • Technical excellence
        • Simplicity
        • Be in control
        • Trust your teammates
        • Working software is measure of progress
        • Shared understanding
    46. Retrospectives
    47. Principles and values
        • Collaboration       instead of      negotiation
        • Communication   instead of      requirement elicitation
        • Feedback, feedback, feedback!
        • Business value instead of overdesign & unused features
        • Respect for people  instead of pretending
        • Small, realistic chunks of work every day
        • Fun and quality    instead of   heroism
        • Quality work every time
        • Technical excellence
        • Simplicity
        • Be in control
        • Trust your teammates
        • Working software is measure of progress
        • Shared understanding
        • Continuous improvement
    48. Agilemanifesto.org (re-read it!)
        • Individuals and interactions 
        • Working software
        • Customer collaboration
        • Responding to change
        • Naturally  non-fondamentalist: many methodologies, many technologies.  
      over processes and tools over comprehensive documentation over contract negotiation over following a plan based on the community!
    49. Thanks for your attention! Questions? The answers during this week!

    + Federico GobboFederico Gobbo, 5 months ago

    custom

    247 views, 0 favs, 0 embeds more stats

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 247
      • 247 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 0
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories