Presentation is loading. Please wait.

Presentation is loading. Please wait.

Agile Development VS 2005 Team vs. Open Source Toolkit Michael Gillespie James Brown Agillence Software Inc.

Similar presentations


Presentation on theme: "Agile Development VS 2005 Team vs. Open Source Toolkit Michael Gillespie James Brown Agillence Software Inc."— Presentation transcript:

1 Agile Development VS 2005 Team vs. Open Source Toolkit Michael Gillespie James Brown Agillence Software Inc.

2 Agenda Value of Agile Methods Value of Agile Methods Agile Design Agile Design Implementing Agile Implementing Agile 2003 Open source tools 2003 Open source tools 2005 Team System 2005 Team System

3 Traditional 1 Deadline – months / years out. 1 Deadline – months / years out. 4 Phases (Design, Develop, Test, Deploy) 4 Phases (Design, Develop, Test, Deploy) Resist or Control Change Resist or Control Change Distant / Unengaged Customer Distant / Unengaged Customer QA is a Phase QA is a Phase Short Iterations (Weeks) Production Read Software at each Iteration Interactions between developers and users Embrace Change Test First Development Shortest Feedback Loops possible. Agile

4 Cost of Change Traditionally cost of change increases dramatically over time. Traditionally cost of change increases dramatically over time. Cost of Change Time

5 Cost of Change Using Agile methods and infrastructure the cost of change increase very slowly (ideally: not at all) over time. Using Agile methods and infrastructure the cost of change increase very slowly (ideally: not at all) over time. Cost of Change Time

6 The Value of Agile Methods Goal: Create business value with IT. Goal: Create business value with IT. Agile is a value driven process. Agile is a value driven process. Add the features that generate the highest value first. Add the features that generate the highest value first. Option value of agile methods Option value of agile methods Stop when the cost of continuing to add features > the Value derived by continuing. Stop when the cost of continuing to add features > the Value derived by continuing.

7 Agile Assumptions Software developed by a team. Software developed by a team. We have imperfect information. We have imperfect information. Limited initial knowledge Limited initial knowledge Business environment is changing Business environment is changing The customer / user is very involved in the process. The customer / user is very involved in the process. We have a ‘healthy / functional’ environment. We have a ‘healthy / functional’ environment.

8 Key Elements of Agile Process People People Process Process Transparency Transparency Discipline Discipline

9 Additional Elements of Agile Project Management Approach Project Management Approach Develop and validate architecture ASAP Develop and validate architecture ASAP System Design Approach System Design Approach Design for Unit Testing Design for Unit Testing Infrastructure to support agile approach Infrastructure to support agile approach

10 Design for Simplicity / Design For Testing Only design the system to support existing requirement Only design the system to support existing requirement Avoid overly complicated frameworks Avoid overly complicated frameworks Too Many ‘What-If’ requirements Too Many ‘What-If’ requirements Build In Complexity that will never be used Build In Complexity that will never be used Flexibility = Complexity Flexibility = Complexity Instead use unit tests to adapt to changes in requirements when they are needed. Instead use unit tests to adapt to changes in requirements when they are needed.

11 Implementing Agile How do we put an infrastructure in place that actually allows us to realize the benefits of agile development? How do we put an infrastructure in place that actually allows us to realize the benefits of agile development? Putting the theory into practice. Putting the theory into practice. Agile is more than a project management methodology. Agile is more than a project management methodology. Infrastructure is required to implement an agile development methodology. Infrastructure is required to implement an agile development methodology.

12 Agile Infrastructure Infrastructure Infrastructure Make it easy to maintain discipline using tools and automation where possible. Make it easy to maintain discipline using tools and automation where possible. Provide for better team communication. Provide for better team communication. Help manage the many details involved with software development – especially in a team environment. Help manage the many details involved with software development – especially in a team environment. Allows change at a reasonable cost. Allows change at a reasonable cost.

13 Survey – Unit Testing How many people currently use unit testing? How many people currently use unit testing?

14 Agile Tools – What Do they do for me? Unit Testing Unit Testing Some Regression Testing Some Regression Testing Drives Requirements Drives Requirements Allows you to change with confidence Allows you to change with confidence Performance Enhancements Performance Enhancements Requirements Changes Requirements Changes Auditable – Becoming more important in a Sarbanes-Oxley environment Auditable – Becoming more important in a Sarbanes-Oxley environment

15 Survey – Automated Builds How many people currently use Automated Builds / Continuous Integration? How many people currently use Automated Builds / Continuous Integration?

16 Agile Tools – What Do they do for me? Automated Builds (Continuous Integration) Automated Builds (Continuous Integration) Provides Transparency – we always working software Provides Transparency – we always working software Lets Developers focus on development Lets Developers focus on development Continuous Builds – Instant Feedback loop Continuous Builds – Instant Feedback loop

17 Build / Deployment Management

18 Build and Deployment Management Source code is golden Source code is golden We always build from source We always build from source Don’t store compiled binaries Don’t store compiled binaries Rigorous and correct use of source code management tools are required. Rigorous and correct use of source code management tools are required. Source Code Promotion Model Source Code Promotion Model Version ‘Tagging’ in SCM tool Version ‘Tagging’ in SCM tool

19 Survey – Code Coverage How many people currently use a Code Coverage analysis tool? How many people currently use a Code Coverage analysis tool?

20 Agile Tools – What Do they do for me? Code Coverage Code Coverage Measures which lines of code are covered in the unit testing Measures which lines of code are covered in the unit testing A good metric, but not perfect. A good metric, but not perfect. Source Control Source Control Vital on any project Vital on any project Code promotion model Code promotion model Deployment / Versioning Deployment / Versioning

