Agile Software Development
Agile Software Development
Since I joined Microsoft Belux last year I've been thinking about moving my blog to MSDN. But ever since I didn't really saw the added value of moving my blog as both sites are using the same platform:
CommunityServer. But since a couple of weeks I've heard a lot of very positive feedback on the recently deployed 2.0 version of
CommunityServer that powers the
MSDN and
TechNet blogger sites. So far the experience is far better than on DonNetJunkies. Today I finally decided to move my blog to
http://blogs.msdn.com/davbosch/. I want to thank
Donny for hosting my blog since August 2004.
So please subscribe to my new blog on the MSDN blogs:
Thanks for reading my blog and I hope you will continue to do so at http://blogs.msdn.com/davbosch/default.aspx!
Before the weekend - during the Launch 2005 week - eWeek.com announced that Microsoft continue to support the use of agile development methodologies, such as extreme programming and Scrum, to revise its products faster. Read the full article "Microsoft Lauds 'Scrum' Method for Software Projects".
Today eWeek publishes the article "Microsoft Taps Former Rational Heavyweight to Lend Credence to Enterprise Tools Play ". Indeed, Ivar Jacobson, known as one of the fathers of the popular Rational Unified Process (RUP), will lead an effort to deliver a lightweight unified process to the Microsoft Solutions Framework. Jacobson agrees on the fact that RUP is heavyweight and needs some refactoring.
"RUP is one of my babies, and babies grow up, and some of them need correction."
It's great to see that Microsoft is working hard to bake process within the software development environment through Visual Studio Team System. This means that in the near future we'll be able to use a kind of UP based on the Microsoft Solutions Framework integrated with Microsoft Visual Studio 2005 Team System. Or as Jacobson says: "We build a fresh new process architecture based on aspect-oriented ideas, and using the MSF and VSTS is a very good platform to instantiate such a process."
Read the full article "Microsoft Taps Former Rational Heavyweight to Lend Credence to Enterprise Tools Play" at http://www.eweek.com/article2/0,1895,1886531,00.asp".
A couple of months ago I remember discussing on how to reduce the dependency coupling of objects. We had a look at a number of design patterns like Inversion of Control and Dependency Injection which are great ways to solve this issue. The September issue of the MSDN Magazine has a good article on dependency injection using .NET dependency injection frameworks like Spring.NET and Pico.NET.
The Architecture JOURNAL 5 has been published on the Architecture Resource Center.
There are some great articles in this issue:
You can also sign up for a free subscription to the hardcopy!
Not a lot of blogging lately mainly due to our team off-site in Lisbon, Portugal. We had a lot of interesting discussions and some great fun. Thanks to Joao, Nuno, Jose Antonio, Pedro and Vitor for this wonderful experience!
While catching up on blogs and mail I came accross some interesting blog posts:
Scott, Brad, Peter, Brian will be doing a webcast on Test-Driven Development: Test-Driven Development Using Visual Studio Team System.
Summary
Why test-driven development? Although developers have been unit testing their code for years, tests are typically performed after the code is designed and written. As a great number of developers can attest, writing tests after the fact is difficult to do and often omitted when time runs out. Test-driven development attempts to resolve this problem and produce higher quality, well-tested code by putting the cart before the horse and writing the tests before we write the code. This webcast demonstrates how you can use Microsoft Visual Studio Team System to implement test-driven development in your organization.
Jim Newkirk, author of "Test Driven Development with .NET", will be discussing how you can use Visual Studio Team System to implement test driven development in your organization.
Sign up here!
Next Thursday, April 14th, I will be delivering a presentation on Test-Driven Development for the Software Testing User Group of TI/KVIV. This meeting will take place in the "Ingenieurshuis" in Antwerp, and will start 19:00 sharp. The exact address is Desguinlei 214, 2018 Antwerpen, Belgium (map).
The theme of the presentation is "Test Driven Development".
Abstract
Test Driven Development (TDD) is a way of writing code that produces clean, concise and well tested code. It is different than the way most people are
taught to develop code, and takes some time to getting used to. Test Driven Development is one of the most important disciplines of Agile methods.
In this session you will get an in-depth description on how TDD serves as a bridge between high-level application design and code design. You will also learn how to write unit tests employing test-first design and how these tests will help in simpler, clearer and more robust code. The session concludes by covering some tools, frameworks and techniques that will help you getting started with Test-Driven Development.
This presentation will be held in English. After the presentation a drink will be offered to the attendees.
This meeting is free of charge for everyone interested. Attendees should register! See you there!
A new build (74) of Microsoft Solutions Framework (MSF) for Agile Software Development, Beta has been made available through the Microsoft Download Center.
This download contains the process guidance that will be shipping with Visual Studio Team System. MSF for Agile Software Development is a scenario-driven, context-based, agile software development process that utilizes many of the ideas embodied in Team System. This process incorporates proven practices developed at Microsoft around requirements, design, security, performance, and testing.
This build of MSF Agile has three main tabs:
Concepts: the content on this page dives into some of the Visual Studio Team System 2005 concepts like Process Guidance and Team System.
Microsoft Solutions Framework (MSF) Agile is process guidance for the current Team Project. Key concepts for MSF Agile include roles, activities, workstreams, and work products.
Team System provides tools to enact the MSF guidance. It explains users and groups, the work item database and metric warehouse, source control and project portal.
Cycles and Iterations: the smooth integration of MSF in Team System supports rapid iterative development with continuous learning and refinement. It shows how product definition, development, and testing occur in overlapping, iterations, resulting in incremental completion of the project.
Principles: Microsoft Solutions Framework (MSF) Agile is a scenario-driven, context-based, agile software development process for building .NET and other object-oriented applications. MSF Agile directly incorporates practices for handling quality of service requirements such as performance and security. It is also context-based and uses a context-driven approach to determine how to operate the project. This approach helps create an adaptive process that overcomes the boundary conditions of most agile software development processes while achieving the objectives set out in the vision of the project.
Core ideas of MSF agile are:
Partner with Customers
Foster open communications
Work toward a shared vision
Empower team members
Establish clear accountability and shared responsibility
Focus on delivering business value
Stay Agile, Adapt to Change
Invest in quality
Learn from all experiences
Always Create Shippable Products
Besides the nice interface and graphs in the download, it also contains an in-depth overview and description of the roles involved in MSF agile (Architect, Business Analyst, Project Manager, Tester, Developer, Release Manager).
This MSF Agile kit also provides a number of examples and templates for each role.
Example: the solution architect is guided through the different steps of creating a solution architecturea and he has also some examples of an application diagram, system diagram, prototype and a logical datacenter diagram available for reference.
MSF Agile provides guidance to all team members on work items. A work item is a database record which Visual Studio Team Foundation uses to track the assignment and state of work. The MSF Agile process defines five work items to assign and track work. These five work items are the scenario, quality of service requirement, task, bug, and risk.
If you want to get a grip on MSF agile, make sure to check the index tab which covers the work streams. Work streams are groups of activities that flow logically together and are often associated with a particular role. This page is a great place to start diving into MSF Agile.
Sam Newman posted this diagram which describes The Agile Release Process

The process described in the diagram above is more or less the approach we currently take. However we also have an integration test phase to test (some of) our builds against a third-party codeline(s).
With Visual Studio 2005 Team System almost all of the necessary elements to adopt this agile mindset are present. While digging into VSTS 2005 I must admit it's - so far - a great experience to control all these software lifecycle aspects from within one environment. There's so much to discover in VSTS 2005. I can only recommend to give it a try yourself!