Measuring your software development team (an easy test)


Tape_measure by pat00139 used under Creative Commons

I went to the Milwaukee ALT.NET (@AltDotNetMke) group’s Holiday hangout a couple weeks ago.  It was a fun night of drinking a couple beers, talking shop and some non-shop items.  One of the things that we talked about was something that is very near and dear to my heart: how fast can you get a new member of your team up to speed and productive and what the answer says about how mature your development processes are.  I heard a pretty surprising response from a couple of the folks at the Holiday Hang out when I asked the question.

You may have heard of the Software Engineering Institute at Carnegie Mellon University and their tools for measuring Information Technology / Software Development teams.  You almost certainly have heard of the Joel Test that pokes a little fun at the SEI and offers a simple 12 question “test” to rate the quality of your software development team.  I have quoted the Joel test to numerous developers and architects over the years myself.  I have a bit of a twist on both of these approaches it is a relatively simple test:

  1. Bring a brand new developer onto your team.  Needs to be a developer with an average level of experience, but a “rock star” developer or a novice will not skew the results too far either way.
  2. Give him/her a laptop that has access to the domain and has the basic developer tools installed (Visual Studio as an example).  But the laptop cannot have been setup by anyone on your team.
  3. Give him/her basic instructions for accessing your environment (source control repository, tools you use, development servers and databases). 
  4. Start timing to see how long it takes for the new developer to be able to get the latest version of your source code and successfully have it running on their machine.

The new developer is allowed to ask follow-up questions (and you should take notes on every question that they ask), but you are not allowed to actually do anything for them.  Each time that you have to look at their machine in order to answer a question, you should add an hour to the clock time.  Once the developer has the code running, take note of that time.  I like to call this the “zero to configured” metric.  If you are like most development teams, this number probably makes you want to weep uncontrollably.  Most development teams probably think this should take them a “few minutes”, but the actual number is probably located between several hours and never with most answers hovering in the neighborhood of a couple of days.  Seriously – try this test and see for yourself.

I wish I had actual data on this metric to share, but I only have anecdotal information.  But if you work in software, you probably have a lot of anecdotal stories of your own.  Here are a couple tidbits:

  • The project that could not build or debug unless the files were located in C:projectserin
  • The search for the .h file that you only have the .obj for
  • The class library that only worked from C:Program Files (did you know that is not a universal in Windows, it can be installed on other drives and I know that older versions of Italian installed used C:Programi)
  • The application whose production build only worked on one developer’s laptop (and the 4 hours of terror as chkdsk and several other tools were run trying to get it passed a boot error)
  • The application that required you to be running as a local administrator (*)
  • Brining on an extra developer to help finish a release on time only to have him leave 2 weeks later never having written a line of code (a shining example of the Mythical Man Month)
  • The unit tests that work perfectly until you deployed them on the server and then could only run if you spent an hour in regedit32

I was not personally involved in every one of these and I have tried to keep the details vague to protect the guilty (unless you name is Erin – sorry dude).

Does a high “zero to configured” metric mean you are a bad group of developers?  No.  It could be that you are a good group of developers and you don’t have a lot of new people on boarding.  We tend to work on problems that we encounter more frequently and if you don’t bring on new developer, you probably won’t address it.   It does mean that you will probably have a painful time when you get a new machine.

Does a low “zero to configured” metric mean you are an awesome group of developers?  No.  It could be you have a very simple application or spend too much time worrying about on-boarding new developers.  I will say that there is a high correlation between a good development team and a low “zero to configured” metric.

That was why I was so impressed by the answer that one of the guys gave when I asked the question at the alt.Net hangout.  He said that he rolled onto a project a few weeks before and was up and running in about 2 hours.  The impressive part was that the 2 hours included installing the local version of SQL Server.  Kudos to that team!

* Seriously – quit running as an administrator.  You will write better code, spend less time debugging issues and be much more secure as a result.

Will LinkedIn kill the resume? (please!)

If you work in technology and have any kind of a public presence (Twitter, Personal Blog or just a profile on LinkedIn) you will eventually and probably regularly get an e-mail that goes something like this:

I came across your resume and I think you are the perfect match for <some position> at my client.  We have been searching for someone with experience in <some technology> and you seem to be a great fit.  I would like to schedule some time with you……

I chuckle every time I get one of these because in my case I can tell you that it is a bold faced lie.  My resume is not public in any way, shape or form and it is horribly out of date.  And by “horribly out of date” I mean like 10 years out of date: It lists me being a certified systems engineer on Windows NT 4 and it is in Times New Roman.  I have taken to responding to these e-mail inquiries by telling the person just that:

