Team Foundation Server and Impact Modelling!

I had an idea last night while I was trying to convince my active brain that Big Brother was actually a new episode of Family Guy. It had to do with software change models and simulations, and it all kinda wrapped up as a set of TFS tools…wouldn’t you know!

My idea was a little fragmented, so let me just blurt it out and hope it is somewhat cogent.

It starts with work items. The trend right now is to use work items to store what I call layer 1 data; that is, operational, tactical data such as who does what, when, how long, etc. I was thinking, if you could tag a work item with a model code, then down the track, you could report on that data based on your metamodel. What would be the metamodel? Well, say you had a system, and you broke it down based on models and patterns. And over time, you were able to identify a limited, well known set of models and patterns that were particular to a project type, say a web based CRM project.

Now, over time, as changes were requested, you could record the delta change of varying elements of the work item as it applied to a particular model or pattern, for example, if someone asked for two screens to be collapsed into a single, tabbed screen, with CRUD capability, you could record the fact that that change required two extra days of coding by a developer, cost $400 more to the customer, and moved the release date of that stream by 2 days. Also, as that work item went through testing and building, you could track the holistic impact of that change across the whole SDLC, so retrospectively, you could start to see that a change of that type would have a holistic impact of resource cost in the development stage, quality cost in the testing stage, and time cost in the release stage.

OK, so the system is now tracking this stuff, and over time, it’s building up information around what I’m calling an “Impact Model”.

What would be the purpose of being able to do this? Well, I was thinking along the lines of estimating work and projecting change costs to a customer. I would love to be able to say, this next project is going to involve these common requirement models, and they historically have looked like this, have required these kinds of resources, have taken this long to build, and have had these hot spots for quality and time, and have TFS spit out a cost estimate with breakdowns for all the elements I know about. And the other, really cool part I would love, is the ability for a customer to surf to a website, punch in a requirement change, and hit the “Bill Me!” button, and have a response that shows them the cost and risk associated with their change, including estimations of time, dollars, release push back, risk of quality change, etc.

Hmmm, must think more about this, but right now, my Meego is telling me it’s dinner time :)