DiscoPosse – Using the chicken to measure IT
Technology, Cycling, Music and Madness


Technology

November 26, 2011

The fine art of Yak Shaving

More articles by »
Written by: Eric
Tags: , , ,

Definition of Yak Shaving

I’m often asked just what it means to be “yak shaving”. I can’t tell you what the true origin of the phrase is, but believe me, I can tell you that I have shaved plenty of yaks in my career.

Yak Shaving 

Hold still there little buddy, this may take a while

Let’s take the example of a process that I’m working on which is to take a CSV file of data which is needed to create and update Microsoft Exchange 2010 contact records. It doesn’t seem like a big deal, right?

With the Exchange Management Shell it would appear that the world is my oyster. Unfortunately, I find very quickly that I have some hurdles to get over.

Enter the yak.

Problem #1 – The data that I receive is in a format that isn’t compatible with the raw data formatting for the native Exchange contact fields. When I import the fields, I have to concatenate a number of fields such as address (in 3 parts, with 1, 2 or 3 fields populated) and phone number (some numbers are international which creates different formatting) and to top it off the names include a “formal” and “informal” name, where we need the informal name if it is present, but otherwise use the formal name. This is more of a logic issue than a true yak though.

Problem #2 – You can’t create a Contact record with all fields, but you can’t modify the additional fields unless the initial contact exists. I now have to do a check for the contact to see if it is existing, and if not then I must first create it with the mandatory fields using New-MailContact command and then run the Set-Contact command to add the address, phone and non-mandatory fields. Again, this could be treated as a programming logic issue but it is a decent setback from what could be a simple 2 case process.

Problem #3 – The process runs great from my Exchange server, or from my workstation. Since I need to run this from a centralized machine that does a multitude of automated processing, I now need to create a working environment on that server to provide the framework to run this process.

This is where the yak shaving really peaks. Now I have to schedule a formal change to install the Microsoft Exchange Management Shell and associated dependencies on the job server. Once that is done, I need to schedule it to run my script with specific credentials. Now I have a new account to manage. The final issue is that the script is not signed, so I need to configure the server’s execution policy to run as Unrestricted which requires a sign off as a potential vulnerability.

The moral of the story is that about 40-50% of the time spent, and about 70% of the total duration (due to wait times for change management and environment testing) is spent on being able to run this process which was unrelated to the actual business logic and programming time. That my friends is what yak shaving is all about.

The good news is that it works, and the better news is that I’m finalizing the script and will be posting it to my TechNet Gallery in the next two weeks so I can hopefully save some of you the shaving time!

Shaved Yak

That's a little better



About the Author

Eric





 
 

 
20121215-200537.jpg

DiscoPosse Review: iOS 6 Programming Cookbook – Vandad Nahavandipoor

One word review: Complete. The iOS 6 Programming Cookbook by Vandad Nahavandipoor from O’Reilly Publishing is not just a cookbook, but a full end-to-end recipe guide for every aspect of iOS application development for iPh...
by Eric
0

 
 
bcp-server

BCP/DR Primer – Part 5 – Test the plan, don’t plan the test

In the final post in the BCP/DR Primer series we are wrapping up with the final task in BCP program; testing the BCP plan. Another piece of debate is the semantics of the word “test”. Many BCP programs will refer to...
by Eric
0

 
 
bcp-server

BCP/DR Primer – Part 4 – Application Recovery Document and “The Plan”

So let’s review how we have come to this point in the process. In Part 1 we discussed the general strategy of the BCP program and the IT participation in the process. In Part 2 we moved into the definition of the BCP Tier...
by Eric
1

 

 
bcp-server

BCP/DR Primer – Part 3 – The BCP Recoverability Matrix

In our last post we laid out the RPO and RTO of  a couple of systems to illustrate how we can map our systems into BCP tiers. Now that we have defined our current state of the core IT applications and services we will examine ...
by Eric
 

 
 
bcp-server

BCP/DR Primer – Part 2 – BCP Tiers and recovery requirements

In Part1 of our BCP/DR Primer series we defined some key terminology that we will use as we build up our plans and document our systems as they map against our ability to recovery them. The BCP Tiers are common among many organ...
by Eric
4

 

 
bcp-server

BCP/DR Primer – An introduction to planning your IT recovery strategy – Part 1

You see the acronyms all over the place, and it can be very overwhelming. There are so many articles about cloud, SPOF, RPO, RTO, five 9 up-time and in the end it is really all meaningless unless you understand your own environ...
by Eric
4

 



Join Zipcar and get $50 in free driving Join Zipcar and get $50 in free driving Join Zipcar and get $50 in free driving

0 Comments


Be the first to comment!


Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>