Hey thanks for reaching out to me.  I am sure that your client is an awesome place to work.  You might want to take a more careful look at my resume, because you will find that I am not qualified in any way shape or form to use the technology that your customer is seeking.

My response is a little snarky and I should be nicer.  I have only gotten a couple of responses from this: One asking me for my resume and one admitting that they pulled the information from LinkedIn.  Evidentially if you pay for the LinkedIn premium membership, you get a lot more tools to search for people.  Unlike some people, I am totally cool with the LinkedIn model.  They provide me a free service and as a result they collect revenue from the few people who want extra utility from the service.  As long as I can have a gateway between myself and the recruiter I am fine with that model.  The gateway being they have to contact me via LinkedIn.

I keep my information on LinkedIn reasonably current, much more so than that 10+ year old resume.  So what I have been wondering is if it is possible to do away with the resume all together?  I am not in the job market, but if I was would a recruiter or human resources department accept a hyperlink to a LinkedIn profile rather than a Word Document or PDF that contains the same information?  I would think that since LinkedIn has a consistent data structure, they would actually prefer that.

In the meantime, I hope I don’t have to update my resume any time soon….

Thinking about job titles

I have been thinking about job titles lately.  It started when someone asked me if I knew anyone who would be a good fit for a job posting for a SharePoint Architect.  I proceeded to go on a rant about how no good architect would ever want to take a job that pigeon holed them into a single technology.  I don’t think I ever answered the question and probably frustrated the person who asked me.

About a week later, someone asked me what my ideal job title would be.  I admitted that I had not put a lot of thought into the question, however a job title that I always thought was cool was “Director of Disruptive Technologies”.  The title was held by Max Mancini at eBay.  I had read about him and his job in the book Web 2.0 Heroes by Brad Jones (Disclaimer: Brad is a friend of mine, but I am not writing this to “pimp” his book).  What I liked about it was that it described very well what he was doing: working with disruptive technologies.  However it did not specify what the disruptive technologies were.  If you have worked in technology long enough, you know there will always be disruptive technologies.

“Good” Job Title

So what goes into a “good” job title?  I think there are a few attributes that make a job title “good”: Descriptive, Universal and Flexible.   Descriptive means that people can read the title and have a (general) idea about what you do.  We know that developer in a job title means that person writes code, as an example.  Universal means that you are using terms that apply to most organizations.  I like to use the “rank” as an example: A manager is someone who has people reporting to them, a President is higher than a Vice President.  Flexible means that your job title can adapt over time.  The flexibility is the part that I really like to focus on when I evaluate a job title.  A job title of Cisco Pix Engineer, while descriptive and somewhat universal is not really that flexible.  A more flexible title might be Firewall Engineer or even better Network Security Engineer.

Kill all the job titles?

Another way to address the “problem” of having a good job title is to do away with them all together.  I always loved how the early research oriented technology firms like Xerox Parc and Bell Labs gave most of their employees the same title: Member of the Technical Staff.  Another way to address it and that is to let your employees pick their job titles.  At Microsoft we are not allowed to change are job titles in the official directory, which is driven by Human Resources, but we can pick what we want to put on our cards:


I am getting ready to order new business cards with the new logo.  I will update you on whether or not I have the guys to order it with this title, or if I do the predictable thing and use my official title.

Parting thought

One of my early mentors advised me to never get hung up on job titles or rank.  He said that in the military, when it “hits the fan” nobody turns to the highest ranking officer, they always turn to the guy that can get them out of the situation (usually a grizzled old Sargent).  He also said the most important thing on your business card is not your job title, it is how the person should get a hold of you (e-mail, phone number, twitter handle, etc.).

Book-a-week FAIL! (sorta)


Books by shutterhacks used under Creative Commons

At the beginning of the year, I set a resolution of reading a book a week (or 52 total).  If you have been following along with my list it will come as no surprise to you that I am not going to get to 52 books before the end of the year; I am currently at 20 books, including the one I finished last night, with a month to go.  I could give a lot of excuses and even a few valid reasons for not making this aggressive goal, but I can sum them all up with “I have been really busy”.  I do want to “finish strong” and get a few more books read.  It would be nice to get to 24 (two per month) or even better to get to 26 (one every two weeks).  But I will take it one book at a time.

