Welcome to Manicprogrammer Sign in | Join | Help

BuilderBob, TeamPatter and the Natural Language Build Agent

I've been tossing around for a few years now some 'better living through IM' tools to tie into the Team Foundation Server (TFS) toolset. I have a not-even-started-yet-over-a-year-old project called TeamPatter on CodePlex to prove it. It's been one of my favorite TODO items to never do. I have begun to actually code and generate some proof of concepts around this. I have affectionately given the name "BuilderBob" to the build agent of TeamPatter. The 'Bob' comes as a bit of homage to Microsoft Bob, a friend of mine named Bob and that the triplets love Bob the Builder (not as much as Curious George, mind you). Here's the basic concept.

TeamPatter is the idea of an instant messaging agent also known as a bot that works and interacts on your behalf and facilitates capture of information to be associated with artifacts in the SDLC. In my prototype and my real point of concern the primary SDLC tool on the server side is TFS. BuilderBob is one of the agents of TeamPatter and his job is to interact with me to facilitate build process. I open up a session to BuilderBob and then begin asking questions or issuing requests. One such request interaction might go like this.

Me: '             Alert me to all failed builds in team project x'.
BuilderBob: 'Sure I'll notify you to all failed builds in team project x. Do you want that by IM or email?'
Me:              'IM, please'
BuilderBob: 'Will do. If you are not online would you like me to notify you the next time you come online, send you an email or just do nothing?'
Me:              'Oh yeah, Just email me in that case'
BuilderBob: 'I don't think I have your email address, what it is?'
ME:              'Geez,  leave me alone already who do you think you are, Clippy?'
BuilderBob: 'Sorry. If you are online I'll let you know about failed builds. Clippy my ass.'

Granted this specific scenario is reasonably complex and probably just down right too much. But it's not undoable. As far as I have gone in my natural language agent  in that thread are for more simple things such as

  • 'Notify me of all failed builds in team project x'
  • 'Notify moi of failed builds in x'
  • 'Alert me about failed builds'
  • 'Tell me anytime there is a F#$%@! failed build' [sometimes the cussing might be cathartic so I don't try to filter it out :-) ]

 

Other commands I have created are basic parses for items like

  • 'queue build TeamPatterTestDeploy'
  • 'Show me all the builds in the last 24 hours|1 day|1 week'
  • 'Change the build quality on TeamPatterTestDeploy.2008.08.21 to test confirmed'

 

and things like this. Over time the vocabulary can become stronger.

Other areas I plan to prototype within TeamPatter involve important things like the daily scrum question initiated at a given time from the bot to me on what time is remaining on various work items. As well as logging time to timesheet entries by me initiating with comments like '4 hours for today on work item 30465'

One of the final areas (at the moment) I plan to prototype is the agent facilitating capturing information and applying to an artifact especially information that might be lost otherwise.

Dev A opens up an IM to Business User B and it goes something like this

DEV A: Hi B I have a few questions on story XYZ
B:        Hi! Shoot it to me, I'll do the best I can.
Dev A: I'm going to log this so that I can memorialize the conversation for whatever dev works on this feature
B:        great idea
A:       #on the record for work item 14578#
Bot:   You are on the record
A:      So is the user supposed to get ice cream after every mouse click or only on save?
B:      Only on save....
[Conversation continues]
A:     #off record# By the way how's the kids
Bot: You are now off the record
B:    They love the book 'No, David!'...

This could go on forever going on and off record jumping to new work items etc. and when you are done you have the conversations memorialized that might have otherwise been lost and with it you get all the goodness that comes from the conversation in insight to the goal and attributed to the context related artifact.

 

So these are my initial thoughts and some items I have started on for TeamPatter and out of the gate for BuilderBob.

What are your interactions you'd like to have?

Published Saturday, August 23, 2008 12:13 AM by michaelruminer
Filed under ,

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

Tuesday, August 26, 2008 9:21 AM by Team System News

# VSTS Links - 08/26/2008

GertD on REDIST Steve St. Jean on Why aren't my TFS reports updating? Michael Ruminer on BuilderBob,...

Wednesday, August 27, 2008 12:20 PM by if ( ! blogClogged )

# Long Live The Command Line

The Ubiquity prototype. I like it. It inspires me for applying this concept more thoroughly with TeamPatte

Thursday, August 28, 2008 10:18 PM by if ( ! blogClogged )

# Building Natural Language Interaction for TFS Is No Easy Task

Let me begin that if one were take the title and remove the words 'for TFS' the statement would be no

Monday, December 01, 2008 8:37 AM by if ( ! blogClogged )

# Updates To Team Patter - On Primitive Conversation Thread and Controlling Builds With Natural Language

I have just pushed out a few more changes to the Builder Bob of TeamPatter[ 1 ][ 2 ]. It won't be long


Enter the text you see in the image:

Leave a Comment

(required) 
required 
(required)