Agile<br />It’s not something you do,<br />it’s something you are.<br />Declan Whelan<br />
Waterfall<br />
“The CHAOS Chronicles”  2006  The Standish Group<br />
Waterfall<br />
“… risky and invites failure.”<br />Winston Royce<br />
agility<br />values, principles and practices thatfoster team communication and learning to regularly deliver customer val...
agile values<br />
individual and interactions<br />over processes and tools<br />
working software over comprehensive documentation<br />
customer collaboration over contract negotiation<br />
responding to change over following a plan<br />
agile principles<br />
working software as primary<br /> measure of progress<br />
craftsmanship<br />
emergent design<br />
do the simplest thing that could possibly work<br />
feedback<br />
agile practices<br />
Agile Practices – They Aren’t New!<br />Data Hiding<br />Simple Design<br />Software Architecture<br />Cont. Integration<b...
RedGreen Refactor<br />Write the test code<br />Compile the test code (it should fail)<br />Implement just enough to compi...
Simple Design Rules<br />Has a test<br />Intent revealing<br />No duplication<br />Minimum number of classes/methods<br />
TDD Resources<br />“Test-Driven Development”Kent Beck<br />“xUnit Test Patterns”Gerard MeszarosRick Mugride, Ward Cunningh...
Upcoming SlideShare
Loading in …5
×

Agile, TDD and .NET

766 views
687 views

Published on

Brief overview of Agile and TDD.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
766
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
47
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Add “story” definition.Add “alignment” as a principle?Add release and sprint burn-down charts
  • This is of successful projects
  • This is the “perceived wisdom” – the way that we have been taught.Developed by Royce – “Managing the Development of Large Scale Systems” Proceeding, IEEE Wescon, August 1970 This model has been misinterpreted – Royce meant to show that this was actually a “bad idea”! “the implementation described above is risky and invites failure … one can expect up to a 100-percent overrun in schedule and/or costs” However in practice we have the prevalent notions of: Get it right the first time. If only we did a better job of defining requirements then …The agile community argues that: The cost of change curve is as much a result of the process rather than intrinsic to software development
  • Team communicationsFocus on communication and collaboration rather than process and toolsFeedbackLots of internal feedback loops: daily, weekly, quarterly Get customer feedback oftenRegularly DeliverRelease S/W typically quarterly with internal releases weekly or bi-weeklyValueFocus on highest value featuresWorking SoftwareFocus on getting S/W working early and keeping it releasable rather than big-bang waterfall approach It is not binary … it is a mindset
  • Use of collaborative spaces
  • ThanksMain Points- Agile is a mindset Values, principles and practices that foster team communication and feedback to regularly deliver customer value through working softwareAgile has crossed the chasm – it is widely deployed across many companies small to large and across many domains – including enterprise software- Agile is like losing weight – easy to understand; hard to do
  • ThanksMain Points- Agile is a mindset Values, principles and practices that foster team communication and feedback to regularly deliver customer value through working softwareAgile has crossed the chasm – it is widely deployed across many companies small to large and across many domains – including enterprise software- Agile is like losing weight – easy to understand; hard to do
  • Agility movement has succeeded by embedding proven practices into a cohesive package supported by a mindset focused on core values and principles.
  • Agile, TDD and .NET

    1. 1. Agile<br />It’s not something you do,<br />it’s something you are.<br />Declan Whelan<br />
    2. 2. Waterfall<br />
    3. 3. “The CHAOS Chronicles” 2006 The Standish Group<br />
    4. 4.
    5. 5. Waterfall<br />
    6. 6. “… risky and invites failure.”<br />Winston Royce<br />
    7. 7. agility<br />values, principles and practices thatfoster team communication and learning to regularly deliver customer value through working software<br />
    8. 8. agile values<br />
    9. 9. individual and interactions<br />over processes and tools<br />
    10. 10. working software over comprehensive documentation<br />
    11. 11. customer collaboration over contract negotiation<br />
    12. 12. responding to change over following a plan<br />
    13. 13. agile principles<br />
    14. 14. working software as primary<br /> measure of progress<br />
    15. 15. craftsmanship<br />
    16. 16. emergent design<br />
    17. 17. do the simplest thing that could possibly work<br />
    18. 18. feedback<br />
    19. 19. agile practices<br />
    20. 20. Agile Practices – They Aren’t New!<br />Data Hiding<br />Simple Design<br />Software Architecture<br />Cont. Integration<br />Software Reuse<br />Documentation<br />Risk Management<br />Collective Ownership<br />Project Planning<br />Incremental Releases<br />Test-Driven Design<br />Coding Standards<br />Evolutionary Design<br />Refactoring<br />Pair Programming 50s<br />On-Site Customer<br />Patterns<br />Metaphor<br />Requirements forever<br />Software Metrics<br />Sustainable Pace<br />Retrospectives<br />2000<br />1960<br />1990<br />1980<br />1970<br />Source: Software Best-Practices: Agile Deconstructed - Steven Fraser OOPSLA 2007<br />
    21. 21.
    22. 22. RedGreen Refactor<br />Write the test code<br />Compile the test code (it should fail)<br />Implement just enough to compile<br />Run the test and see it fail<br />Implement just enough to make it pass<br />Run the test and see it pass<br />Refactor for clarity and to remove duplication<br />Repeat from step 1<br />
    23. 23. Simple Design Rules<br />Has a test<br />Intent revealing<br />No duplication<br />Minimum number of classes/methods<br />
    24. 24. TDD Resources<br />“Test-Driven Development”Kent Beck<br />“xUnit Test Patterns”Gerard MeszarosRick Mugride, Ward Cunningham<br />“Pragmatic Unit Testing in C# with NUnit”Andrew Hunt, David Thomas<br />http://www.testdriven.com<br />http://www.nunit.org/ - NUnit<br />

    ×