Agile Practices

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

    Notes on slide 1

    You will not face “die at the end” event because of Integration or Deployment problems.

    More memory-efficient, less performance ?Evaluate trade-offsDesign

    How to build agile atmospherePair programmingHow to deal with customer ….

    5 Favorites

    Agile Practices - Presentation Transcript

    1. Agile Practices : case of small teamand small software project
      ThatchapholSaranurak
      11 August 2009
    2. What is ‘Agility’ ?
    3. What is ‘Agility’ ?
      Coined in 2001
      "The ability to move faster than those things that can harm your project…"
    4. Agility matters (in our lives) because of
      CHANGES
    5. Agility matters (in our lives) because of
      CHANGES
      Frequently
    6. Agility matters (in our lives) because of
      CHANGES
      Frequently&Simultaneously
    7. CHANGES
    8. Begin -->
    9. Before that…
      Tune team’s mindset
      • To work for outcome
      • To be open-minded
      • To be courageous
    10. 5 Practices (for small team and small project)
      Release frequently
      Design for ideas
      Test!
      Code for future
      Communicate agilely
    11. Practice : Release frequently
      Release MonthlyAnd you will…
    12. Practice : Release frequently
      #1Assure aboutintegration and deployment issues early
    13. Practice : Release frequently
      You project is alwaysready to submit
    14. Practice : Release frequently
      Use automated installer(Setup Projectis extremely easy in VS.NET 2008 )
    15. Practice : Release frequently
      #2Be Productive
    16. Practice : Release frequently
      Timebox forces you to implement only themostimportant
    17. Practice : Release frequently
      Reachable goal boosts
    18. Practice : Release frequently
      #3Get Feedback
    19. Practice : Release frequently
      Evaluate trade-offs, actively(More memory-efficient, less performance ?)
    20. Practice : Release frequently
      Design is gradually more accurate direction
    21. 5 Practices (for small team and small project)
      Release frequently
      Design for ideas
      Test!
      Code for future
      Communicate agilely
    22. Practice : Design for ideas
      Design idea will be evolving during development(Especially when using unfamiliar technology)
    23. Practice : Design for ideas
      If you design it too specifically… (Method details, datatypes, parameters)
    24. Practice : Design for ideas
      and even document it
    25. Practice : Design for ideas
      You will surely REDO it againor else…GET STUCK with your bad design
    26. Suggestion 1
      Design in Paper or whiteboard
      Take a photo for sharing
      Practice : Design for ideas
    27. Suggestion 2
      Practice : Design for ideas
      CRC design method
      Class name
      Responsibility
      What it is supposed to do ?
      Collaborator
      what other objects it works with ?
    28. Suggestion 3
      Practice : Design for ideas
      Make it easy for test
    29. Suggestion 4
      Practice : Design for ideas
      As simple as possible
      KISS Principle
    30. 5 Practices (for small team and small project)
      Release frequently
      Design for ideas
      Test!
      Code for future
      Communicate agilely
    31. Practice : Test!
      Test it!programmatically
    32. Practice : Test!
      Fewer Bugs & Faster DebugKnow problem early and specifically
    33. Practice : Test!
      Comfortably RefactorNo need to check if it still really works
    34. Practice : Test!
      Simple DesignTest Before (TDD): design will be never over complicatedTest After: method that hard to test is need to simplify
    35. Practice : Test!
      Good DocumentationGood test covers use cases
    36. Practice : Test!
      Unit Testing Framework(Nunit for .NET, Junit for Java, HttpUnitofr testing web,…)
    37. Practice : Test!
      Use Mock when method touches another class
      More Reason for test ? Where to start ?
    38. 5 Practices (for small team and small project)
      Release frequently
      Design for ideas
      Test!
      Code for future
      Communicate agilely
    39. Practice : Code for future
      Your code is used many many more times than it is written
    40. Practice : Code for future
      Make code EASY to
    41. Practice : Code for future
      Make code EASY to
      Read
    42. Practice : Code for future
      Make code EASY to
      Read
      Test
    43. Practice : Code for future
      Make code EASY to
      Read
      Test
      & Debug
    44. #1 EASY to Read
      Reader get what code does without reading comment
      Expressive naming
      Comment why code does it
      Use enum
      Don’t quick hack
      Insert +1 or -1 and it just works!
      Don’t concern performance too much
      <<1 instead of *2
      Practice : Code for future
    45. #2 EASY to Test
      Query – command separation
      Make query code has no side-effect (it’s easy to test now)
      Small class
      One method one purpose
      Practice : Code for future
    46. #3 EASY to Debug
      Always handle or throw all exception
      No empty catch block
      Provide useful error messages
      Categorize them
      Program defects
      Environment problems
      User Error
      Practice : Code for future
    47. 5 Practices (for small team and small project)
      Release frequently
      Design for ideas
      Test!
      Code for future
      Communicate agilely
    48. Practice : Communicate agilely
      Documents that dictateall of what to do
    49. Practice : Communicate agilely
      Documents that dictateall of what to do
    50. Practice : Communicate agilely
      Need more dynamic communication techniques
    51. Practice : Communicate agilely
      Complete but Flexible
    52. Stand up Meeting
      Twice a week
      Everybody answers in 3 minutes
      What did I do?
      What will I do?
      What problems I face?
      Everybody Stands Up
      And you ain’tgonna waste time :)
    53. PivotalTracker(Project Management Software)
    54. PivotalTracker(Project Management Software)
      User story
      Focus on features
      Measure velocity
      Can generate charts
    55. Mailing List
      For Sharing Ideas
      New design ?
      Problem’s solution ?
      Important Issue ?
    56. Message in Version Control
      You know
    57. Practice : Communicate agilely
      Stand up MeetingPivotalTrackerMailing ListMessage in Version Control
    58. Conclusion
      This concludes Agile practicesI suggest
      for small team and small project
    59. Conclusion
      However, there are…
      Many Other Practices
    60. Conclusion
      And Many Ways to Apply
      How?
      Image fromhttp://www.flickr.com/photos/legojeff/1296661311/
    61. Let’s go Agile :)

    + Thatchaphol SaranurakThatchaphol Saranurak, 3 months ago

    custom

    1113 views, 5 favs, 3 embeds more stats

    Agile Software Development :
    case of small team an more

    More info about this document

    CC Attribution License

    Go to text version

    • Total Views 1113
      • 1029 on SlideShare
      • 84 from embeds
    • Comments 0
    • Favorites 5
    • Downloads 74
    Most viewed embeds
    • 68 views on http://eigx.wordpress.com
    • 15 views on http://suchaxplore.blogspot.com
    • 1 views on http://paulszulc.wordpress.com

    more

    All embeds
    • 68 views on http://eigx.wordpress.com
    • 15 views on http://suchaxplore.blogspot.com
    • 1 views on http://paulszulc.wordpress.com

    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