I was going to call this a total failure, until I looked over the list of books that I have read.  I had a good balance with fiction (5 titles) and non-fiction (15 titles).  Read a great biography of Lou Gehrig, read a couple of books on Google (I enjoyed “I am feeling lucky” much better than “In the Plex”) and finally got my hands on a book I have been wanting to read for years “Showstopper!”.  I think reading 20+ books is more than most people do in a year, so I think that is a positive.  The only real FAIL! is that I did not get around to blogging enough about the books as I read them.  

CD/DVD drive device missing error

I was installing a fresh copy of Windows 7 on a new Samsung Series 9 laptop this week and as I got a strange error during the install:

A required CD/DVD drive device driver is missing. If you have a driver floppy disk, CD, DVD, or USB flash drive, please insert it now. Note: If the Windows installation media is in the CD/DVD drive, you can safely remove it for this step.

The error baffled me, because the Samsung Series 9 does not have a CD or DVD drive and I was installing Windows 7 from a bootable USB flash drive (which was already inserted).  I spent quite a bit of time troubleshooting the error and went down several bad paths.  When you search you find several forums that reference this error, mostly from the Windows 7 Beta or Release Candidate builds.  The collective conventional wisdom from the forums that I landed on said to try one (or more) of the following fixes:

  • Get another copy of the .iso (root cause: bad download)
  • Burn the iso to the DVD at a slower speed (root cause: bad burn)
  • Change the BIOS boot order (root cause: unknown)
  • Update the driver for the Drive (root cause: upgrade advisor not finding hardware)
  • Switch from SATA to AHCI in the BIOS (root cause: Windows 7 installer not supporting SATA – huh?)

One or more of the above might fix the error for you, but none of these fixed my problem and most of them did not apply even apply to my situation.  What was causing the problem for me was I had the USB device plugged into the USB 3.0 port for the machine.  I moved the USB flash drive to the USB 2.0 port (on the other side of the laptop) and the install worked just fine. 

My speculation is that the boot loader for the installer worked fine, but the installer itself had issues with the USB 3.0 device.  Windows 7 itself has no issues with the USB 3.0 port; it seems to be limited to the installer environment.  I am also fairly certain that you would see the same problem on other machines with a USB 3.0 drive- so more than just the Samsung Series Nine.

Note:  This post seems a little off topic for this site; I usually don’t talk about troubleshooting issues and the like.  However I wanted to post this in the hopes that if someone else runs into this issue, they might find this solution mixed in with all the older forum posts.  Hope this helps….

Creative Commons Attribution Dilemma

Screen Shot of

I recently updated my “home page” or “splash screen”:  Among some other changes that I made was the inclusion of a photo of myself; I was on the “fence” about doing this, because I have never been crazy about photos of myself.  However I bit the bullet and included one taken about 3 years ago by John December at a Web414 meeting.  It is shown here in a screen shot and the original is on Flickr.  One of the questions / concerns that I had in using the photo was to make sure that I followed the license of the work, in this case it was a creative commons license: attribution, non commercial, share and share alike.

I love creative commons licenses

I liked the idea of creative commons from the first moment that I heard about it during a conversation with myself, Rocky Lhotka and Matt Bumgardner on how design patterns out to be shared.  All of the blog entries, photos and podcasts that I have created carry some version of the creative commons license.  In addition to creating works with the license, I use works that others have shared as well (see many of the photos on this site).  I wanted to make that clear, because my dilemma / critique has nothing to do with the license itself.

Attribution means different things to different people

In order to comply with the license, you must attribute the work to the original author (along with the other components like non-commercial use and share and share alike).  Attribution is defined in the creative commons license as:

Attribution — You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work).

When I decided to include John’s photo on my site I checked to see if he had any particular instructions for how he wanted the photo attributed to him.  I could not really find any (I checked on his Flickr profile and at his website).  John is not unique in providing instructions for how he wanted the photo attributed to him; it is usually the exception to find instructions on how people want to be attributed.  When I have run across specific instructions they are almost always reasonable examples include: it is usually people preferring their name to be used (instead of a Flickr handle) or having the link go to their blog or home page.

So barring specific instructions, I decided to take a look at the detailed version of the license to see if it provided any more guidance (the version above is the “human readable version).  Section 4.d reads:

If you distribute, publicly display, publicly perform, or publicly digitally perform the Work or any Derivative Works or Collective Works, You must keep intact all copyright notices for the Work and give the Original Author credit reasonable to the medium or means You are utilizing by conveying the name (or pseudonym if applicable) of the Original Author if supplied; the title of the Work if supplied; to the extent reasonably practicable, the Uniform Resource Identifier, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work.

