RSS 2.0
 Tuesday, September 16, 2008
June Cleaver

Ever notice that no matter what shenanigans Beaver would get into, June always believed everything was fine? No matter how many scotches Ward had after dinner, there was no problem, according to June. June Cleaver is the classic enabler with a bad case of denial.

So is the TFS Source Control Shelving feature.

Don’t get me wrong. Sometimes everything really is okay. Sometimes I just want to push my code into a shelf set because I have to go to my kid’s play in 5 minutes and I just want to make sure I am backed up in case the building burns down in the next 2 hours. Sometimes.

More often, Ward is shelving his code because he hasn’t checked in for 3 days and can’t be bothered to do the necessary merges before he heads home to that scotch bottle.

I would go so far as this: Frequent shelving is a smell.

Reasons you don’t need shelving include:

  1. Team members are checking in frequently as they make changes to code, passing tests and keeping code coverage high. Frequently means every few passing unit tests or so.
  2. Team members are in the habit, nay, are required to check in the day’s work and get a clean build before they go home for the day.
  3. When a team member is looking for a code review, that person has direct (as in “within voice range”) access to other team members who can perform said review. Even better, they are pairing.

    Note for distributed teams: Microsoft’s SharedView works great for remote pairing.

I find it best to think of the Shelving feature as SkyDrive for source code. It isn’t sufficient as a source control strategy, but can be pretty handy on occasion.

One more way that Shelving is like June Cleaver? Pretty. Not smart.

Tuesday, September 16, 2008 9:05:32 AM (Pacific Daylight Time, UTC-07:00)  #    Comments [1] -

Thursday, September 18, 2008 9:55:29 AM (Pacific Daylight Time, UTC-07:00)
I think I agree for the most part. In my experience shelvesets tend to get stale, and the longer they sit the higher the cost is to merge them back in later.

I have, however, found great use for them in performing code reviews. That said, the review has to happen pretty quickly after the shelveset takes place, or else you run into the aforementioned stale problem.

I am definitely going to check out SharedView for the possibility of doing some code reviews closer to real time though, looks interesting.
Name
E-mail
Home page

Comment (HTML not allowed)  

Enter the code shown (prevents robots):

Navigation
Archive
<January 2009>
SunMonTueWedThuFriSat
28293031123
45678910
11121314151617
18192021222324
25262728293031
1234567
About the author/Disclaimer

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

© Copyright 2009
Accentient, Inc.
Sign In
Statistics
Total Posts: 351
This Year: 0
This Month: 0
This Week: 0
Comments: 359
Themes
Pick a theme:
All Content © 2009, Accentient, Inc.
DasBlog theme 'Business' created by Christoph De Baene (delarou)