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.
5. CHANGE
Design changes
New requirements
Code rewrites
Versioning test plans and docs
Release Rescheduling
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. 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. XP – the Dominant Agile
Approach
Scrum
Test-driven Development (TDD)
Behavior-driven Development (BDD)
Continuous Integration (CI)
Refactoring to Design Patterns
Code Reviews
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. 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
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
30. 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.
35. 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
38. 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. “
39. CI in .NET
Team Foundation Server
Cruisecontrol.NET
TeamCity by JetBrains
42. 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
43. Martin Fowler
“Refactoring is a disciplined technique
for restructuring an existing body of
code, altering its internal structure
without changing its external behavior.”
47. 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
48. 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
53. Dan Hermes
Lexicon Systems
.NET Development and Consulting
Email: dan@lexiconsystemsinc.com
Twitter: @lexiconsystems
Phone: (781)526-0738
Blog: www.itshopkeeping.com