Thursday, December 18, 2008

How to Update a Changeset for TFS

There are many reasons why you may need to update a changeset in TFS. If you need to update the comment, please read the post How to Update the comment after check in.

In my environment, I had to do more than this. I have a check-in policy where all changesets must be associated with work items. If the policy is not met, a policy failure can be seen in the changeset reading
You must associate this check-in with one ore more work items. 
This policy can be overridden, but even if you override it, and your changeset is committed, how do you associate a work item with that changeset?

Here is how.
  1. Find the changeset number. You can do this by viewing the history for your project.
  2. Now open a work item that you want to associate with the changeset. 
  3. The work item template should have a "Links" tab. On that tab, "Add" a link.
  4. Set the "Link type" to "Changeset". 
  5. In the "Link details" section, set the "Changeset:" value to the changeset number you looked up a few moments ago. You can also "Browse" for it if you don't like the "History" approach I mentioned above.
  6. Add a meaningful (or meaningless) comment.
  7. Click "OK" 
Now, the changeset doesn't have any policy failures (or at least not related to work items).

Friday, December 05, 2008

Scrum: Accomplished vs. Did, Hidden Impediments?

Think about what you did yesterday and what you are going to do today. You can probably make a list of things. Take a shower, eat lunch, go to some meetings, work on this project, refactor some code, etc.
accomplish 1: to bring about (a result) by effort

Now think about what you accomplished yesterday, or what you are going to accomplish today. You will likely have a different list. Finished reading a book or chapter, got requirements from our customer, verified a bug, etc.
do 3a: perform , execute

In your daily stand-up meetings, be aware of people talking about what they did or are going to do instead of talking about what they accomplished. Regardless of your position on the team (Product Owner, ScrumMaster, Delivery Team member), everyone should hold everyone accountable for talking about accomplishments.

If you have a lot of things to do, where those things don't contribute to your sprint backlog, those things might really be impediments.
Today, I am going to work on the code for the new login system and go to a sales meeting.
Whoa! I hope the ScrumMaster catches this. Is this sales meeting a critical part of the product? Will it interfere with the team's ability to deliver? Is it a 10 minute chat or a 3 hour presentation on something not related to the project? How frequent are these meetings? Was this planned? Perhaps this is a meeting where the employee's manager can excuse the worker from, so the worker can focus on the sprint.

Let's re-do that part of the stand-up in a few different ways.
Today, I am going to start coding the new login system. I have a sales meeting as a blocker. It is going to take half the day.
Today, I am going to start coding the new login system. I have a sales meeting to listen to some feedback from our users.

Hopefully, this illustrates how a different mindset can improve the value of the daily stand-up.

Friday, November 28, 2008

Is Barack Obama the "Scrum President"?

The first moment I thought President Elect Barack Obama might be the first "Scrum President" was while I was watching Obama's Inner Circle Shares Inside Story on 60 Minutes.  David Plouffe, Obama's campaign manager, mentioned how his team only planned for days instead of years.  They were "more agile" and "not afraid to take risks". Now, just because someone says "agile" doesn't mean they follow scrum, but I haven't heard many politicians talk like this group does.