21 Unit Testing Sidebar Good Unit testing starts at the Design Phase Good Unit testing starts at the Design Phase Test First Test First Refactor Refactor Test Fine-Grained functionality Test Fine-Grained functionality Setup, Assert Condition, Clean-Up Setup, Assert Condition, Clean-Up DB Independence vs. Database Testing DB Independence vs. Database Testing Need infrastructure around database Need infrastructure around database Testing More than business layer – violates fine grained approach Testing More than business layer – violates fine grained approach NHibernate Approach NHibernate Approach End to End – Testing Should cover persistence End to End – Testing Should cover persistence Mock Objects Mock Objects Great for service oriented – loosely coupled connections. Great for service oriented – loosely coupled connections.

22 Database Sidebar Managing the database Managing the database Team development Team development Shared database model Shared database model Separate database model Separate database model Manage database changes in source code control. Manage database changes in source code control. Flashing database image Flashing database image Applying database changes Applying database changes

23 The Open Source Toolkit NUnit NUnit Attribute Based Testing Framework Attribute Based Testing Framework Console or GUI apps Console or GUI apps Test-Driven.net Test-Driven.net VS plugin to debug NUnit tests in IDE VS plugin to debug NUnit tests in IDE Very Quick Unit Testing and Debugging Very Quick Unit Testing and Debugging NCover NCover Code Coverage Utility Code Coverage Utility Brief Demo Brief Demo

24 The Open Source Toolkit NAnt NAnt Xml based build scripting Xml based build scripting Modeled after Ant Modeled after Ant Extensible through.NET Extensible through.NET Cruise Control.NET Cruise Control.NET Thoughtworks open source project Thoughtworks open source project Read Martin Fowler’s bliki. Read Martin Fowler’s bliki. Monitors source control and fires off NAnt script when source control changes Monitors source control and fires off NAnt script when source control changes Execute Build,Unit Tests, Automates Automated System Tests, FxCop, etc. Execute Build,Unit Tests, Automates Automated System Tests, FxCop, etc. Task Tray icon. Or Lava Lamps tell you when the build is broken. Task Tray icon. Or Lava Lamps tell you when the build is broken. Brief Demo Brief Demo

25 Source Control Several Options Several Options 2 hr discussion in itself 2 hr discussion in itself Not open source, but we’ll demo with VSS. Not open source, but we’ll demo with VSS. Code Promotion Code Promotion Dev. Vs. Build Dev. Vs. Build Sharing & Pinning is VSS Sharing & Pinning is VSS Tools to help Tools to help Promotion Viewer Promotion Viewer IDE Plugin IDE Plugin Build Buddy Build Buddy

26 Resources NCover NCover www.ncover.org www.ncover.org www.ncover.org http://weblogs.asp.net/jkey/archive/2004/10/07/2 39600.aspx http://weblogs.asp.net/jkey/archive/2004/10/07/2 39600.aspx http://weblogs.asp.net/jkey/archive/2004/10/07/2 39600.aspx http://weblogs.asp.net/jkey/archive/2004/10/07/2 39600.aspx NUnit NUnit NUnit http://www.testdriven.net http://www.testdriven.net http://www.testdriven.net NAnt NAnt http://nant.sourceforge.net/ http://nant.sourceforge.net/

27 Survey – Team System How many people have started to look into team system? How many people have started to look into team system? Do you have a strategy in place to migrate to team system? Do you have a strategy in place to migrate to team system?

28 VS Team 2005 Unit Testing Unit Testing Attribute Based Attribute Based Looks similar Looks similar Tighter integration into IDE Tighter integration into IDE Integrated into Project Tracking reports Integrated into Project Tracking reports Unit Test Generator Unit Test Generator Useful for existing code Useful for existing code Violation of TDD Violation of TDD TDD as a design method as much as test methodology TDD as a design method as much as test methodology Unit Testing is part of TDD, but not sufficient. Unit Testing is part of TDD, but not sufficient. Code Coverage Code Coverage Demo Demo

29 VS Team 2005 MS Build MS Build Xml based build scripting tool Xml based build scripting tool Extensible through.NET assembly Extensible through.NET assembly Schedule Builds Schedule Builds Some have plugged it into Cruise Control Some have plugged it into Cruise Control Refactoring Tools in IDE Refactoring Tools in IDE

30 VS 2005 Source Control Rebuild From Ground Up Rebuild From Ground Up Another 2 hr presentation Another 2 hr presentation SQL Server Backend SQL Server Backend Check-in Policies Check-in Policies Tie Check-in to work item Tie Check-in to work item Validate Unit Tests Pass Validate Unit Tests Pass Require Code Coverage, etc Require Code Coverage, etc

31 Work Tracking Most Open Source tracking tools are methodology specific. Most Open Source tracking tools are methodology specific. XP XP FDD FDD Scrum Scrum NTeam – Project to keep an eye on. Ambitious Open source Initiative NTeam – Project to keep an eye on. Ambitious Open source Initiative Team Work Item Tracking in VS Team Team Work Item Tracking in VS Team

32 Summary Which is better? Which is better? Team System has better project management integration Team System has better project management integration ‘Juggling Flaming Swords’ ‘Juggling Flaming Swords’ Tool support works against Test-Driven Dev. Tool support works against Test-Driven Dev. Best for 10+ member teams, given costs Best for 10+ member teams, given costs Source Control greatly improved. Source Control greatly improved. Open Source Tools contribute to agile philosophy Open Source Tools contribute to agile philosophy Not really ‘Free’ Not really ‘Free’ May not scale as nice – Management interface May not scale as nice – Management interface Big projects – Try to scale down team Big projects – Try to scale down team


Download ppt "Agile Development VS 2005 Team vs. Open Source Toolkit Michael Gillespie James Brown Agillence Software Inc."

Similar presentations


Ads by Google