Monday, December 04, 2006

Mirror in Motion

In the last few days I've had to spend a much larger than average percentage of time explaining how to design a system.  More specifically how to perform tasks of software architecture in a high-velocity way that is consumable by individual contributors.  Whenever I have a challenge of how to explain something complicated, I generally look for examples of how others have addressed similar opportunities.  Sometimes, what they have written mirrors aspects of my own thoughts which helps give me ideas for how to communicate my own ideas.

One such reading lately is about Microsoft Motion, which is an architecture approach being bandied about at Microsoft. I found the conclusion to be the clearest statement of the overlap with my own thinking:
This paper describes three rules for success in a partitioned-iteration strategy. They are as follows:
  1. Start with the low-hanging fruit, focusing on quick time-to-value.
  2. Leverage economy of small scale, focusing on agile processes.
  3. Centralize interoperability and decentralize implementation, focusing on reduced complexity through partitioning, and faster iteration through agility.
You can find out more about Motion Lite on MSDN. You can also check out some podcasts on Channel 9 here and here.  And lastly the Architecture Journal has an article about it here.

Watch for some upcoming posts on other overlapping subjects from the Architecture Journal coming soon.

Labels: , , ,

What's been said:

post a new comment

What's been linked:

create a new link

Friday, September 08, 2006

Deconstructing TFS SQL

This week while trying to get some custom build behaviors kicking, I had a chance to poke around the TFS SQL databases.  Just trying to unwind the schema makes for some pretty scary driving.

Whoever was actually working on these databases needs a refresher in their database skills.  They use multiple names for the same logical key, the don't use DRI, and there is no standardization or reuse to speak of.  Frankly it is a miracle the thing functions.  And pretty obvious why it can be as slow as it has been known to be.

This in no way is a knock on the product.  It is a huge undertaking, long overdue, and a valiant first attempt.  But it has a long way to go, and recruiting some actual database talent into the TFS product group couldn't hurt.

For example, trying to figure out how to list the items in a changeset was difficult until you unspool that VersionTo and VersionFrom in a namespace are really changeset ids.  Whoa!  That just happened.  No kidding.

Anyway, perhaps once a roadmap is fully laid out, I'll be more forgiving, but right now, it seems like something stinky and gross.  But I guess it works, and beggars can't be choosers.

Wanna know how to get any other internals from TFS, I'm collecting a ton.  All you have to do is ask...

Labels: , , ,

What's been said:

post a new comment

What's been linked:

create a new link

Monday, August 07, 2006

Customizing TFS

On my current gig we are using TFS to manage project lifecycle, version control, and quality assurance.  While there are still quite a few enhancements we are waiting for in much anticipated service pack, the current version is humming nicely.

We found that all the templates had things we liked, and things we didn't like.  Those that collected more information were too bulky to use.  Those that were simply to understand, didn't collect the data points we required.  Which brings us to customizating the work item templates.

For myself, the key to understanding work items templates (WITs) was just mapping Fields to Controls, and then worrying about the Transitions seperately.  The States got in the way in most cases, because I tend to think that most information should be configured by the user not the system.  I recognize that will be taken as a religious statement by many, but oh well.

To start with, we mapped all the data for our modified WIT into the most appropriate field.  In many cases, we simply borrowed the fields from other templates and then used them for our purposes.  After we had all the fields which represented the data we wanted to collect, we were able to figure out which ones had information displayed and how it looked on-screen.  This was pretty straight-forward and totally subjective.

With the data being collected and used on-screen we were then able to get fancy by using Transitions to restrict input, validate states, and in some cases, default some data.  We only used States in a few situations.

If you'd like to see our modified WITs, shoot me an email.

Why didn't I use the process editors?  Because we were shooting for the lightest possible learning curve, smallest number of adjustments, and quickest turn-around.  If you, like me, just have some work to get done and want to start collecting some data, I advise steering clear of the fancy tools too.  Sometimes the simple approach really is the best.

Labels: , , ,

What's been said:

post a new comment

What's been linked:

create a new link

Wednesday, March 08, 2006

Team Foundation Server

My recent efforts to deploy a Team Foundation Server have paid off.  This is totally against the best efforts of the actual product to foil my attempts.

Seriously, if you just read the documentation provided to do the installation you will end up pulling your hair out.  However, if you wade through a slew of blog posts, forums messages, and other references it is possible to realize this product with its outstanding feature set.

The key that would have made this whole thing easier for me, would have been more information about the precise integration between Sharepoint Services and TFS.  Specific areas that are important are how the security credentials for each should be configured and why, and a means to allow the Sharepoint data sources to be independantly configured.  The two-step of requiring Sharepoint to be setup but not configured and requiring the TFS installation to configure the Sharepoint data sources is really confusing, error-prone, and just plain unfriendly.

In any event, I finally have VPC images with working installations of TFS so I can start working through specific process template customizations and so forth.  Wish me luck!

Labels: , , ,

What's been said:

post a new comment

What's been linked:

create a new link

Sunday, February 26, 2006

It's coming! TFS is coming!

Having been anticipating this release generally for many years and this product specifically for almost two years, I was very pleased to read that Team Foundation Server is in RC mode.

This product will definitely impact the development processes being bandied about by the masses. [rubs hands with glee...]

Labels: , , ,

What's been said:

post a new comment

What's been linked:

create a new link

Thursday, February 23, 2006

Unfair?

A bunch of cry-babies in Europe are suing Microsoft yet again for supposed violations in software that hasn't even been released yet.  This has to be one of the most ridiculous things I've heard in a while.
 
To be sure, I am distinctly aware of the plainly evil way Microsoft has tended to treat its customers.  It is no secret that I worked there for several years and that facing evidence of horrible customer treatment is one of the key reasons I choose not to work there anymore.  But just because they tend to treat their customers poorly is no reason to sue for behaviors they might exhibit.
 
For example, the points cited in the article were:
  • Office incompatiblity - since when is a requirement that your program integrates with everyone elses?  Isn't it a little extreme that Group A is suing because they can't figure out how to gracefully handle a file created by Group B.
  • HTML Replacement - evidently, the fact that MS prefers to innovate and extend on HTML that is just unfair to those who would rather keep the status quo.  XAML has an open specification so there is no reason they couldn't choose to support it.  Or even to ignore it and create their own language or extensions.
  • DRM Bundling - are you kidding me?  So because they are adding a feature to increase security for users, it creates an unfair advantage?  The feature is useless unless all their applications support it.  So how could they not bundle this?  Isn't this exactly the type of support that other DRM solutions would like to create if they could?

As downhill as Microsoft has gone over the years, it is lawsuits like this that just make the world a harsher place.  It is whining children like the clowns at Real, Oracle, and Sun who stifle creation, impede progress, and choke the life out of innovation and progress.  We should sue them for wasting all our time.

I am first to vote with my time, chatter, and pocketbook when I see evil in the marketplace.  Hotmail for example, is sorely lacking in features, is almost unusable because of advertising and its garbage interface.  So now I use GMail for my primary personal email client after being a loyal hotmail fan for many years.  Likewise, I the Firefox browser as my primary web client because of features and performance that are lacking in IE.  If you don't like a product, you can ignore it, speak out against it, or pick a better alternative.  But tieing up our courts just to make a statement is petty, wasteful, immature, and...well...evil.


Labels: ,

What's been said:

post a new comment

What's been linked:

create a new link