I found myself scratching my head and breaking out my “I am not a lawyer card” on that one!  Barring any specific instructions I clearly spelled out “Photo by John December” and linked the name to his website.  Another option would have been to link to the photo page on Flickr or to John’s Flickr Profile.

Other media gets even more complicated

Placing photos on a web page is probably the easiest use case for attribution.  You have hyperlinks and great CSS styling to help you out.  Other media, such as printed photos, sound recordings and video aren’t as robust in their ability to attribute.

Links to help you think more about this

Jeff Atwood on Defending Attribution Required
My article on a Creative Commons And PowerPoint Slides
Pete Prodoehl on One of his run-ins with non-Attribution


  • I talked with John at Photocamp Milwaukee 2 and verbally asked him if the attribution was okay; he agreed that it was.  Thanks again for sharing some of your photos under the creative commons license.
  • I just realized that nowhere have I spelled out my preferred attribution.

Revisionist book covers

For week 2 of my Book-a-week resolution I read Wikinomics: How Mass Collaboration Changes Everything by Don Tapscott and Anthony Williams.  Instead of doing a full book review on it, I thought I would talk a little about the cover.

Here are the book covers from the two editions that are currently in print.  The first edition is on the left and was published in December, 2006.  The second edition (the one that I read) is on the right hand side and was published in September, 2010.


Might be a little hard to notice the difference with these small thumb nails, but it is a little more obvious on the book when you hold it life size.  I am not talking about the colors, the quotes or the “Expanded edition” added to the cover.  I am talking about how they replaced MySpace on the original edition with Facebook on the second edition.

Don’t blame them, but…

The authors point out in the forward that the book seemed “So 2006….” when they created the next edition and having MySpace listed on the cover is not the only thing that dates the book in that era.  And I don’t begrudge them dropping MySpace from the cover; would you buy a book in 2010 / 2011 that talked about how awesome MySpace is?  My only complaint is that they replaced MySpace with Facebook when Facebook only plays a minor role in the book.  All the references to Facebook are in the last chapter of the book (called Enterprise 2.0) and it does not feel really integrated into the book core tenants.

I do have to wonder what the cover of the 3rd edition of this book (circa 2014) will include on the cover.   Surely Wikipedia and Linux will be on the cover, but will Facebook and Flickr be?  

Note: If you are following along just to see if I have failed miserably in my book-a-week resolution, I am doing okay.  I am technically a couple weeks behind, but I have 2 books that I am almost done reading.  I am reading a lot more than I am blogging about, so I have put up a list of completed books so you can see the progress.

Book Review: Free: The Future of a Radical Price

For week 1 of my Book-a-week resolution I read Free: The Future of a Radical Price by Chris Anderson.  Below is a review of that book.


Quick Review

If you have not read Chris Anderson’s The Long Tail I would read that book instead of Free.  If you have read The Long Tail, then Free is a decent investment of your time.  While Free is not technically a sequel or a continuation of The Long Tail, it is a deeper dive into how shift from physical media (such as CDs, DVDs, etc.) to digital media and distribution is effecting our economy and society.

What I liked about the book

Before I started reading the book and even into the first 20 pages or so I was a little concerned that Free was going to be focused on the mantra of “give everything away” or “figure out the business model later”.  What I quickly found was that Chris Anderson’s study of the “radical price” was clearly about using Free as part of an overall strategy of having a solid business plan.  He actually starts with some historical (going back more than 100 years) examples of how people have used Free in order to gain traction in a market or used it to sell complimentary goods.  He ends the book with many ideas and examples for using Free.

One of the other things that I really enjoyed was the sidebars that Chris Anderson presents on real world examples of companies that use Free as part of their business strategy.  They sidebars, despite being generally a page or less in length, are rich in analysis and often have an interesting graph to illustrate the example.  The Long Tail and the sidebars both made great use of the graphics to add richness to the text.

What I did not like about the book

I alluded to the how much I liked the real world examples and graphics in the sidebars in the last section.  I found that the main text of the book lacked some of the hard data that I am used to in Chris Anderson’s writing style.  In Free he provides lots of examples to support his ideas, but they often seem anecdotal examples.  Contrast this with the rich data-backed examples that he presented in The Long Tail.  I think this is more of a criticism of the research and writing style of the book, rather than me thinking that the ideas he presents are flawed.  I think the ideas that Chris presents are sound and everyone running a business should consider the ideas presented if for no other reason than your competitors might be considering Free at this moment.

An example of Free

This blog is a good example of Free (Chris Anderson identities it as such in the book).  I post my thoughts here to share them with the world and in hopes to raise my reputation as a Software Architect.  I take it a step further a put a Creative Commons License on the work, so that other can take it and do interesting things with it and owe me nothing other than an attribution.

