The whole VB6 Petition thing erupted while I was going dark learning VSTS so I only found out about it because Darren Neimke mentioned it in one of our late night IM sessions – he was getting IBF working and I was figuring out why the Check-in window was giving me an ArgumentNullException.
My initial reaction was extreme, and I am pretty sure some censorable words passed my lips but Darren’s reaction to my reaction caused me to re-evaluate my position (my intiial ones was that the whole petition was stupid and they should just get over it).
I then went back and re-read the petition (if you agreed with my initial reaction – go and read it now, I won’t repeat it here). I think what they are asking for is really quite valid. I’ve got some clients at the moment that are still maintaing parts of their code base inside QuickBasic! The point is that correctly functioning code is a very valuable asset to most organisations and platform changes can introduce bugs that are very difficult to find – especially if your code base was written before unit testing was the new black.
The idea of providing a unified IDE for VB6 and .NET languages is compelling but not terribly realistic. While I don’t think the technical issues are insummountable I doubt that any development team could bring together a useful integration of the code bases in a timeframe for which it would be useful – would be an awesome skunk works product, but who has the time these days?
Now I’m faced with the dilemma – do I sign the petition?
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.
I’ve been fairly quiet on the blogging front recently, its almost as if I have gone dark, only looking up to get critical things done. During the day I’ve been doing the normal things, cutting code, mentoring making the odd decision here and there and scaring Darren with my stories of tree swinging killer robots (its OK, only I am insane, he backs away slowly everytime I bring it up).
Anyway, during the evenings I’ve been mostly pre-occupied with getting across Visual Studio Team System and its capabilities. One of my specialities at Readify is build automation using tools like NAnt and Draco.NET to help teams improve their general development practices – so its fairly logical that Team System would interest me greatly.
Its fairly safe to say that most of the guys at Readify have top notch development skills in .NET and then have various specialities based on their backgrounds and personal interests. The problem is, because we tend to get into technologies fairly early its hard to find ways for us to get a leg up on things just around the corner – so the only thing we can do is allocate a block of time with some rough goals and dive right in.
I personally had a week or so set aside to investigate VSTS in the first part of this year and I was having trouble finding the time amongst my training, mentoring and consulting schedule so I made the decision to attempt to do it in the evenings after work, the drawback being that I would need to extend the time it took out to about two weeks. So the boss hired three workstations for me and had them delivered to my house. Those machines were picked up this morning so now I have alot my real-estate on my desk and I’m left digesting all that I have learned.
I’m looking forward to sharing that with you guys out there in the blogosphere over the next week or so – but for now – its just good to be back, I’ve got 4,900 unread blog entries to catch up on, I can’t believe I missed the whole VB6 petition thing when it exploded!
I just updated the FrequentlyAskedQuestions page on the CodeCampOz wiki with the latest distribution by city figures. We also have 220 people registered for the code camp. Its really exceeded my expectations and I’m starting to get excited about presenting there and also seeing all the other peoples presentations – and of course meeting everyone who is making the trip.