Agile Development VS 2005 Team vs. Open Source Toolkit - PowerPoint PPT Presentation

1 / 32
About This Presentation
Title:

Agile Development VS 2005 Team vs. Open Source Toolkit

Description:

2003 Open source tools. 2005 Team System. Traditional. 1 Deadline months / years out. ... Thoughtworks open source project. Read Martin Fowler's bliki. ... – PowerPoint PPT presentation

Number of Views:104
Avg rating:3.0/5.0
Slides: 33
Provided by: MichaelG1
Category:

less

Transcript and Presenter's Notes

Title: Agile Development VS 2005 Team vs. Open Source Toolkit


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

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

3
Traditional
Agile
  • 1 Deadline months / years out.
  • 4 Phases (Design, Develop, Test, Deploy)
  • Resist or Control Change
  • Distant / Unengaged Customer
  • 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.

4
Cost of Change
  • 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.

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

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

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

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

10
Design for Simplicity / Design For Testing
  • Only design the system to support existing
    requirement
  • Avoid overly complicated frameworks
  • Too Many What-If requirements
  • Build In Complexity that will never be used
  • Flexibility Complexity
  • 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?
  • Putting the theory into practice.
  • Agile is more than a project management
    methodology.
  • Infrastructure is required to implement an agile
    development methodology.

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

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

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

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

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

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

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

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

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

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

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

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

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

26
Resources
  • NCover
  • www.ncover.org
  • http//weblogs.asp.net/jkey/archive/2004/10/07/239
    600.aspx
  • NUnit
  • http//www.testdriven.net
  • NAnt
  • http//nant.sourceforge.net/

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

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

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

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

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

32
Summary
  • Which is better?
  • Team System has better project management
    integration
  • Juggling Flaming Swords
  • Tool support works against Test-Driven Dev.
  • Best for 10 member teams, given costs
  • Source Control greatly improved.
  • Open Source Tools contribute to agile philosophy
  • Not really Free
  • May not scale as nice Management interface
  • Big projects Try to scale down team
Write a Comment
User Comments (0)
About PowerShow.com