Book-a-week resolution

book shelf

book shelf by hobvias sudoneighm used under Creative Commons

This is the time of the year when people make their resolutions for the New Year.  I have a number of the things that I would like to accomplish in 2011, but I will not bore you with the full list.  Like many people I want to do more of some things and less of others.  One of the things I do want to do more of in 2011 is reading, which as a happy coincidence should lead to watching less television.  I really like reading, but in the last year or two I seem to be reading much less.

I am a big believer in setting measurable goals, so I have decided to set the goal of reading a book a week in 2011.  I have currently have 20 books on my bookshelf that I have not read along with a rather long list of books that I don’t own that I would like to read.  Whenever I hear about a good book I put it up on a list and when I am out at a used book store I see if any of them available.  I am happy (as always) to get suggestions for other books. 

I have a couple of other “rules” for this resolution:

  • The book a week is an “average” if I spend 10 days reading a long book and 4 days reading a short book, that is okay
  • I have a couple books that I have partially read, finishing those will count
  • I want to read a good mix of books for “work” and for “fun”
  • I will post up book reviews when they are “on topic” for this site, but generally not for the “fun” books
  • I reserve the right to fail miserably in getting 52 books read this year

Update – My blogging has been a little slow, so I created a list of the books that I have read so far.

Architecture by Baseball: Conference on the mound



The Conference by Nick Schweitzer, used with permission

This is the twelve in a series of blog posts about how we can learn about software architecture by studying and comparing it to the sport of Baseball.  This series was inspired by the book Management by Baseball.

I noted a couple of years ago that baseball was one of the few or the only sport that allowed coaches on the field of play, referring to the fact that when a team is up to bat, two coaches are allowed on the field in coaches boxes.  In addition, a pitching coach or manager is allowed to visit the pitcher’s mound when his team is in the field of play.  They are almost always joined by the catcher during the conference on the mound, but they can be joined by players from the infield as well (as the photo above shows occasionally you can get all the players from the infield on the mound).  The most common reasons for a manager to visit the mound are to:

  • Remove a pitcher from the game in favor of another pitcher
  • As a stall tactic to allow a pitcher in the bullpen time to warm up
  • Review the pitcher’s approach to the upcoming batter, especially when the batter is coming up as a pinch hitter
  • Coordinate the defense when there are runners on base
  • Calm the nerves of the pitcher in a big game situation

You can sum up all of these specific reasons for visiting the mound as needing to make an adjustment to the game plan.

In this series I have always drawn the parallel between the baseball team’s managers and coaches with the architects on a software development project.  I think of the players as the developers on the software development project.  I don’t mean to say that the architect is a higher level than the developers; it is just that their role is different.  The architect, like the baseball team’s manager, has to do a bunch of work upfront to line up the correct team and prepare them for the game.  The developer, like the baseball players, play just as critical of a role (or maybe more critical) in the success during the game. 

What I have not spent much time discussing in this series is how the architect and the developers actually communicate with each other before and during the software development project.  But the conference on the mound gives us a good chance to discuss how the developers and the architect can adjust the “game plan” during the project.

The team standup

I talked about Scrum a couple of years ago and I am still a fan of it, but the part that I have always liked the best was the daily scrum (sometimes called a team stand-up).  A stand-up got its name from the fact that the meeting was so quick and to the point, that there was no need to even sit down.  Even though traditionalists encourage the no sitting rule, it is often violated.  The “meeting” is a ~10-15 minute check point where all of the team members come together, and when done in the most traditional fashion, it looks a lot like Nick’s photograph above.  The main purpose of the stand-up is to frequently make sure that everyone on the team is on the same page and to identify any issues that need to be addressed.  Quick issues can be addressed in the stand-up, but more complex issues are deferred for a follow-up with just a subset of the team.  Scrum and other agile methodologies encourage this to be done on a daily basis, although in practice it can be adjusted to 3 or 4 times a week.

Not exactly like the conference on the mound

There is one key difference between the team stand-up and the conference on the mound in the game of baseball: frequency.  The strength of the team stand-up is that you are meeting quite frequently (even if it is for just a short amount of time).  That luxury is not afforded in baseball; you are only allowed to visit the mound once per inning.  A subsequent visit to the mound requires the pitcher to be pulled from the game in favor of a relief pitcher.  The purpose of this is to keep the game moving along, the game would get too long if they manager and other players were allowed to visit the mound as often as they wished.  Fortunately as developers and architects we have the luxury of frequency.