The Beginning
I would like to introduce an approach to developing software in an agile manner that leverages some of the new capabilities introduced with Visual Studio Team System 2010 and in particular focusing on the Architect Edition to add modeling into the software development process while still maintaining an agile methodology. This first post is about setting the stage for the project and the initial setup that will drive a series of posts on use cases.
The Company
The fictional company that we will be dealing with in this series is the We Transport transportation company. We Transport is a company that provides logistics and shipping information for their clients. Their clients are any other company that needs to move goods from one location to another in an ongoing manner. We Transport owns and operates a fleet of trucks and warehouses and operates throughout North America. They employ drivers, warehouse workers and clerical staff as well as hold contracts with individual contract drivers. We Transport also provides expedited shipping on an as needed basis for their clients by acting as a broker for the top three courier services available today. We Transport can also coordinate and broker shipments that include rail transportation and some ship based transportation although that portion of their business not considered a profit center and so is only offered to their larger customers in certain situations.
We Transport’s customers are typically either retail based enterprises that require consumer goods to supply their stores or are the manufacturers themselves that provide and store large quantities of goods from off shore locations to distribution warehouses throughout the continent. We Transport maintains and negotiates contracts with their customers that establish shipping rates based on frequency and quantity as well as storage fees to provide warehousing services. Although there are standard contract types that are used, each customer can request specific deals as part of the negotiated contract and as such each contract will have some degree of variation with all others.
The Project
We Transport has recently identified a need for a new application to provide increased services to their clients and increases operational efficiencies. An exhaustive build versus buy initiative was embarked upon with the end result being an identified need for a custom developed solution. We Transport has decided to embrace Visual Studio Team System for their initiative. We will examine how Team Foundation Server and Visual Studio Team System Architect can fit into the software development lifecycle.
To begin the endeavor a new project is created in the We Transport Team Foundation Server. We Transport is using Visual Studio Team System 2010 and they work in an agile manner, therefore the new project in Team Foundation Server is created using the MSF for Agile Software Development v5.0 template.
One of the work item types created as part of the MSF for Agile Software Development v5.0 project template is the “User Story”. A user story is a light weight artifact that is used by several of the more popular agile methodologies and is well documented and described by Mike Cohn (Cohn, 2004). In most organizations a user story is nothing more than a very short description written by a business focused team member, preferably a target user of the application but it can be an analyst or user proxy. The user story is written on a 3x5 index card and posted on a cork board where it is managed and tracked throughout its lifecycle. The user story represents nothing more than conversation that must take place between the business user and the developer of the story or development team. An accepted form of a user story is a sentence structured like: “As a <role> I want to perform <action> to achieve <goal>”.
The user story work item type as defined within the MSF for Agile Software Development v5.0 template tracks much more information than just the sentence as defined above. I recommended that you continue to use the index card approach along with the cork board for tracking if that is what you are comfortable with and as long as the method has been successful for you. However, you should also duplicate the index card in Team Foundation Server as a user story work item using the sentence on the card as the title of the work item.
Writing quality and meaningful user stories is a book unto itself and the definitive resource is Mike Cohn’s (Cohn, 2004), it is highly recommended that you get a copy of Mike’s book for further details on user stories. Identifying and cataloging the user stories for the system under development should be your first action when starting a new project. In fact this step almost always happens well before the project team has been assembled because these light weight requirements generally need to be identified to determine if there is even a need for a project and more often than not, these same user stories are used for initial estimation to determine target budgets, team size, and other resources required to bring together the rest of the project team. Once you have created your user stories and entered them into the Team Foundation Server project you can start to track and use them to drive the development of your project. Using the MSF for Agile Software Development v5.0 template to track and manage projects is not the topic of this series. Using Visual Studio Team System Architect is though, so we will switch gears in the next post to look at how to leverage Team Arch as part of the SDLC.
Bibliography
Cohn, M. (2004). User Stories Applied: For Agile Software Development. Addison-Wesley Professional.
0 comments:
Post a Comment