Welcome to AspAdvice Sign in | Join | Help
I want to announce that I have posted an alpha version of the Kanban Process Template for TFS on codeplex.  The template as currently has a set of Areas and Iterations to help get started with Kanban.  This Process template is based off the MSF Agile template.  There is now a score field, that has points based off the fibonacci sequence.  I plan to add reports and more process guidance to this.  I'd love to get feedback on what else is needed for this template.  I assume that you know how to add new Process templates to Team Foundation Server.  This template has been tested with TFS 2008. 

I wanted to write an update about our change management system.  Now that we have a kanaban system driving our change process we are ready to limit certain parts of our current Kanban.  See this post for my earlier thoughts on what we would do.  That post was speculation on what we should implement.  We just decided to place limits on our parking lot.  For our customers this may be painful, but I believe our reasons for imposing this will benefit the business.

First our applications can only have a certain number of change tickets in our change ticket backlog (or parking lot).  So application A can only submit 5 tickets into the Kanban.  Once all 5 have gone through the Kanban board to completion, then the Product owners of Application A can submit 5 more tickets.

Since our system is FIFO, this helps us solve the problem of having customers prioritize their changes.  I think these limits will help us highlight constraints, and I hope that frivolous changes will drop off an not ever reach us.  One of the things I think we all need to keep in mind is that we will always be tweaking this process.   The goal is to be hyperproductive!

Hey folks. A quick technical post for anyone starting to implement Project 2007 Server from 2003.  Your enterprise global cannot be easily moved between environments.  This mainly means any VBA that you may have as carryover from 2003.  I'm assuming that if you utilize VSTO to code your Client tasks with Project objects, you don't have this problem.  But I see this as an issue that could be a lot easier.  I used to be able to get Project global from a development, to a testing to a production environment using backups.  Now I have to Import VBA files to the global.  And then I have to recreate views, tables and filters manually.  I'd like to see a better way to accomplish this.

Looking at the web service factory more I see some possible value.  I had problems installing the version with source,  but it turns out that it was my directory structure.  I initially used My Documents to store the project and the documentation does mention that you might get this error.  Apparently my brain was thinking this only happened to the other guy, until I finally tried in a smaller tree (c:\dev). 

Now that I've got that figured out, I'm actually following the 15 minute walkthrough on codeplex.  I believe that this process can aid agile development by creating standard structures for your projects etc.  It's an interesting demonstration of the guidance package technology. 

I do question how agile this is.  For some reason I believe we can utilize this for an agile project, but some the service factory model smacks of the architect creating the design from on high, and don't let the developers below don't muck with it.   Even if that becomes my final verdict on the service factory, I think you can create lighter guidance packages that can help do some of the more mundane work for your projects.  I'll continue to post on this new way of architecting, and guiding developers.

Just released earlier in February, is the Web Service Software Factory: Modeling Edition for 2008.  This new software factory utilizes the Guidance Automation toolkit in the source code.  An intial look seems to me that it's a bit heavy for an agile process, but that's just my initial reaction.  I want to see if software factories can be included in an agile process, so I need to do a deeper dive.  I'd love to hear what others think.

Quick heads up on a great new tool for teams on the patterns and practices msdn site.  The Guidance Automation Extensions and Guidance Automation Toolkit Feb 2008 release is now out.  This tool looks like that it might be a great addition to aid enterprise development groups in emphasizing coding standards. 

Call me crazy, but I see a use for guidance for something like custom sharepoint applications.  For instance, documentation on our standard event handler code, along with sample classes.  I'm not sure if this is possible with this tool, but I'll be investigating.  I'd love to hear if anyone else is using this tool, for this purpose.

Interesting post over on the Lean Software Engineering blog, "There are no a priori best practices".  In a couple of sentences Corey lays out what I think being Lean is about.  What I get out of the 2 sentences are that you must ALWAYS improve.  You may be the best but that doesn't mean your software practices are the best.  In 2 years there will be a better way to do things.   Keep these things in mind as you adopt new practices, and don't be afraid to experiment.

On MSDN, there are a series of articles to help explain how to use VSTS and TFS within a large organization.  Called Global Bank: A Scenario for Visual Studio Team System 2008.  This article has an excellent introduction to the possibilities of how VSTS and TFS can assist with your software development life cycle. 

There is a lot I love about VSTS and TFS to help in managing development.  And there is some room for improvement.  The article shows how a company utilize all aspects of VSTS.  For instance there's a good introductory scenario using the architecture tool.  I'm not sold on this tool for various reasons, but if you haven't tried it out, there's a good example of how to use the tool.  What sets this apart is the interconnections between the different tools. 

Another problem I have with the presentation of this is that it follows a more waterfall method.  So I'm thinking an agile scenario might be a good story to create.  Hey that might be a great idea that I might write!  But if you don't have a mature software organization, this series could help you visualize how to grow that organization.

