The Team System guys released the VSTS Extensibility Kit for the December CTP in January and its going to be interesting to see what tool vendors will do. I started thinking about places I could plug in value to an already compelling product – one of my first thoughts was Yesterday’s Weather.

When I am talking to development teams I often mention “yesterday’s weather” as a good estimation technique. In agile methodologies its often used to sanity check the workload for a specific iteration, and while thats a fantastic tool I think it could be used to even greater advantage.

Because the lads at Readify tend to get across a lot of projects we start to get a good feel for the amount of effort involved to perform various development tasks.

For example, I could tell you that developing an application authentication service which backs onto multiple credential stores (AD, NDS and a database) and performs role to right mapping (for when role/group names in the credential stores aren’t matching) is probably going to take you between two to three weeks depending on how hard those stores are to integrate with.

That body of knowledge is valuable to us when we help clients determine the risk associated with a specific approach to solving a problem but I often wonder whether it would be possible to create a central repository for this kind of information. Imagine if every development team recorded the following information for each unit of work they performed.

  • Description of solution.
  • Keywords (for searching)
  • Time Estimated
  • Time Allocated
  • Team Characteristics

So a top level entry might look like:

  • Description – A public e-commerce site with membership, persistant shopping carts and a product catalog including individual product descriptions with reviews and photos which interfaces into an Australian credit card gateway provider.
  • Keywords – e-commerce, shopping cart, product catalog, reviews, photos, credit card.
  • Time Estimated – Two Months
  • Team Characteristics – One project manager, two developers and one tester. Introductory .NET development skills.

It could then be broken down into its constituent parts forming a collection of estimations and actuals (the kind of stuff that project managers deal withe every day). So what has this got to do with Team System?

Well, Team System has this concept of Work Items, and depending on what methodology template you choose they would be work items which constitute a breakdown of the applications functional requirements. When scoping out a project it would be great to be able to hook into a global body of knowledge that is regularly contributed to so that against each estimate you put in the project plan you could associate some “yesterday’s weather” to validate it.

In fact this process could be automated so that based on the keywords of the work item the database would be automatically searched and warnings given if the estimates you were giving seemed to be out. It would be a great feature – I wonder if thats something you could do with the Extensibility Kit.