Your SlideShare is downloading. ×
0
Dan Hermes
Waterfall
Waterfall
Analysis
Design

Development
Deployment
Waterfall

Why didn’t it work?
CHANGE

Design changes
 New requirements
 Code rewrites
 Versioning test plans and docs
 Release Rescheduling

Agile Manifesto
Individuals and interactions over processes and tools
 Working software over comprehensive documentation
...
How do we…
Keep a team in sync at high speed?
 Keep up with testing?
 Implement super-fast releases?
 Keep the code fro...
XP – the Dominant Agile
Approach
Scrum
 Test-driven Development (TDD)
 Behavior-driven Development (BDD)
 Continuous In...
Scrum
Scrum Master
 Product Owner
 Product Backlog
 Sprint Planning Meeting
 Sprint Backlog
 Daily Scrum Meetings
 S...
Scrum
.NET
 TFS Scrum Template

 VS 2012 Team Web Access
 Team Foundation Service
 Powerpoint Storyboarding
(VS 2012 Premium...
TFS Templates


Visual Studio Scrum 2.0+




Bugs + Product Backlog

MSF for Agile Software Development v6.0+



bugs...
VS Team Explorer - Scrum
Team Explorer – Work Items
Sprint Backog
Work Item
Team Web Access
Burndown Chart

Provision your project with SQL Server Reporting Services
Team Foundation Service

Kanban boards
TFS Licenses


Limited
 View My Work Items



Standard
 View My Work Items
 Standard Features
 Agile Boards



Full...
Urban Turtle
Eylean
Assignments

Kanban Board
So what does all this mean?
Test-driven Development (TDD)
1.
2.
3.
4.
5.

Write the Test
Break the Thing
Run the Tests
Fix All the Things
Run all the ...
Nunit Example
TDD in .NET
Unit Test Template(in VS)
 VSTest.Console.exe
(replaces MSTest in VS 2012)
 MSTest
 ASP.NET MVC Framework

Testing Frameworks
NUnit
 XUnit
 MBUnit

Mocking
VS 2012 – MS Fakes – Stub and Shim
 Moq
 Rhino
 NMock

TDD - What’s It Good For?
Highly effective for trivial code and code
with few dependencies.
 Effectiveness decreases with...
What else is important
when you move fast?
Knowing Your Destination
Behavior-driven Development
(BDD)
Move Fast
 Be Clear About Where You’re Going

Given-When-Then
Given (preconditions)
When (event occurs)

Then (a testable
outcome is achieved)
Story: Buy Coffee


Given there is coffee left in the store and I have
paid the cashier $5 plus tip.



When I stand in ...
BDD with .NET
SpecFlow
 Cuke4Nuke
 Cucumber with Ruby




Use BDD to create User Stories
Continuous Integration
(CI)

Image by Thoughtworks
Folwer’s Words of Wisdom
“My general rule of thumb is that every
developer should commit to the repository
every day”
 “C...
CI in .NET
Team Foundation Server
 Cruisecontrol.NET
 TeamCity by JetBrains

Coding, testing, and releasing
at breakneck speed.

What could go wrong?
Refactoring to Patterns


Refactoring: Improving the Design of
Existing Code
 by Martin Folwer



Design Patterns: Elem...
Martin Fowler
“Refactoring is a disciplined technique
for restructuring an existing body of
code, altering its internal st...
Erich Gamma
“Design patterns provide targets for refactorings.”
Refactoring Tools
Refactoring in Visual Studio
 ReSharper by JetBrains (plug-in for VS)

ReSharper Refactorings


















Adjust Namespaces
Change Signature (Parameters)
Convert Abstract...
ReSharper Refactorings
















Extract Method
Extract Superclass
Inline Field/Method/Variable
Intro...
Design Patterns
ASP.NET MVC Framework
 Model View ViewModel(MVVM)

Agile as Coding Culture
Pair Programming (not popular)
 Code Reviews (very popular)

Agile in .NET
Scrum
 Test-driven Development (TDD)
 Behavior-driven Development (BDD)
 Continuous Integration (CI)
 Re...
Sources







http://agilemanifesto.org/
Extreme Programming Explained, Kent Beck
Refactoring,Martin Fowler
Design ...
Dan Hermes

Lexicon Systems
.NET Development and Consulting
Email: dan@lexiconsystemsinc.com
Twitter: @lexiconsystems
Phon...
Agile Development in .NET
Agile Development in .NET
Agile Development in .NET
Agile Development in .NET
Upcoming SlideShare
Loading in...5
×

Agile Development in .NET

421

Published on

The is from the book Agile Development in .NET by Dan Hermes. Most Agile methodologies used in .NET shops nationwide are variations of Scrum and Extreme Programming(XP). This booklet covers these tools and techniques: Test-driven Development (TDD), Behavior-driven Development (BDD), Continuous Integration (CI), and Refactoring to Patterns. The QuickNotes series covers relevant topics in software development to provide the reader with a swift overview of important trends, terms, and concepts. This book is available at Amazon.com.

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
421
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Note Waterfall
  • Note Waterfall
  • Note Waterfall
  • Transcript of "Agile Development in .NET"

    1. 1. Dan Hermes
    2. 2. Waterfall
    3. 3. Waterfall Analysis Design Development Deployment
    4. 4. Waterfall Why didn’t it work?
    5. 5. CHANGE Design changes  New requirements  Code rewrites  Versioning test plans and docs  Release Rescheduling 
    6. 6. 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 
    7. 7. How do we… Keep a team in sync at high speed?  Keep up with testing?  Implement super-fast releases?  Keep the code from becoming a mess? 
    8. 8. XP – the Dominant Agile Approach Scrum  Test-driven Development (TDD)  Behavior-driven Development (BDD)  Continuous Integration (CI)  Refactoring to Design Patterns  Code Reviews 
    9. 9. Scrum Scrum Master  Product Owner  Product Backlog  Sprint Planning Meeting  Sprint Backlog  Daily Scrum Meetings  Sprint Review Meeting 
    10. 10. Scrum
    11. 11. .NET  TFS Scrum Template  VS 2012 Team Web Access  Team Foundation Service  Powerpoint Storyboarding (VS 2012 Premium, Ultimate,Test Professional)  Code Review (VS 2012 Premium, Ultimate)
    12. 12. TFS Templates  Visual Studio Scrum 2.0+   Bugs + Product Backlog MSF for Agile Software Development v6.0+   bugs separate from Product Backlog resolve work items before closing them
    13. 13. VS Team Explorer - Scrum
    14. 14. Team Explorer – Work Items
    15. 15. Sprint Backog
    16. 16. Work Item
    17. 17. Team Web Access
    18. 18. Burndown Chart Provision your project with SQL Server Reporting Services
    19. 19. Team Foundation Service Kanban boards
    20. 20. TFS Licenses  Limited  View My Work Items  Standard  View My Work Items  Standard Features  Agile Boards  Full      View My Work Items Standard Features Agile Boards Backlog and Sprint Planning Tools Request and Manage Feedback
    21. 21. Urban Turtle
    22. 22. Eylean Assignments Kanban Board
    23. 23. So what does all this mean?
    24. 24. Test-driven Development (TDD) 1. 2. 3. 4. 5. Write the Test Break the Thing Run the Tests Fix All the Things Run all the successful Tests
    25. 25. Nunit Example
    26. 26. TDD in .NET Unit Test Template(in VS)  VSTest.Console.exe (replaces MSTest in VS 2012)  MSTest  ASP.NET MVC Framework 
    27. 27. Testing Frameworks NUnit  XUnit  MBUnit 
    28. 28. Mocking VS 2012 – MS Fakes – Stub and Shim  Moq  Rhino  NMock 
    29. 29. TDD - What’s It Good For? Highly effective for trivial code and code with few dependencies.  Effectiveness decreases with complexity and dependencies in the code. 
    30. 30. What else is important when you move fast?
    31. 31. Knowing Your Destination
    32. 32. Behavior-driven Development (BDD) Move Fast  Be Clear About Where You’re Going 
    33. 33. Given-When-Then Given (preconditions) When (event occurs) Then (a testable outcome is achieved)
    34. 34. Story: Buy Coffee  Given there is coffee left in the store and I have paid the cashier $5 plus tip.  When I stand in line in front of the Barista’s counter  Then I should be served a coffee
    35. 35. BDD with .NET SpecFlow  Cuke4Nuke  Cucumber with Ruby   Use BDD to create User Stories
    36. 36. Continuous Integration (CI) Image by Thoughtworks
    37. 37. Folwer’s Words of Wisdom “My general rule of thumb is that every developer should commit to the repository every day”  “Continuous Integration is all about communication, so you want to ensure that everyone can easily see the state of the system and the changes that have been made to it.”  “One of the most important things to communicate is the state of the mainline build. “ 
    38. 38. CI in .NET Team Foundation Server  Cruisecontrol.NET  TeamCity by JetBrains 
    39. 39. Coding, testing, and releasing at breakneck speed. What could go wrong?
    40. 40. Refactoring to Patterns  Refactoring: Improving the Design of Existing Code  by Martin Folwer  Design Patterns: Elements of Reusable Object-Oriented Software  by Gang of Four (GoF) ○ Erich Gamma ○ Richard Helm ○ Ralph Johnson ○ John Vlissides
    41. 41. Martin Fowler “Refactoring is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior.”
    42. 42. Erich Gamma “Design patterns provide targets for refactorings.”
    43. 43. Refactoring Tools Refactoring in Visual Studio  ReSharper by JetBrains (plug-in for VS) 
    44. 44. ReSharper Refactorings                  Adjust Namespaces Change Signature (Parameters) Convert Abstract Class to Interface / Interface to Abstract Class Convert Anonymous to Named Type Convert Extension Method to Plain Static Convert Indexer (Default Property) to Method Convert Interface to Abstract Class Convert Method to Indexer (Default Property) Convert Method to Property Convert Property to Auto-Property Convert Property to Method(s) Convert Static to Extension Method Copy Type Encapsulate Field Extract Class Extract Class from Parameters Extract Interface
    45. 45. ReSharper Refactorings                Extract Method Extract Superclass Inline Field/Method/Variable Introduce Field/Parameter/Introduce Variable Make Method Non-Static/Non-Shared/Static/Shared Move Static Member Move String to Resource Move to Folder Move Type to Another File or Namespace/Outer Scope/Matching Files Move Members Up/Down Rename Replace Constructor with Factory Method Safe Delete Transform Out Parameters to Tuple Use Base Type where Possible
    46. 46. Design Patterns ASP.NET MVC Framework  Model View ViewModel(MVVM) 
    47. 47. Agile as Coding Culture Pair Programming (not popular)  Code Reviews (very popular) 
    48. 48. Agile in .NET Scrum  Test-driven Development (TDD)  Behavior-driven Development (BDD)  Continuous Integration (CI)  Refactoring to Design Patterns  Code Reviews 
    49. 49. Sources       http://agilemanifesto.org/ Extreme Programming Explained, Kent Beck Refactoring,Martin Fowler Design Patterns, GoF Refactoring to Patterns , Joshua Kerievsky Continuous Integration, Paul Duvall, Steve Matyas, and Andrew Glover
    50. 50. Dan Hermes Lexicon Systems .NET Development and Consulting Email: dan@lexiconsystemsinc.com Twitter: @lexiconsystems Phone: (781)526-0738 Blog: www.itshopkeeping.com
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×