There seems to be a bit of a theme happening in product launches this week with a number of services popping up to handle comments for blog engines. One of the more interesting and interactive ones was 3bubbles [ via TechCrunch ] – its just an EOI page.

What 3bubbles does is allow readers of a blog to to have a discussion interactively with other readers. The concept is certainly interesting and I think that its going to be a hit with major sites that have a lot of simultaneous traffic. For smaller sites like mine (I max out at about six requests per minute) there aren’t enough concurrent users for it to be useful.

This raises the question in my head – how are they going to make money out of this thing? Lets assume that only a small percentage of the blogosphere is going to use this thing, in order to recover the cost of development and operation they need to either charge the site owner a packet or perhaps even charge individual users to have the conversation.

Don’t get me wrong – I love the idea, and hope they do well, I just can’t see how to monetise it.

Darren has posted up about the need for a single-sign-on capability to support information portals now and into the future. He linked to this keynote on Identity 2.0 by Dick Hardt, the founder and CEO of Sxip (pronounced Skip) Identity. The presentation itself is captivating but the concepts he is talking about are extremely powerful and speaks to some of the posts I have written in the past about identity and access control.

I think anyone who proports to be in the identity management business (hint: thats you system administrators) need to go and watch this presentation and understand what some of the larger issues are beyond what password policy you are going to set up in Active Directory.

Personally I think the inability of the enterprise and vendors to the enterprise to understand and embrace what is being dubbed Identity 2.0 will be what holds back to implementation of innovative new technologies that actually make our lives better.

Team Foundation Version Control includes a feature called check-in polices which allows teams to execute a piece of code as part of the check-in process to ensure it meets certain constraints (policies). Out of the box there are three different policies that you can use – these are “Work Items”, “Code Analysis” and “Testing Policy”.

The “Work Items” policy is quite simple – it basically checks to see if you have a work item associated with the check-in and if you don’t it will generate a warning. You _can_ override the policy if you want to and continue to check code in. It will be interesting to see if development teams actually turn this on – for my money I would have made this a reasonable default since one of the key benefits of using TFS is being able to track changes to code against work that was assigned to the team.

With the “Code Analysis” and “Testing Policy” policies you get the opportunity to define more options, for example with the “Code Analysis” policy you can choose which FxCop rules you want to apply to your code on check-in and with the “Testing Policy” you get to choose which suite of tests you expect to pass before being allowed to check-in.

CodeAnalysisPolicy

Once a policy is defined for your team project you can remove it or change its settings, although they aren’t applied retrospectively (trust me – this is a good thing).

CheckinPoliciesScreen

Of course like most of the features in Visual Studio Team System extensibility points have been added so that you can create your own policies. This involves sub-classing the PolicyBase class which implements IPolicyEvaluation and IPolicyDefinition interfaces, these types are defined in the Microsoft.Team.Foundation.VersionControl.Client assembly (check out this post on how to get this assemblies added to the Add References dialog so you can reference them easily). James Manning does a fantastic job of show how to implement your own check-in policy and then register it so that it can be evaluated.

Now that you have gone and read all that background information I wanted to step back and think about what kind of policies people might want to use. James came up with a good generic one with the pattern policy which uses regular expressions to check whether file names are valid but I am sure there are people out there with additional requirements – what about these for starters?

  • Profanity policy; looks for instances of profanity in code and comments.
  • Code freeze policy; stops check-ins between certain dates and times.
  • Code formatting policy; reads the source text and the code model to identify issues.

I am sure that some of the “Rules to Better” pages would be good sources of inspiration.

The fact that I wrote this post at about ten past midnight after I had finished off processing some of the days e-mails is probably some kind of indication of what my own time management skills are like.

Time management is one of the hardest thing for a consultant to get a handle on. One of the reasons for this is that clients have a tendency to randomise your day. You may have walked into the office with a plan but you will quickly get sucked into the first meeting that is even remotely related to your area of expertise.

Unfortunately there isn’t a lot you can do about this because in essence thats one of the reasons you are there. Lately I have been trying to push back a little and attempt to focus more on my main deliverables and try to have meetings scheduled in advance.

What I was finding is that I had a list as long as my arm of what I wanted to do but when I got into the office, unless I had dedicated a specific time to doing that task it simply didn’t get done. Everyone has to come up with their own regime to getting their work done.

In the past two weeks I have adopted some of the practices from “Getting Things Done” – a process described in a book of the same name written by David Allen. My adaption of the method goes something like this.

  1. Find a spare moment; while GTD essentially advocates that you only check your e-mail at a few set times a day the way that we work at Readify really doesn’t work with this approach. So rather than checking my e-mail a few times a day I check it more regularly, but only when I don’t have some other kind of activity scheduled. This means I can process my Inbox faster each time and still keep on track with the short and longer term tasks that I have set for myself.
  2. Process my Inbox; this is where after finding a slice of time I process the contents of my Inbox. Deleting times which aren’t relevant to me (I’m getting better at this) and moving other items into the tasks folder. I do this simply by hitting CTRL-SHIFT-V which brings up the move dialog which I then select Tasks. What Outlook does is copy the e-mail into a Task as an attachment. This processing activities allows me to accept stuff into my life without actually having to deal with it right there – I’ve just made a commitment to take a second look.
  3. Process my Tasks; in the past I found that creating a whole heap of tasks just let to gigantic task list which I eventually gave up on and forgot. So rather than just abandon things in the task list, after processing my Inbox I go through my task list and any items that I really need to get done I actually schedule a time to do them in my calendar. By doing this and actually using my calendar as a workload scheduling mechanism I ensure that I don’t overload myself on a day by day basis.
  4. Keep to the schedule; here I work on the appointments in my schedule. If I keep to the schedule then nothing will be forgotten and everything will get done in due time. Sometimes my estimates are off and I need to get progressively better at estimating how long certain tasks will take (writing a good blog entry takes way more time than you plan for). If time runs out you need to decide whether you can drop or push other items in your schedule out or simply reschedule the remainder of the work for a later time.
  5. Rinse, repeat.

Now – the above system seems to be working, but one of the observations that I’ve made is that there is no way to get everything I want done as fast as I want it done.

This is where my metal gets tested because I really want to just abandon the system and just start context switching to fool myself into thinking I am making progress on two tasks simultaneously faster than I would by doing one task in a serial manner – and like every single processor device, it fails miserably.

What my system is actually telling me is that I have too much on and I need to look at delegating some of the tasks (if I can) or dropping the ball on some of them.

Good time management is all about removing the stresses of juggling as many balls as we all do. When you are stressed you aren’t managing your time well, and when you are grumpy and tired because you have had to schedule things into the evening its because you have taken too much on.

Its advice that I need to give myself every day – because its easy to forget.