Since I use virtual images of TFS for some of the things I'm doing, thought I'd let you know that these virtual machines are available now on MSDN. The nice about these images is the preinstallation of Visual Studio Team System, and Team Foundation Server.  I'd also wish for preinstall of at least the BI studio stuff for SQL Server 2008, but having the other parts already installed is great. 

Hey, these images are trials.  But if you have an MSDN subscription or buy a valid version of this stuff, there are instructions for upgrading these images from trials to full versions.  Without unistalling a reinstalling, which should be helpful.  For some of the articles etc. that I write, these is extremely helpful, and saves time.  Happy coding!

I wanted to share some general accomplishments from our first quarter of using Kanban in terms of metrics.  Our cycle times have been slashed in half!  Our backlog is the lowest I've ever seen it at.  And we've been able to quickly identify blockages and fix those issues.

I don't want you to think there's not room for improvement.  Our quality needs some work.  Since we don't have a QA group, we need to find some better way to bake in quality.  From the Kanabandev mailing list , Stuart C. mentioned that we could create a situation to encourage developers to better test their code.  This would be accomplished by forcing devs to change any bugs encountered after they say the change item has been completed.  This new work is in addition to their current work, so hopefully this encourages developers to create quality code.

I'm a little late to the party on this, but Microsoft is going to release their MVC for ASP.NET.  In Object Oriented programming I'm looking at this model, and I'm not initially sure if this helps.  If you already are creating loosely coupled SOA or standard objects, then what would be the reason for MVC?  We're already using Patterns, so I don't think that it will take the place of my current coding practice.  I'll keep looking at this to see what I might be missing, but I'd love to hear someone else's experience.

This blog post by Uncle Bob at Objectmentor got me thinking about how Visual Studio automated Testing can help in your Test Driven Development effort. 

First off, let me say that I fervently agree with Uncle Bob that TDD cannot be replaced by automatically generating tests.  The intent of Test Driven Development is for your tests to drive your development (duh!).  So if I have to create my objects first, and then generate my tests, our tests could not possibly be dring our development.

That seems self-evident to me, but I urge you to look at Uncle Bob's post if you need more convincing on why TDD is a good thing.  As stated in Bob's post, if you do have legacy code, though, automatically generated unit tests can help with creating a beginning suit of tests for that code. 

But what makes the automated generation a benefit (and I am mainly familair with Microsoft Visual Studio products, not others) are the following thought.  If you are a one or two man shop who can't afford training, but have Visual Studio Testing, these autogenerated tests can demonstrate some good techniques for creating unit tests.  I'm not saying these are tests written by Kent Beck, but they can help a beginner with where to start.

Be sure to supplement this with a book like xUnit Test Patterns: Refactoring Test Code (The Addison-Wesley Signature Series) by Gerard meszaros.   The point is that this aspect of Visual Studio can help get started.       


It's time for a little feedback on where we are for our Kanban system for Change Manaement.  For explanations of how and why we are implementing this sytem, please look at the posts, Using Kanban to manage your maintainence backlog post.  , and the More on Using Kanban to manage your maintainence backlog.  First good thing we get from Kanban is that it has given us good visibility into our Change Managent system.  For instance, we know how many tickets we have for each of our applications.  And we can track how long it's taking in each process (Backlog, WIP, Testing and Deployment).

One issue we have for our internal customers is how to limit the tickets that come in.  Since we aren't charging back, there is no real consequence to our customers for submittng change tickets, even if there is not a real ROI on it.  Our group is really the only gatekeeper on those changes. 

To give the business side some incentive to consider ROI, we're toying around with the idea of limiting the change requests for each application.  Perhaps by points.  For instance, let's say we have application widgetMaker!  We would say to our customers (in a customer meeting), you can have 20 points in the Backlog for widgetMaker.  We will work on those points and believe they can be done in 1 month (keep in mind the same group is working on other application changes).  Once that backlog is completed, we will come back to the stakeholders and replenish it with 20 more points worth of features.  And our group committs to communicate systematically the status of the tickets.

We are hoping to work on this, let's see how it work in Practice.  I haven't heard of anyone doing this without using some kind of cost to limit new features.  Monitor this space to see if this type of constraint can help deliver more useful features!


Check out this interesting post over at Project Programmibility called Reporting Database Extensions: Local Custom Fields Custom Code.  This shows how to create a server side event in Project Server 2007 that caches custom fields for your reporting.  It shows how to cache Task Text fields, and their lookup values, but it also gives hints on how to extend for other data types.  Enjoy!

If you need more info on how to move your Project Management organization from mainstream or waterfall project management methods, here is an article from Doug Dicarlo that might be interesting.  Doug makes some points about the book Preston Smith wrote Flexible Product Development.  I think point 2 on his list is in my mind the most critical issue.  In plan driven project management, following the plan is what counts.  In agile, what the customer wants rules.  This means that you CAN'T plan from the beginning when the end date is.  However, once you're into the project you can get an accurate estimate on finishing dates. 

This brings up the points he addresses about flexible project management.  To adjust to what your burn down charts etc. tell you about your teams velocity, the project plan needs to be adjusted based on feedback during the project.  Take a read and see what you think!