There are a few quotes from another story, Obama On Economic Crisis, Transition, that have elements of "inspect and adapt"
[It] is not always getting it right, but projecting a sense of confidence, and a willingness to try things. And experiment in order to get people working again.
If something doesn’t work that they’re gonna try something else until they find something that does.’
If the idea is right for the times then we’re gonna apply it. And things that don’t work we’re gonna get rid of.
Regarding transparency, Obama said this:
I think that we have to restore a sense of trust, transparency, openness in our financial system.
Scrum is also very big on the concept of "team".  During the week of Thanksgiving (which I don't have a direct reference to, but heard on KNX 1070 radio), Obama said in that America will succeed or fail as one people.

I know I am drawing conclusions on some very loose quotes, and I doubt anyone in Obama's campaign ever said, "Hey, let's run a scrum campaign," but I am seeing enough of an agile spirit, which is the most important thing. 

Scrum and Agile have worked very well for me in software engineering, and I hope it works out well for politics and government too.

Saturday, September 27, 2008

Setting Expectations, Getting Results

When people fail to meet expectations, it is often because they didn't know what expectations to meet.  Being a ScrumMaster, team lead, and manager, the most effective way I clear this up is to explicitly tell teams what I expect.  This phrase, although quite obvious and trivial, helps me achieve that goal:
"I expect you to ..."
Yes, it is that simple.  By clearly letting your team (or boss, spouse, friends, etc.) know what you are expecting, they are better equipped with the right information to meet your expectations.  Here is a specific example:

Self-Organizing and Self-Managing Teams
When teaching scrum to a team, I tell them that "Scrum teams are self-organizing and self-managing".  Now that the team has been told, don't expect them to start being self-organizing and self-managing.  Aside from the culture and personality changes that need to occur to make this happen, it is much more effective to additional tell the teams, or individuals on the team, what is expected of them.  I follow-up with this by telling teams and individuals, "I expect you to be self-organizing and self-managing."  This may seem repetitive, but it is very effective.

Here are a few more examples of expectations:
  • I expect you to get to meetings on time, not 30 seconds late.
  • I expect you to meet  your commitments.
  • I expect you to help others with their tasks as though the tasks were yours.
  • I expect you to be pro-active, don't wait to be told what to do all the time.

Sunday, September 21, 2008

AT&T Uverse Installation: Failed

I was very disappointed yesterday by not being able to get AT&T Uverse.  After waiting about one year for the service to be available in my area, I found out that it is still not available in my area.

There is some sort of junction box on the street that is maintained by AT&T.  You have to live within 4,500 feet to get the service.  I live 6,700 feet, and can't get the service.  The signal is too weak for the service to work.

The technician showed up at 2:00, at the end of the two-hour window quoted.  He spent about an hour trying to get the signal, but was not able to.  He told me about the situation and opened a Help Ticket to see what could be done.  At around 6:15, he told me I cannot get the service because I live too far from the junction box.

Hopefully, AT&T will add a box closer to my house so I can get the service.

Friday, September 12, 2008

AT&T Uverse: Order Placed

I placed an order to get AT&T Uverse today. The phone call took 30 minutes and the customer service rep was very nice. I got the U200 plan with 3.0 Mbps Internet. It looks like a good deal. Here is the breakdown:
  • U200 $59
  • HD "Technology" fee $10
  • 3.0 Mbps Internet $30
  • Extra TV Receiver $5
  • Monthly Total: $104
They are running a promotion so I get $14 off per month for the next 12 months, which brings my monthly total to $90. I am also eligible for the $200 cash-back. If I amortize this over 12 months, my monthly total drops $16.67 to $73.33.

I also was able to bundle my local and long distance service which was $41 before taxes, but is now $32.25.

I am currently a Time Warner customer, but will not be for very long if this all works out. After taxes and fees, I am paying $108 for Time Warner. Compared to the $73.33 for the next 12 months, it is worth trying.

Even after the 12-month promotion, the features, channels, and better equipment will be worth the extra few buck over Time Warner. I have been quite frustrated with the lack of HD selection with Time Warner.

Also, there is no contract, installation fees, set-up fees, or anything like that, or at least none that I agreed to. Not having a contract or equipment to buy is a big feature for me, which is why I haven't gone with DirecTv or DishNetwork, although I have heard good things about them.

Soft Skills: Anything Else vs. What Else

As a Scrum master, I make a conscious effort to allow the team to be creative and voice their ideas, however, sometime I need to control the pace in time-boxed activities. 

A common activity is asking the team to list items which I write on a whiteboard.  Sometimes teams can be a little distracted, tired, bored, or unsure of what should be on the list.  Sometimes teams are very engaged, passionate, and focussed.  In either case, there are two questions I ask, which I learned from Chris Sterling, which helps me control the pace.

"Anything else?"
I ask this question when we need to move on to another part of  the activity or conversation.  This is most commonly used, but is easy to say "no".  Here is an example exchange:
I am going to the market to get milk.  Do we need anything else?
No, that is it.  thanks.


"What else?"
I ask this question when I think there are more items to put in the list. It is easy to say "no" to "anything else", but when asking "what else", there is more of a compelling reason to give an answer. 
I am going to the market to get milk.  What else do we need?
Hmmm...we need eggs too.
With either approach, if there are or are not any items left for the list, the team has a way out, but one way is easier than the other.

Tuesday, August 26, 2008

Make it Visible, Make it Big: Sprint Burndown

An important tenant of Scrum is transparency.  Keeping the teams metrics and state of the project visible to others not only enables others to make decision based on this information, but it also has a great psycological effect on the Team.

Where is your team's sprint burndown chart?
A good place to put the sprint burndown chart is in an are where it gets a lot of visibility, but also where important people see it.  The burndown chart can be placed in a Starbucks, but the Starbucks clientèle is not interested in this.  I have placed the burndown chart on the Director of Engineering's office door, or on the door of the Product Owner.  Another effective place to put the chart is in a room or hallway where the peers of the delivery team can see it.  Of course, you want the delivery team to see the chart all the time too.

Make it BIG
People tend to respond to things larger in scale, than small things.  For example, the worlds largest thermometer gets a lot of attention just because it is big.  Nothing special about saying it is 86 degrees, but if you say it in a big way, now you have some attention.

Printing the chart on 8.5" x 11" paper isn't going to cut it.  Draw a chart on a large easel pad (24" x 37") or if you have a HP Designjet T610 with a 44" spool of paper, now that will work.  Add some colors and make the chart easy to read.

Friday, August 22, 2008

Scrum Tools: Points in eScrum and TFS in Visual Studio

I have been using the eScrum project template in Microsoft Visual Studio TFS edition for a few sprints now.  Along the way, the team noticed some issues with the template.  In TFS, by navigating to Team > Process Editor > Work Item Types > Open WIT from Server, I opened the eScrum Product Backlog Item template and made some changes.

Points
The Product Backlog Item template is missing a "points" field to indicate the relative size of a PBI.  There is a Baseline Work field, but that is used to represent the number of hours for the PBI in reports. I decided to add a Points field where a dropdown shows Fibonacci based numbers (0, 1, 2, 3, 5, 8, 13, 20, 40, 100, 250, 500, ?, infinity).  Since there are values such as "?" and "infinity, the field type must be 'String'.  I could have used the Baseline Work field, but that allows people to enter values that could complicate things, such as entering 21 instead of 20.  To avoid the debate, or having to correct this, I added an ALLOWEDVALUES rule to control this.

Query
Now I can create a query to allow me to see what items does the team need to estimate.  By using the team's velocity, this query can include items that are larger than half a sprint, which indicates the team needs to work with the Product Owner to break this down into smaller PBIs.

Monday, August 11, 2008

Quote: Communication

"Can I talk to the guy who is telling you what to tell me?"
Dan C.

Monday, July 28, 2008

Google AdSense Login Troubles

I was having trouble with my AdSense account. The account was inactive for a while, but then I decided to revive it. After searching on Google Groups and other web pages I was unable to find a solution that worked for me so I emailed their support team, which responded in one day. I hope this helps someone else out.

Symptoms:
When I login to AdSense, I get the message "An AdSense account does not exist for this login, as you have not yet completed an application."

When I try to sign-up, I get the message "A user with the email you specified already exists, Please select a different Google Account login to access this account."
Solution:

1. Please make sure that your AdSense account password is different from
your Google Account password.

2. You can reset it at https://www.google.com/adsense/assistlogin?hl=en_US

3. Once your passwords are different, you will need to log in to AdSense
with the AdSense email and password .

4. Once you log in to your AdSense account, please migrate using
https://www.google.com/adsense/migrate-login-1

Friday, July 25, 2008

Certified Scrum Product Owner

Certified Scrum Product Owner

In July of 2008, I continued my Scrum education by taking a two-day certification course in San Jose. It was taught by two fantastic trainers: Chris Sterling and Bryan Stallings. I highly recommend this course for any product owner, project manager, program manager, product manager, ScrumMaster, etc., if you are using Scrum or not.

Thursday, July 24, 2008

Certified ScrumMaster

Certified ScrumMaster
In June of 2008, I went to UCLA for a two-day training course to get a ScrumMaster certification. The class was taught by Chris Sterling from SolutionsIQ. I went back to work and started applying what I learned immediately.

The challenge was, I was trained to use Scrum, but others weren't. It was as though only one player knew the rules of the game. So how can I fix this...workshops. By holding a few workshops (or crash course), I was able to get the team up to speed...kind of. I couldn't fit all two days of exercises and material into a four-hour meeting.

After one sprint (two weeks), the team had felt what it is like to sprint. It sure was fast and felt short.

So now the team knows (or was at least informed) of the rules, guidelines, and goals of Scrum, the next challenge is to get them to play as a team. They are in the forming stage of the Tuckman model, and over time, will hopefully get to the performing stage.

By continuous inspection and adaptation, I am looking forward to watching the team evolve and improve over the next few sprints.