Thursday, December 23, 2010

Technical Resumes: Part 3 (The Meat and Potatoes)

In the previous post I discussed the importance of a well-written, concise, relevant Overview in order to entice resume reviewers to spend more time on looking over your full credentials.  In this post I make some suggestions on how to present the main body of your resume.  

Recall that I recommend a four part structure for most resumes: Overview, Professional Experience, Personal Growth, and Education.  Those just entering the job market might want to swap the order between Experience and Education.  Those applying for very technical positions (like software developer) may want to include a fifth section summarizing their Technical Experience.

Experience

If you've done a good job at creating a brief, cleanly formatted resume with a relevant, focused Overview then the reviewer should now be eager to dig into the details of your professional experience.  The purpose of this section is to describe the most relevant portions of your experience.  This is not meant to be an exhaustive database of all your activities and projects.  All previous comments regarding relevancy and brevity still apply.

As I mentioned in Part 1, I recommend using present tense ("deliver quality widgets") for your current position and past tense ("delivered quality widgets") for previous positions.  Mixing tenses distracts the reader and interrupts flow.  I also recommend avoiding the use of any pronouns.  "Delivered quality widgets" rather than "I delivered..." or "we delivered...".  This has a number of advantages.  It sounds professional, makes the resume ever so slightly shorter, and it gives the prose a quicker pace.  

The usual order to list your professional experience starts with your most recent or current position and moves backward in time.  The format used is a matter of personal preference but I include the company name and position title left justified and the dates of employment right justified.  I keep bullets small, monochromatic, and unobtrusive.  I try to keep individual bullets to a single line of text.

Following the position heading, I usually suggest adding a single sentence that describes the position in the company (which helps in cases where non-standard titles might have been used).  Following this sentence is your (typically bulleted) list of what you feel were the most important responsibilities and accomplishments in this position.  Avoid all irrelevant and obvious details.  For instance, if your job title was "Software Developer" then don't bother adding a bullet that states that you developed software.   

Some people (even some organizations!) confuse activity with value.  It might be the case that you diligently attended weekly status meetings don't include that in your resume.  You want to focus on the ways you created value for the company you worked for.  This means describing what you delivered and not the actions you took to deliver it.  For technical positions this could mean describing the products that you contributed to building.  For leaders this might mean describing the products that your team delivered.  Avoid activity-centric words and phrases like "attended", "discussed", "met with", "worked on" and favour more results-oriented words like "delivered", "resolved", "created", "invented".  

Newer leaders can sometimes get stuck because they still cling to definitions of value from their single contributor days.  For instance, some newer leaders go through a period where they don't see their new responsibilities of leadership and organization as being as valuable as building or testing software.   Remember that as a leader your sphere of influence is wider and it is quite acceptable to talk about your team's accomplishments as well as your own direct accomplishments.  Maintain results-oriented language though and avoid descriptions like "Oversaw the creation of comprehensive security standards...".  Hiring managers know that leaders lead teams of people that deliver different portions of a result.  You don't need to include the fact that you oversaw the work.  Rather focus on the deliverable: "Created comprehensive security standards...". 

Finally, here are a few other common missteps that I've seen. 
  • Using internal project and product names and acronyms as if the reader should just know what they mean ("I worked on the XH25 component of Project Blinko"). 
  • Describe what the company does rather than what you did.
  • Include a comprehensive list of all responsibilities, accomplishments, deliverables, and activities in a long 20 bullet list.  Edit!
  • Put the most significant accomplishment at the end or randomly in the middle of the list.  If your most significant and relevant accomplishment was the invention of a new product feature that increased sales 20% then make that the first bullet!
  • Not being specific about accomplishments.  "Led a team delivering client-server software" rather than "Led a team delivering 6 major software releases and 12 patch releases over a period of 18 months".  
  • Going into too much detail for positions in the distant pace.  Focus your time on the more recent and relevant positions.  Limit the descriptions to a couple bullets for the distant past and positions that are of a different nature than the one you are applying for.  
Personal Growth

It is important to include a section on personal growth because it demonstrates that you are a life-long learner and have depth that goes beyond just what your work experience suggests.  Personal growth accomplishments might include any of the following:
  • Courses taken and completed
  • Certifications
  • Volunteer roles
  • Sports-related roles (coaching, captain of a team, team in a competitive league)
  • Speaking engagements
  • Publications (although these might be attached to specific roles as well)
  • Relevant hobbies ("Created and maintain the Infocom website" is relevant.  "Table top gaming" is, likely, not)
  • Your blog (unless your subject matter is of the nature of "nice pairs that I've seen") 

Technical Experience

If you are applying for a leadership position it is less relevant what computer languages you are fluent in and what software frameworks you've used.  This doesn't mean you should exclude them in your work experience but there really isn't any need to have a specific technical experience section in your resume.  Spend a little more time on describing how your leadership and communication skills delivered results.

However, for technical positions you really should include technical experience.  Search engines will pick up on keywords like Java, C#, and Maven.  Also, the technical experience section is often used, like the overview section, to quickly filter resumes.  If I'm looking for software developers with Ruby experience I'm going to want to see Ruby somewhere on the resume before I dig into the finer details.  Keep the section short and neatly formated. 

Recall my note regarding honesty.  You want to focus on the technologies, languages, platforms, frameworks that you have real experience using.  If all you know about Javascript is it's definition and what it is typically used for but you don't have any experience actually using it, then don't include it.  You'll just embarrass yourself later in the interview when it becomes obvious that you've never actually worked with it.  

Education

By "education" I mean formal, multi-year, focused study on a subject resulting in some kind of degree or diploma.  Microsoft Certification does not qualify as education.  It's training and should go in your personal growth section.

Different companies place different emphasis on education.  Google, for example, places a very strong emphasis on education even if you got your degree 20 years ago.  My philosophy has always been that your education demonstrates your intelligence and commitment early in your career but soon gets overshadowed by your continuous learning and professional experience.  Unless you are new to the workforce, or your education ties directly into the job you are applying for, or the company to which you are applying places a high importance on education then I recommend including this section at the end of your resume.  

Obviously include the school names and degree levels achieved.  If you did a thesis then include its title and link to it if it is available online.  Include the titles of (and links to) other academic publications you achieved in your studies. 

I'm hesitant to recommend including education that was started but not completed.  It suggests a lack of discipline or capability.  If you started a degree but had good reason to not complete it (perhaps a business or job opportunity came up) then by all means include the fact that you did 3 years of a 4 year degree but then also include your reason for not completing.  

So that basically covers that I typically advise when people ask me to review their resume.  I'm going write one more post tomorrow that covers the related topic of the Cover Letter and I might include a couple of thoughts on LinkedIn.  

Wednesday, December 22, 2010

Technical Resumes: Part 2 (The Overview)

In yesterday's post I kicked off my resume writing advice for technical and technology leadership positions.  Today's post continues on that theme and I cover what I consider to be the most critical and most overlooked part of the resume: The Overview.

Overview is to Resume as Resume is to Interview.  Hiring managers have many constraints on their time  and are not waiting around for your resume to hit their desk.  It is not unusual for hiring managers to blast through a 12 inch thick stack of resumes in 60 to 90 minutes making gut reaction decisions on which candidates seem the most promising.  When I sort resumes I create two piles: Interested and TBNT (Thanks, But No Thanks).  After my initial sort the Interested pile is typically about 10% of the original stack size.  This is the pile that I spend my time on and really consider who I would like to interview.

Spending 30 seconds on one resume while doing this initial sort is the absolute maximum.  Typically a decision is made in less than 10 seconds.  There are a handful of surface factors that cause resumes to be dumped into TBNT: excessive length, obvious spelling errors, or anything that makes the resume look like it will be difficult to work through (poor layout, goofy font choices, dark paper -- why print black text on dark coloured paper?).  However, most of the filtering comes from the Overview section of a resume.   The primary goal of the Overview section is to convince the reviewer that they should continue to read the rest of your resume, search for you on LinkedIn and otherwise spend timing learning about you. 

I've seen resumes include an Objectives section (rather than an Overview) where the candidate describes what their career objectives are.  To be honest, I don't know you and I don't yet care what your objectives are -- TBNT (or at least ignore this section).  I've read other resumes that include a mini-resume in their Overview.  This kind of Overview doesn't say anything new or interesting that I can't get from the rest of the resume and is typically consists of long lists of comma separated skills and technologies.  Way too long and boring to hold my attention -- TBNT.  Still others include all boiler-plate.  Let me fill you in on a secret, there are literally thousands of people who "have excellent communication skills" and  "are dynamic leaders" and "put great attention to detail" -- TBNT.  Still others don't include an Overview section at all.  The reviewers challenge then becomes figuring out where to cast their eyes for the next 10-30 seconds in order to determine if there is enough value in doing a deeper read.  Couple this with an overly long resume and you're on the top of the TBNT pile.

Imagine you have 30 seconds to convince The Donald that you have a compelling business idea or Brian Eno that U2 should be opening for your band or Spielberg that you've written a blockbuster.  In all these cases you need to know what Trump/Eno/Spielberg are interested in and what they find valuable.  The same goes for your Overview.  If you have a boilerplate Overview that doesn't take into account the specific position let alone the specific company then you're 10 seconds away from TBNT.

You mean I have to write an Overview for every job that I'm applying for?  Yes, but it's not as bad as it sounds.  Chances are you have a core set of skills and interests and you are applying for similar positions at companies in related industries.  Still, there is a huge difference between what is required for a Senior Software Designer vs a Software Team Leader.

To start off I recommend writing a longer and broader Overview that captures many of your technical and non-technical skills, experiences and traits.  This might sound counter to everything I've written so far but you will NOT use this version on any actual resume.  Think of this as your diamond mine out of which you will extract gems for each resume.  You will edit this über-Overview down to just what is needed for each position/company to which you are applying.  Editing down is much easier than trying to come up with new material for each resume.

Once you are ready to write an Overview for a particular resume put yourself in the shoes of the business owner or hiring manager for that company and think about how you would fill that position.  Imagine that you have dozens or hundreds of highly skilled candidates to choose from so you can be picky.  What experience, skills, knowledge would you be looking for to fill the position?  What would your dream candidate look like?  If you're having trouble do a little research on the web.  Google and LinkedIn can be great resources to get to know more about a company or about a type of position.  Now consider your experience, skills and knowledge and pick out a couple of experiences or unique skills that you think best match your vision for this position.  Be specific and call out (briefly!) experiences that you think would make you the top candidate for this position.

Once you have a draft Overview consisting of maybe 3 to 5 sentences (no more than 6 to 8 lines of text) read it over again deleting everything that you feel takes away from the core message you are trying to deliver.  Be brutal in your editing.  Slash irrelevant details, boilerplate, and duplication.  Even eradicate unnecessary words (particularly adjectives) and superfluous punctuation.  Get this section down to its very essence in order to minimize the time it takes a reviewer to decide to give your resume a deeper read.  This is your first impression and you want it to be positive.  Keep it relevant, keep it specific, keep it brief.  Your goal is to illicit a reaction like "hey that's cool" or even "hmmm, that's interesting".  All you want at this point is for the reviewer to be compelled to invest time in the rest of your resume.

A word about honesty.  Sometimes getting into the mind of the hiring manager gets your creative juices flowing and after you've written your Overview you realize that you've described someone else.  At that point you need to either rewrite the section using your actual experience (maybe you're 80% qualified for the position) or admit that maybe you're not the right person for this position after all.  Nothing will irk a hiring manager more than being lied to and having their time wasted.  At best you'll be on permanent TBNT from that department but you might also end up on the black list for the whole company or even a whole industry.

Tuesday, December 21, 2010

Technical Resumes: Part 1

Over the years in my roles as manager, director, and technical executive I frequently had to review resumes and qualifications of candidates applying for technical and leadership positions.  I also get asked fairly frequently (maybe once a month) to cast a critical eye on the resumes of coworkers, former coworkers, friends of coworkers, etc.  While I enjoy doing this it does take some time to do well.  What I've included in this post and in the upcoming posts is the core set of principles that I use to guide my review of resumes for technical and technology leadership positions.

The Goal

Ask yourself why you are writing a resume at all.  If your answer was "to summarize my experience" or even "to get a job" then think again.  Your resume has exactly one purpose -- to get you an interview with an employer that you are interested in working for.

Some people think of their resume as a database or catalog of their experiences.  They feel that a short resume reflects a lack of experience and so they make it as long and detailed as possible.  Others think of their resume as some kind of sounding board for their opinions and ideas.  These resumes are like that guy at the party who doesn't clue in that people don't care about his latest World of Warcraft exploits.  Others think of their resume only as a compliance activity that needs to be checked off the list in order to say that you've applied for a position.  These people send identical copies of their resume to hundreds of potential employers hoping that one of them will notice something valuable to them.

So if the goal of your resume is to get yourself an interview then what you need to be focused on is how to catch the attention of the person or persons who are sifting through hundreds of resumes of people with similar qualifications to your own.  Think of your resume as a marketing teaser.  You've got one chance to get a hiring manager or recruiter to want to get you in for an interview.  You want your resume placed in the To Interview pile and not in the TBNT ("Thanks, But No Thanks") pile.

Overall Structure

Keep it short (yes, you've heard this before but I really mean it this time).  It should fit on one double-sided sheet of 8.5x11" paper (although I recommend using two single-sided sheets if you really need to print it out).  The problem with the "resume-as-database" folks is that the length of the resume becomes too daunting for reviewers and usually hits the TBNT pile.

The actual format of the header information at the top is a matter of subjective choice and can reflect your own design sensibility -- but keep it simple and to the point.  Your name and how to contact you.  Both via email and telephone -- for now keep your social media off your resume unless it is relevant to the position.

For senior or leadership positions I typically recommend a four part structure: Overview, Experience, Growth, Education (in that order).  If you're a new grad then put the Education section second after the Overview.  For technical positions, include a fifth section that summarizes the technologies that you feel you have expert experience in (and no, Word and Excel does not constitute "technical").

Appearance

Like the header, the layout of the resume is largely subjective.  I do suggest that you resist any urge to experiment with all those fonts that you never get a chance to use.  Sans Serif fonts like Helvetica, Arial, and Futura were designed to ease eye strain.  Furthermore, you don't want your font choice to become your message -- you want your qualifications to be your message.

Bullet points are another area that some people feel necessary to "accessorize".  Small, round, monotone bullets in the same colour as your text are quite sufficient.  And don't go crazy with the bullets.  I've seen entire resumes formatted in bullet form.  They read like the parts list in an appendix of the Owner's Manual for my car.  TBNT.

Spelling and Grammar

It would amaze you, gentle reader, to learn how many resumes in this day and age still contain spelling errors.  It's not enough that every word processor includes a spell check function but most of them will even underline the misspellings in red as you type them.  Nothing says, "low effort compliance activity" than a resume with spelling errors.  TBNT.

Obviously grammatically correct sentences are just as important as correctly spelled words.  Prefer the active voice ("delivered the project") over passive ("the project was delivered").  Microsoft Word has a hate-on for passive voice so it should prove a useful ally.

One area that I find very often gets overlooked is verb tense.  I've read present progressive, past tense, and present tense all in a single resume.  Changing tenses interrupts flow and distracts the reviewer.  If I'm describing my current position I use plain old present tense: "Lead a team", "deliver solutions", "work with".  For past positions and experience I use plain old past tense: "Led a team", "delivered solutions", "worked with".  You may choose to use all past tense but whatever you decide stay consistent.

Remember Your Reader

While you might consider the Frobozz System that you helped build while at GrueTech, Inc. to be of earth-shattering importance it is very likely that the reviewers of your resume will have never heard of it.  Put yourself in the shoes of someone who has never worked where you worked and then read your resume.  How many assumptions did you build into it?  Unless your customer base was counted in the tens of millions or higher, don't assume that the products, services and processes of your former employers are self-evident.  Spell out company-specific acronyms, define custom terms, and include hyperlinks to relevant content should the reviewer wish to dig deeper.


Next Up: The Most Important Section of Any Resume

Saturday, October 9, 2010

Review: Watts

Recently, I asked "What's On Your Mac?".  To extend my list, let me introduce you to Watts, a terrific little battery meter for the menu bar.  To say that Watts is a more attractive menu meter than the one built into Snow Leopard is to just scratch the surface.  In addition to doing the obvious, Watts includes some other essential features that, frankly, OS/X really should provide as part of good battery maintenance.  

One feature that I really like is that Watts will keep track of how often you calibrate your battery.  Macbook batteries are great and you will get even better performance out of them if you periodically calibrate them.  This involves fully charging, discharging, and recharing the battery.  You can google "macbook battery calibrate" and find the instructions to do so.  It takes about a half day to run the half dozen calibration steps but I often find that I get so busy that I forget about continuing the calibration steps and have to start again.  Watts will step you through the process and remind you when it is time to move on to the next step.  Another cool and related feature is that Watts will remind you to periodically unplug your laptop (which is also good healthy practice for your battery).  These features plus the useful notification options and battery health information screens make this little application well worth the $8.  Check it out.

Update: Breaking Free

Recently I wrote about breaking free of MobileMe and of Firefox (which has been seriously lagging in performance and features).  Well, I've managed to do both.

First off, the iOS 4.2 Beta2 has released me from the grips of MobileMe.  I can now have multiple Exchange calendars (the last thing holding me back).  True, I am missing the ability to locate my iPhone, iPod, iPad using MobileMe but, frankly, that's $119 worth of insurance that I don't need.  Everything other feature of MobileMe can be found on Google and other similar services.  Until Apple either makes MobileMe more compelling or cheaper (i.e. free) I can't see myself heading back into Apple's warm embrace (at least not for cloud services).

Second off, I'm now 100% Chrome instead of Firefox.  I've found extensions for 1Password (beta), AdBlock, Evernote Clipper, Forecastfox Weather (which takes up less interface space than on Firefox).  I've given up on mouse gestures primarily because I do most of my browsing on my iPad or Macbook anyway.  I'm really enjoying the speed and reliability of Chrome.  Nothing comes close.

Tuesday, September 7, 2010

Breaking Free from MobileMe

Formerly known as .Mac, MobileMe is Apple's collection of cloud services and includes online applications for email, contacts, calendars, picture organization, and cloud storage.  It even has a tool to locate your lost iPhone and disable it if need be.  As you would expect from Apple, all of these online applications adhere to the same usability and design standards as Apple's standalone applications.  Something that the Googles and Microsofts of the world would do well to learn from. 

While all this attention to design detail is compelling, the functional features offered in MobileMe are not particularly unique.  To tell you the truth, a year into my $100/year MobileMe subscription, I don't think I've ever seriously used any of the online services directly.  Rather I use MobileMe, along with a couple other services, to link together my data across the various computers and connected devices in my life.  Recently,  I wondered if I could get the same synchronization experience using free services that I do with MobileMe.  This article describes my setup both before and after.

My connected life consists of sharing data across a home iMac, a home Macbook Pro, a work Macbook Pro, an iPhone, and an iPad.  The iPhone and iPad do double duty as both work tools and home toys.  In addition, wife-Annette and I use an online calendar to stay in sync (although this is more of an adaptation for her as she is quite efficient using only the paper calendar on the inside of our pantry door).  Prior to my investigation I had the following setup:
  1. Microsoft Exchange Server (work): synchronize my Work Calendar/Contacts between my work Mac, iPhone and iPad
  2. MobileMe: synchronize the Family Calendar and my Contacts between my home Macs, work Mac, iPhone and iPad
  3. MobileMe (iDisk): synchronize documents and files between my home Macs, work Mac and provide access to these files on my iPhone and iPad.  Synchronize my OmniFocus library across all computers and devices (very necessary to keep me organized)
  4. Google and Calgoo Connect: synchronize the Family Calendar between wife-Annette and I
A bit of a Rube Goldberg set up (particularly the Calgoo bit) but it has worked for a year now.  At first the synchronization between OmniFocus and iDisk was painfully slow but fixes between Apple and Omni Group improved things immensely.

Before designing a free service solution I leveraged some research and experimentation that I had done for work.  This included looking into services from Google, Microsoft, Dropbox, Box.net.  So it didn't tame me very long to design something that would work just as seamlessly as the MobileMe integration.  Here's what I'm testing today.
  1. Microsoft Exchange Server (work): synchronize my Work Calendar/Contacts between my work Mac, iPhone and iPad (no change)
  2. Google: synchronize the Family Calendar and my Contacts between my home Macs, work Mac, and iPhone
  3. Google: synchronize the Family Calendar between Annette and I using shared calendars
  4. Dropbox: synchronize documents and files between my home Macs, work Mac and provide access to these files on my iPhone and iPad.  Limited to 2G (MobileMe was 10G).  If I overrun my 2G I can either pay $10/mo for more or use Box.net or similar services to cover additional data.
  5. MyDrive: like Dropbox and Box.net, MyDrive.ch is a cloud service hosted in Switzerland.  What makes it different is that it provides the WebDav interface that OmniFocus needs for synchronization. This also makes it mountable in Finder so that I can access an additional 2G of storage.
The astute reader will see that while I am now free from MobileMe I seem to have lost my ability to synchronize my personal calendar and contacts with the iPad.  This is due to a limitation in iOS 3.x which only supports a single Exchange account (in this case, my work account).  Google synchronization of calendars and contacts uses the Exchange protocol (which makes for dead simple setup and seamless synchronization).  The forthcoming iOS 4.2 will remove this limitation and I will once again be fully synchronized.

Friday, September 3, 2010

What's on your Browser?

Continuing the theme started with What's on your Pod? and What's on your Mac? I humbly submit this list of browser add-ons that I use.  For those not familiar with the technology, a browser add-on (or plugin or extension) is a small piece of software that works within the framework of the underlying platform (a web browser in this case) to provide some piece of additional functionality or change the way part of the browser looks or feels.  By their nature, add-ons are typically small in size and single purpose.  In fact the best add-ons, in my opinion, do only one thing and do it well.

It wasn't long ago that if you wanted to plug extra functionality into your browser your only option was Firefox.  In fact, I'm still primarily a Firefox user today because of the richness of the add-ons available for this platform.  I really like Safari (especially its Reader function) and I like Chrome's speed and skins.  Both have outstanding HTML5 support as well.  However, unlike recently, neither of them supported add-ons (although both do now).  The moment I can get equivalent add-ons (extensions) for Safari to those below I will likely make a permanent browser switch.

The list below is simply the list of Firefox add-ons that I use or have used recently.  It is by no means an exhaustive list of the popular add-ons available.  For that, you'll have to go take a look for yourself.  Before I start the list, you might be curious whether or not you are running any add-ons.  In Firefox, pull down the Tools menu and select "Add-ons".  This will pop up a window where you can see the list of Extensions (add-ons that provide new features), Themes (add-ons that change how your browser looks and feels), Personas (add-ons that make the browser pretty), and Plugins (add-ons that provide additional content support such as video formats).  I'm going to list my favourite Extensions. 

1Password - This browser extension goes hand-in-hand with the excellent 1Password application that I use on my Macs.  Go to a site and 1Password will fill in the username and password for you.  Supported on all major browsers.

AdBlock Plus - Essential extension that seamless scrubs out banner ads.  AdBlock maintains its own database which you can extend as you go.

Canadian English Dictionary - I need the letter u in all my favourite, colourful, neighbourhood words.

Download Statusbar - This is one of the first extensions I installed way back.  I've tried other download enhancers but I keep coming back to Download Statusbar.  It does its one job and it does it well.


Evernote Web Clipper - This is another extension that goes hand-in-hand with an essential desktop application.  In this case it is Evernote, the essential brain extension.

Firebug - If you do any web development Firebug is an essential debugging tool.  Also allows editing and viewing of CSS, HTML, Javascript, etc.

Firefox Sync - Powerful search engines like Google and Bing have nearly obviated the need for bookmarks.  However, I do have a small set that represent the most frequently visited sites that I go to.  Firefox Sync (formerly Weave) does a decent job ensuring that no matter what machine I'm not, the instance of Firefox there will have my usual set of bookmarks.  It also syncs passwords, preferences, and tabs.  The latter is a little clunky though IMO. 

FireGestures - FireGestures enables you to navigate your browser and web pages using swipes and other mouse gestures rather than clicking on different parts of the browser.  To be honest my Macbook Pro's multitouch trackpad with jitouch installed removes the need for FireGestures.  However, I still find it useful on my iMac.  Windows and Linux users will love it as well.

Forecastfox Weather - This extension puts some discrete weather icons in the bottom right corner if your browser window.  Over time my eyes have been trained to respond to the word/thought "weather" by glancing to the bottom right corner of my browser window.  This is one of the reasons why it is jarring for me to use another browser. 

Tab Mix Plus - If I was stranded on a desert island and could only take one Firefox extension with me it would be Tab Mix Plus.  Sure, all browsers now support tabs but Tab Mix Plus provides many more configuration options and has excellent save/restore functions.

FireTitle (MIA) - FireTitle is one extension that went away after the Firefox 3.6 upgrade and I really wish it would come back.  It allowed the user to set the window title text rather than using the default page title.  I like to group similar tabs in different browser windows each with a topic title.

That's my list.  What about yours?  Do you know of equivalent extensions for Chrome or Safari?  If so, I'd love to have some links.

Tuesday, August 31, 2010

How to create an HTML signature for Mac Mail

I recently updated my green signature and have had some questions about how I coaxed Mac Mail to do what I want.  My old green signature looked something like below.







This signature gets the job done but is a little wordy and too tall for my liking.  So I went into Mac Mail's signature editor and was horrified to find just how bad it is for editing anything other than simple text.  Undaunted, I did a little research and found that the signature in a Mac Mail message is nothing more than a snippet of HTML.  Without too many Unnatural Acts it is possible to use any HTML snippet for your signature.  My current signature looks like this.







I like the clean look and the familiar icons link you to exactly where you think they should.  As an added bit of bling the green message changes colour and size when moused over. 







When the user clicks on the link they are connected to my original "Keep it green" blog entry.  So how did I coax Mac Mail to use this signature?  Follow the steps below which I've cobbled together from multiple sources but most heavily from Wess Daniel's blog.
  1. Create your sexy signature using the HTML editor of your choice (I use VI.  You, quite likely, do not).  Feel free to use CSS and scripts since most email readers include full HTML browser capabilities.  Here is a sample HTML file based on my signature above.  Any images or linked content must reside on a publicly accessible location since only the URLs (and not the images themselves) are transmitted in your email message.  You'll notice from my sample that I use a Dropbox Public folder to store the images for my signature (all icons courtesy of IconDock.com).

  2. Once your signature looks the way you want load its HTML file in Safari.  Safari has the capability to store your signature as a webarchive.  Most other browsers and operating systems use MHTML to accomplish the same thing but Apple is Apple.  So pull down the File menu in Safari and Save As a webarchive.  Let's call it Sexy.webarchive for now. 

  3. In Mac Mail, open Preferences (Cmd-, or Preferences in the Mail menu) and select the Signatures icon.  Create a new signature and give it a name.  This will create a temporary webarchive to hold your signature.  You will replace this file shortly.  [NOTE: Technically you don't have to create a new signature but this is the easiest way to identify the new signature for the next steps.  You can reuse an existing signature and look in the plist file to figure out which one it is.]

  4. Drag the new signature to the mail accounts for which you'd like to use it and then quit Mac Mail.

  5. In Finder, go to ~/Library/Mail/Signatures.  You will see one or more files with names that look something like FA158A16-3D64-4B25-8C2C-5CCF1D7B85CD.webarchive.  The webarchive with the most recent date and time is the temporary signature you just created. 

  6. In Finder, locate Sexy.webarchive and rename it to match the long filename of your temporary signature.  Then copy or move your renamed signature file on top of the temporary signature.

  7. Restart Mail.  Now you should see your new sexy signature when you compose new messages.  If you're not seeing your new signature it could be that the signature is not associated with the mail account you are using (see step 4).  It could be that you have more than one signature associated with your mail account and you need to select your new signature (use the Signature pull down menu on the right side of the composition window).  
I hope that helps and keep spreading the green!

    Monday, August 30, 2010

    What's on your Mac?

    Within the span of a week, two good friends of mine decided that it was time to switch from PC to Mac.  I promised both of them a list of the Mac utilities and applications that I have found useful or interesting or fun on my Macs over the years.  Before I start I need to give props to my buddy Scott Corscadden who took the time to school me in the Way of Mac when I made my switch some years ago.

    1Password ($39.95) - This great utility keeps track of your passwords, log in ids, and form settings.  It can also generate strong passwords which you access with your 1Password password.  Integrates with all browsers.  You can even store your encrypted 1Password file on a file sharing service like Dropbox so that all your Macs, iPhones, iPads can access the same passwords.

    Adium (Free) - Are you an iChat or an MSN?  An AOL or a GTalk?  What about all your contacts?  Do they all use the same instant message service that you do?  With a product like Adium, it doesn't matter.  Use Adium to log into multiple IM services at the same time in the same interface.

    AppTrap (Free) - Uninstalling an application on a Mac is as simple as dragging it from Finder to your Trash bin.  While this does uninstall the application it has a side-effect of leaving behind application support files such as configuration files, caches, databases.  AppTrap will automatically detect an uninstall and, after prompting you for permission, delete all the support files for a clean uninstall.  CAUTION: Some application upgrade processes consist of uninstalling the old version and reinstalling the new version.  When doing an upgrade, select "Leave files" rather than "Move files".

    Dropbox (Free) - There are a few cloud storage services out there (including iDisk from Apple).  None are as seamless as Dropbox.  Configure a directory to be your Dropbox and any file you put in there will automatically be synchronized on the server and with any other client you have pointing to your account.  Share files seamlessly between your Macs, PCs, iPhones, iPads, Android phones, etc.  The first 2 gig is free.  50 gig costs $9.99/month. 

    Evernote (Free) - One of my all time favorites.  At first glance, Evernote seems like a regular text note taking tool.  But you can also take photo notes (with OCR) and audio notes.  Oh, and they're all seamlessly synchronized to the cloud.  And searchable.  Oh, and you can get clients for Mac, PC, iPhone, iPad, Android, Blackberry, Palm Pre, and Windows Mobile.  Awesome.

    Firefox (Free) - Safari is a damn fine browser.  In many respects it is superior to Firefox.  The killer Firefox feature for me is its plugins which I make heavy use of (perhaps a topic for another post).  True, Safari and Chrome both now support plugins but so far neither of them have as rich a set as Firefox.  The moment I can get all or even most of my plugins for Safari I will likely drop Firefox from my list.

    gfxCardStatus (Free) - Macbook Pros enjoy not one but two graphics processors.  An integrated processor which is light on features and easy on the battery and a discreet graphics processor stacked with features but can run your tank to empty in no time.  Apple's method of switching graphics processors is to change the setting in System Preferences and then reboot (Holy Microsoft Usability Batman!).  This utility will install a menu icon that not only tells you which card you're currently using but lets you switch back and forth between the two without rebooting.  Sweet.

    Growl (Free) - Growl is a simple notification platform.  Many other applications integrate with growl to inform you of updates, alerts and other information.  One interface for notifications.

    HandBrake (Free) - HandBrake converts to and from a multitude of audio and video formats.  Perfect for converting the format of the video your brother-in-law sent you to a format your television actually recognizes.

    Hula Girl (Free) - I don't know why I like this dashboard widget but I do.

    iStat Nano (Free) - This Dashboard widget gives you at-a-glance status information about various hardware and software components running on your Mac.

    iWork ($79.00) -This is Apple's office productivity suite consisting of Numbers spreadsheet, Pages word processor, and Keynote presentation software.  If you must work in a Microsoft Office environment then go get Office for Mac 2008 (2011 coming soon!).  If you don't, then get iWork.  It's much cheaper, has all the features that you're likely to need and Keynote kicks Powerpoint's ass simply by lifting its right eyebrow only.

    jitouch ($6.99) - Once you use the multitouch features of the Mac trackpad you will very rapidly learn to depend on it.  Using non-Mac trackpads becomes very frustrating when you find that all it does is move the mouse pointer and nothing else.  jitouch extends the multitouch capabilities with literally dozens of other gestures.  Easily worth the $6.99 price tag.

    MacVim (Free) - At the risk of starting a text editor flame war I'll go on record stating that I'm a VI fan and always have been.  MacVim is a terrific port of VIM (VI Improved).

    MenuMeters (Free) - MenuMeters puts a couple of handy indicators in your menu bar (at the top of the screen) for monitoring things like CPU, network, disk, etc.

    NTFS-3G (Free) - Mac OS/X does not natively recognize NTFS partitions.  If you have carved out some of your diskspace to run Windows (via Bootcamp, VirtualBox, or some other mechanism) you might want to install this NTFS read/write driver so that you can read the Windows file system from the Mac side.  There is also a commercial version of NTFS-3G called Tuxera if you prefer to spend money.

    OmniDiskSweeper (Free) - The Omni Group makes some really great products for Macs.  DiskSweeper is a free utility for managing your drive space.  With it you can find what's eating all the space.

    OmniFocus ($79.95) - The price is a little steep but without OmniFocus I would be a completely disorganized mess at work.  If you have read David Allen's Getting Things Done you will love the care that the Omni Group has taken in developing a product that so closely embodies the GTD principles.  Purchase the iPhone version as well and access your

    OmniGraffle ($99.95) -Another pricey-but-worth-it package, OmniGraffle is a sophisticated diagramming tool.  Similar to Microsoft Visio but with a more intuitive interface and richer presentation features, OmniGraffle makes the process of creating complex diagrams easy.  It even will output in Visio format for compatibility.

    Quicksilver (Free) - "Act without doing" is the tagline from Blacktree.  Their product, Quicksilver, is difficult to classify.  It leverages Spotlight, Apple's advanced search engine built into Mac OS/X, to easily find and access applications, contacts, music, files, and other data.  Without moving your fingers from the keyboard you can access just about anything on your Mac.  Quicksilver is indispensable. 

    Perian (Free) - "The swiss-army knife for QuickTime".  QuickTime is Apple's video viewer.  It's a great app with a simple, clean interface.  Just what you need if you have QuickTime video files to play.  For the other 99% of videos it is useless.  Enter Perian.  Perian adds QuickTime plugins to QuickTime to handle a multitude of other video formats.

    The Weather Network (Free) - This Dashboard widget from The Weather Network (Canadian) does a great job forecasting weather.  Get the iPhone version as well.

    TweetDeck (Free) - There are a handful of Twitter clients on the market but I prefer TweekDeck over them all.  In one interface you can not only get your Twitter stream, mentions, and directs but also add in Facebook, LinkedIn, Foursquare, and Buzz feeds.  Tweet and/or update your stats in any of these social media tools all from the TweetDeck interface.  Be sure to download the iPhone and iPad versions as well.

    VirtualBox (Free) - VirtualBox is yet another great free product from the once might Sun Microsystems (I'm really going to miss them).  Hopefully Oracle will continue to develop VirtualBox and keep it free.  VirtualBox is a Virtual Machine that allows you to run Windows, Linux, or other operating systems while running Mac OS/X at the same time.  For those of you that must cling to your favorite Windows programs, use VirtualBox until you kick the habit.  If you want a VM but would rather pay for it then try Parallels ($79.99) or VMWare Fusion ($79.99). 

    VLC (Free) - "It plays everything!"  If you need to play the few video formats that Perian doesn't handle then get VLC.  This little video player does indeed play just about any format.

    Adobe Reader (Free) - YAGNI (You Ain't Gonna Need It).  Mac OS/X handles PDF files natively.

    Thursday, August 12, 2010

    The moment it becomes an IT project...

    ...you're dead in the water.  Steve Laster, Harvard Business School's CIO, put forward this aphorism at Campus Technology 2010 while describing a major project to investigate, design and implement an online collaboration environment at the Harvard Business School.  The statement resonated with me and speaks to the maturity of the IT culture at HBS. 

    Many IT organizations (and I'm not limiting myself to the education sector) would have eagerly jumped into the project.  A short time later, the latest and coolest Web 2.0, social media integrated toolset would have been installed.  And henceforth ignored.  I attended another session at CT 2010 where the IT director described the new ePortfolio system they (i.e. IT) had researched and implemented.  It had all kinds of great features that students and faculty could use.  After the first semester exactly 0 (zero) students and faculty had signed up.  The IT director chalked it up to a lesson learned regarding communication.  Certainly communication and change management would have helped but I'd bet their results would not have been significantly better if all they changed was communication.

    HBS approached the challenge of online collaboration quite differently.  Right from inception, they treated the notion as a business question rather than an IT problem.  Instead of jumping right in to a juicy "IT project" or allowing the school to "just let IT solve this problem" Laster pulled together a small group of key stakeholders from different departments of the business (yes, I say "business" rather than "school" although it grates on some faculty).  While the HBS Collaboration group included an IT representative it was comprised of and even lead by representatives of other business units.  It was that team's conclusion that an online collaboration tool was indeed needed.  Furthermore, they worked together to develop requirements and explore options. 

    This approach had a number of immediate benefits.  The technology choice had immediate buy-in due to the inclusive method of its selection.  The business units had at least one, and often more than one, knowledgeable member on their team which helped in communication, change management, and rapid adoption.  These knowledgeable members were trained as expert trainers which distributed education and support responsibilities.  The team of experts continued to meet during and after implementation.

    Would it surprise anyone that HBS is a Scrum shop?  Those with a background in agile software development methodologies no doubt see the HBS arrangement as perfectly normal.  The cross-functional working group was, in essence, a product owner / customer proxy.  Wouldn't it be great of more IT organizations thought of their projects and potential projects as being owned by the business rather than by IT? 

    Wednesday, August 4, 2010

    How Many Years Is An Internet Year?

    After 9 years and 11 months of neglect I found myself today pulling up the main page of my old Infocom website to make a few edits.  It's hard to believe that 15 years have gone by.  When the site was first developed it was the Wild West of the Web times.  HTML 2.0 pages were edited in text editors (I'm a vi).  This was an age when the word "hyperlink" sounded space-age rather than retro.  I got to thinking about all the events and advancements that occurred between the time the site was first created and now.  I know I'm missing more than I'm including but here's what came to my mind.

    In random order:
    • the birth of Nathan and Avery (Gabrielle was already 3 months old when the Infocom site first came up)
    • the dot-com boom and eventual bust
    • ftp and especially gopher fade into the shadow left by http
    • Netscape (pronounced "Mozilla") supersedes Mosaic
    • Netscape wins the browser war
    • AOL buys Netscape and the latter becomes irrelevant
    • IE wins the browser war
    • Firefox wins the browser war
    • WebKit wins the browser war
    • Opera... is glad to be a part of it
    • Napster came and went and was reborn (sort of)
    • Apple is reborn
    • Java is invented!
    • Web 2.0 is invented along with its hefty toolbag: XHTML, CSS, Javascript, AJAX, XML, DOM, Rails, etc.
    • Computer gaming industry realizes that millions of people are willing to pay a monthly subscription to play a game 
    • More than a decade of "this is the year of Interactive Television"
    • GPS devices and location services allow us to locate ourselves and others anywhere in the world
    • Bandwidth availability increases and storage price decreases allow for previously unthinkable services like YouTube, Hulu, Internet Radio, Flickr, SkyDrive, Google Docs, and other cloud services
    • Google becomes a 900 lb gorilla
    • Windows 98, ME, CE, 2000, Mobile, XP, Vista and 7
    • Be kind rewind?
    • Macintosh changes CPU architectures... twice!
    • Wikipedia begins cataloging the world's knowledge
    • Social media sites as us to like, follow, connect, stalk, check-in, tweet
    • Cyber-bully and cyber-stalker become words
    • Apple invents and/or dominates new markets: all-in-one computers (ok, it did that way before 1995), MP3 players, touchscreen smartphones, trackpads, tablet computers
    • Old-school IRC iconography like :-) and abbreviations like l8r get co-opted as cool text-speak
    • We can all have a Second Life 
    • In addition to earth's natural spheres we also have the blogosphere and twittersphere.
    • Texting becomes more popular than talking
    • We can have more computing power in our pockets (you know what I mean) than we used to have on our desks or in our server rooms
    • 2" is considered a thick depth for a TV
    And the height of cool goes from to

    Thursday, July 29, 2010

    A Good Life

    On the July 4th Philosophy Bites podcast, Nigel Warburton interviews philosopher Susan Wolf as she talks about her views on meaning in life.  Not to be confused with The Meaning of Life.  As to that question, as wife-Annette will confirm, I believe the question is flawed.  Why are we here?  What's it all about?  What's it all for?  These questions are meaningless because their answers are unknowable.  It could be that a great, benevolent being created us all at the snap of hir fingers (or least after 6 days hard work and one day in front of the TV).  It could be that our universe is a science experiment run by a being from some larger "outer" universe.  It could be that we live inside an extremely detailed computer simulation and consist of nothing more than data.  Heck, I can't even prove any of you exist outside my mind.  The point is, none of these hypotheses can be proven.  These questions are the realm of religious faith, Monty Python, Descartes, The Matrix, Inception, etc.

    No, the topic of the podcast was meaning in life.  What gives a life meaning or value.  Some may say (and I'll admit to this frame of thought in my past) that in order to have a good life all you need is to be happy.  Happiness will indeed bring enjoyment to life but, as Susan Wolf points out, that doesn't mean your life will have any meaning.  For example, I might absolutely adore playing Sudoku.  I play it any chance I get and derive great enjoyment from it.  But I think it would be hard to argue that such a life would be meaningful or have value (and yes, I am equating a "good life" with a "meaningful life"). 

    So maybe in addition to being happy, I also lead a moral life.  I adhere to the morals of my society.  I live in service to my community.  External observers would judge me as a Good Man.  Would I then be said to have a meaningful life?  Certainly leading a moral life has value but, according to Susan Wolf, it's not enough.

    The argument Susan Wolf puts forward is that in order for an activity to have meaning it needs to be both subjectively meaningful (i.e. have significance or be meaningful to the person engaging in the activity) and be objectively meaningful in the society in which one lives.  A simple example Susan Wolf puts forward is that of making a Halloween costume for her daughter late into the night of October 30th (the night before Halloween).  This activity certainly did not give her any pleasure and she probably would have been better served with a few extra hours of sleep.  Nor was the creation of the costume in any sense moral or in service to her community.  However, the activity is meaningful to her because she is doing something in service of her child.  Furthermore, in our society we recognize service to our loved ones as an activity that has value.  Therefore, it is an activity that adds meaning to Susan's life.

    Possibly the weakest aspect of the argument is around objective definition of meaning.  Susan Wolf will be the first to point out that she makes no claim to any sort of objective definition of meaning or value.  No set of properties by which we can neatly categorize activities into meaningful or not meaningful.  In the absence of such properties or rules we're left to rely on intuition and accepted norms.  This is why we believe that Sudoku is not a meaningful activity and that, say, volunteering your time at a homeless shelter is a meaningful (and moral for that matter) activity. 

    So with this definition in mind I humbly submit the following types of activities as meaningful: service to others, creation, invention, pursuit of excellence, pursuit of knowledge.  Naturally we can't spend every minute of our lives in categorically meaningful activities.  We need to engage, for example, in life essential activities as dictated by the biological rules of our bodies.  Furthermore, we're only human and will likely engage in purely enjoyable but not necessarily meaningful activities (computer gaming, Sudoku and Fail blogs happen to be some of the activities that bring me pleasure but are in no way meaningful).  I think the point is to try to fill as much of our time as possible, whether at home or at work, in meaningful activity in order to have a good life.  This idea shines a particularly baleful light on addictions, whether physiological additions (like alcoholism) or social addictions (like gambling or pornography), which essentially fill one's time with pleasurable activities (or miserable activities in pursuit of pleasurable activities) none of which has any life meaning or value.

    I'm curious what other activities people hold to be meaningful in life (remember, both subjectively as well as objectively).  Leave a comment!

    Wednesday, July 21, 2010

    From Campus Technology 2010

    Today is Day 2 of my Campus Technology 2010 tour.  While yesterday's speakers and activities had my aching to run away from the conference never to return (Janet had better luck than I did) today's speakers more than made up for the deficit.  Yesterday brought me no insight nor inspired any new ideas.  Today, however, my horizons were expanded and many of my assumptions were challenged.  Perfect!

    The Keynote

    The day kicked off with an excellent Key Note by the Stephen Laster, CIO of the Harvard Business School.  Stephen is a great speaker and his topic was near and dear to my heart -- factors (8, in this case) that contribute to the success of an IT organization.

    1. Hire and mentor a great team (people first!)
    2. Run the shop as a business (a key consideration for an internal IT organization)
    3. Leverage planning and governance
    4. Take smart risks
    5. Actively measure
    6. Capture the customer (not literally!)
    7. Communicate, communicate, communicate (and make it someone's responsibility in IT)
    8. Leverage trusted advisors
    He didn't come out and say it in his keynote but in a talk later in the day I got the impression he had a 9th factor which would go something like "Start small and iterate quickly".  It's nice to see successful organizations subscribing to the same principles as your own.  They're just a little further down the path than we are at Ivey and I hope to stand on the shoulders of HBS in order to accelerate ourselves. You can get a sense for the keynote from this interview Campus Technology did back in April.   

    Conference Themes

    I must admit that the themes I spotted at the conference were different than what I expected.  I expected a major theme to be cloud computing but it was barely even mentioned.  Other themes that received little or no attention: classroom A/V, eReaders, IT infrastructure, IT methodologies (ok, I'm not surprised about this one).  Below are the major themes that I picked out.

    Distance Learning
    This one comes as no surprise as higher ed institutions try to either bring in new revenue or reduce costs of delivering courses.  The industry has been working on this for some time and it looks like it'll be some time still before we can deliver a good student experience to remote learners.

    Post-LMS World
    The LMS (or Learning Management System) is considered a table stake technology for any educational institution.  Ivey has a homegrown LMS.  UWO uses WebCT (now Blackboard).  Moodle and Sakai are viable open source options as are others.  At the conference there seemed to be an underlying theme that the LMS as we know it today (calendars, events, forums) are outdated concepts and not in step with how students of today communicate.  There was an emphasis on leveraging modern collaboration and social networking tools.  A move away from "management" towards "personal collaboration".

    ePortfolios
    There seemed to be an explosion of ePortfolio vendors at the conference.  I must admit that I wasn't familiar with the term prior to the conference but now feel sufficiently schooled to at least describe what it means.  An ePortfolio is an personalized, online aggregation of a student's achievements in not only academics but also in other activities such as volunteerism, sport, clubs, etc.  Think of it as a mash up between LinkedIn, Google Profile, Facebook, and Dropbox.

    Mobility
    The community seemed to collectively recognize that students entering higher education did more communication via handheld devices (like iPhones, Androids, and even Blackberrys) than they did on laptops and computers.  A few schools were experimenting with mobile offerings but most were not even that far.

    Academic Content Support
    I was surprised to learn that many schools offer Academic Content Support via their IT organizations.  This type of support involves aiding faculty in the creation and maintenance of the content they use for teaching.  This might mean developing interactive web content to use in class.  It might mean adapting a lecture for display on an interactive whiteboard.  It might mean developing a mobile application.  It might mean aiding in the selection of a simulation vendor.  It might mean recording and/or editing video for use in a class.

    Monday, June 28, 2010

    The Evils of Management

    This post continues on the theme I started in the "Agile - An Elite Game Only?" post.   This installment covers the claim that Agile "fails to address the evils of management". 

    Hear ye, hear ye.  Let it now be known that I am one of those pointy-haired bastards.  The Man.  High Priced Overhead.  The Management.  My current position is CTO at the Richard Ivey School of Business.  I've previously held positions at other companies in VP Engineering, Director Engineering, Manager, Team Leader roles.  In ancient times (more than a decade ago) I was a software developer.  I've led and managed teams over those years using both traditional planned methods and agile methods.  In my past I have been known to quote IEEE and ISO as well as, more recently, Sutherland and Beck.

    I hate to deflate your balloon right off the bat but the expectation that any software development methodology will "address the evils of management" is flawed.  If we assume for the sake of argument that the use of "evil" here is a colourful metaphor meaning "incompetence" rather than actual malice it is difficult to see how any methodology would solve the problem.  Methodologies might somehow stunt the impact of incompetent management but that doesn't really address the problem.

    I'll steal a page from my buddy AgileMan and define "incompetence" in a very broad sense to mean "unable, for whatever reason, to perform the necessary duties of the position."  This could be due to laziness or bad attitude or fear but it could also be due to lack of job knowledge, insufficient data, overwork, competing goals, or other factors. 

    Companies need to realize that leading agile teams requires different time and attention from them.  It requires more direct interaction, more trust and empowerment, more vision and leadership.  So where do leaders find time for these new responsibilities?  Thankfully if you have a good teams and healthy culture, Agile requires less Management, less reporting, less approving.

    What Have I Learned?

    As a manager and leader coming who has worked in both preplanned and agile environments I have learned a few things.  While the following lessons might not apply to every situation they are more or less all true for all the situations I've been involved with so far.

    Software Development Team Leaders Need To Be Technical

    I'll start off with a controversial one.  I don't care what you call them... scrum masters, coaches, team leaders, development managers, etc. but the leader of a development team needs to be technical.  I'm not saying the leader needs to code every day but she should be capable of and have experience in doing so.  The leader needs to know that their primary responsibility is leadership and empowerment and her goals and objectives need to reflect that emphasis.  Part of those goals should include ways of staying current on both the leadership and technology sides of the role.

    Agile Can Make You A Better Leader -- If You Let It

    Leaders and managers who see the opportunity for personal growth and for team growth can leap ahead in their careers by leveraging agile principles.  Every modern business leadership book talks about empowering employees to make decisions, getting "out of the way", growing your team to achieve greatness.  Agile did not not define this game, agile is just one of the newer contestants.  A good leader will leverage the expectations around team performance that come with agile and do everything they can to empower their team.  Empower the team with knowledge, with responsibility, and with trust.  Frightened, insecure, or incompetent (in the broad sense) leaders will feel compelled to control, define, over-measure.  These actions end up stifling the real behaviours that will make the team (and the leader) successful.

    Teams Must Understand That Managers Have Responsibilities Too

    Too often I hear team members complaining that their manager just needs to trust them.  If only the manager wasn't meddling so much we could get more done.  If only the manager wasn't asking for us to work on "useless" things we could get more valuable work completed.  I'm here to say that Trust needs to go both ways.  Teams need to trust that a manager is asking for certain things for a good reason and not just on a whim or because that's what the process tells them to ask for.  Sometimes development teams are part of a much larger organization that, for reasons outside the control of the development group, finds value in artifacts that in the team's limited view seem worthless.  Trust that a good leader will ask teams for non-product deliverables only if there is a good reason.  Naturally teams have the right to ask questions about the deliverable including its perceived value.  In the end, the leader should be trusted to make good decisions.  That's her job after all.

    Bad Management Repels Good People

    Finally, it should be obvious that consistent bad management will cause good people to leave.  If you feel that your talents are going unrecognized or that "the management" continually screws things up and cannot provide good explanations for the decisions they make then vote with your feet.  Even in smaller communities like where I live there are opportunities out there for those who are motivated, energetic, and talented. Life is too short to be miserable in your job. 

    Coming Up "Soon" - Software Professionals

    Agile: Average Developers Need Not Apply?

    This post continues on the theme I started in the "Agile - An Elite Game Only?" post.  This installment discusses the notion (or myth, in my opinion) that agile methods are meant only for the elite or superstars of software development and that the gains promised by Agile are not attainable by the merely average.

    Agile teams are expected to learn and experiment and teach and grow.  All the time.  The argument goes that developers of average skill just can't keep up with that and therefore agile is not for them.  Further goes the argument that Agile should only be applied to small teams of superstars and more structured processes should be used to keep the developers of average skill "on track" (or, less kindly, "in line").  I've also had some developers express to me concern about "fading into the background" of a team if they are not allowed to continue as single contributors (although it's almost never a superstar who expresses this concern to me). 

    Over the past 8 months I've been working with a small team of 6 software developers.  I don't think there is a single person on the team who would describe themselves as a superstar.  Rather each of them are "just" solid performers who want to do a good job and make a living.  I'm also working with a team 4 of business analysts who possess varying depths of knowledge in the various products that are needed.  This team of developers and BAs has done some amazing work over the past 8 months while transitioning to agile methods.  By just applying the following core principles they have enjoyed higher productivity and, from the feedback I get, much higher job satisfaction all while working on much the same software they had been working on 8 months prior. 
    • Direct and active developer contribution to planning including requirements breakdown, estimation, risk identification
    • Competent business analysts who value the skills and knowledge of the development team
    • Daily and continuous collaboration between and among developers and business analysts
    • A development manager who trusts the team and inspires a culture of learning
    • Automated unit tests (although this has only been added in the past 4 months)
    This team is readying themselves to move to the "next level" by adding in better automated builds, better source control, and better automated testing.  They have developed an energy for learning and a spirit of collaboration that has elevated everyone's game.  In other words, their attitude is influencing their behaviour which are both having a major positive impact on their aptitude.  Superstars?  We'll call one if we need one.


    So What About Those Superstars?

    Still, there's no question in my mind that superstars are fantastic assets.  They develop at 10x (or more!) the speed of other developers, produce top quality, and generate new ideas all the time.  They live and breathe their profession.  They are also, unfortunately, rather rare.  I've worked with maybe a half dozen directly (i.e. in my organization) and maybe a dozen indirectly (in partner organizations) over my entire career. 

    Whenever anyone suggests that we keep the superstars separated from the rest of the team so that they can "do their thing" I just shake my head.  Why would any company want to keep all that goodness locked up away from everyone else?  My experience has been that superstars bring up the game of the team they are on.  They become teachers, role-models, inspirational leaders.  The effect is multiplicative!  Good developers become great developers when they are on teams that have a superstar.  Only once have I found a superstar (in the productivity sense) that truly needed to remain an island.  All other cases have resulted in higher performing teams without eroding the output or visibility or "aura" of the superstar.

    In summary, teams, whether they have a coding wunderkind on the team or not, have always benefited from agile methods in my experience.  What's important is that the team developers their own passion for quality and growth.  Leaders can influence and inspire this attitude but it cannot be mandated.  So choose your leaders carefully!


    Coming Up - The Evils of Management

    Sunday, June 27, 2010

    Agile - An Elite Game Only?

    I thought the following comment to my last post (Manifesto of Second Best Alternatives) was important enough to inspire a new post rather than a comment.  Anonymous writes:
    "Sure, Agile approaches an answer to many of the noted problems all too common in the software development world, and maybe in another decade we might improve upon it some more. But amongst the positives, it occurs to me that Agile robs us of specialization, making all developers fit a ridiculous mold that only a handful can actually aspire to fit, hence the consensus that there is some need for "less than agile" methods. It's great to be able to learn new things and do so at light speed, but that is not every developer trying to make a living. So all you do is reflect back your own smugness when you talk about these so-called "incompetent individuals." Beware that label: One day you, too, will reach age 50 and the youth getting by on 1/3 of your pay will undercut you because they are 80% as good as you.

    Another observation I have about Agile gets right to the heart of why nothing attempted by the Agile community matters, and that is: Agile fails to address the evils of management. It doesn't matter how well you estimate something, management will always demand twice as much no matter how much realistic evidence you present to them. Management sees Agile only through the lens of "how can I make these assholes produce more and whip themselves in the process?" And so we have reopened the doors to the sweatshop. Information Sharecropper has a real nice ring to it, though, right?

    You want a fix? How about making software development a profession equal in status to doctors and lawyers. That will solve 99% of the problems. Doctors don't let non-doctors manage them, it simply is unacceptable.

    What I'm looking for is that holistic manifesto--the one that gets the job done, gets me paid, and doesn't leave me feeling completely played the way I have been for over decade now. Anything else is just blather. Smart people in America are just easy marks."
    This is a great comment because it raises some very important themes.  I was going to touch on them all in this post but I'm afraid that would result in a huge post that few would have time to read.  So what I'll do today is list the themes and start a discussion on one.  Over the course of the next few days I'll post some thoughts on the remaining themes. 

    First some background, over the past dozen years I've held a number of software management positions from team lead to CTO.  Prior to those years I was writing software primarily in C++ and Java for client and server solutions.  I've directly led small teams and also led organizations up to 100 software professionals.  I've managed using both traditional, planned methods as well as agile methods.  

    Here are the important themes that this terrific comment touches on.
    1. Specialization vs generalization
    2. Agile for the elite superstars
    3. Evils of Management
    4. Respect for the software profession
    Specialization vs Generalization

    Agile teams work very closely with each other on a daily basis.  Team members collaborate on problems and solutions all the time.  They communicate with each other at least once daily but typically much more.  Team members are expected to pick up tasks even when not directly in their field of expertise

    So does agile necessarily rob us from the benefits of specialization?  I think this is less of an agile issue than it is a team issue.  Do you value the speed that comes from deep specialization (at the risk of damaging your company should a specialist leave) or the flexibility of generalization (at the risk of team members being jacks-of-all-trades-and-masters-of-none)?  In my experience, the benefits of specialization, even on agile teams, are too great to move to total generalization.  That said, agile teams do not necessarily mean a push to generalization.  Software developers are not automatons.  If an agile team is truly doing their own planning (and not under the thumb of a heavy-handed manager) they will naturally leverage the skills and experience that are on the team.  The following quotes are representative of the meme I'm expressing here and all commonplace on the teams I've been involved with.
    "Jim, you know databases better than any of us, can you take on this schema deliverable?"
    "I'll do the UAT for this requirement.  I'll fit right in to the framework Janet and I wrote a couple iterations back."
    "I'll take on the server task.  Nathan, can I get some of your time this iteration since you know the server so well?"
    An additional benefit of an agile team arrangement is that the daily interactions developers have result in some specialized knowledge getting absorbed into more team members.  This reduces the company risk of maintaining specialization pillars.  Teams naturally drive towards becoming (and by now you've probably been wondering when I would bring up this term) generalizing specialists.  There's enough written about generalizing specialists that I'll just leave you a Google link

    Coming up tomorrow - Agile: Average Developers Need Not Apply?

    Wednesday, June 23, 2010

    Manifesto of Second Best Alternatives

    The Yahoo! XP mailing list recently had a discussion about whether or not Agile was attainable by any team or whether it was really only for 1337 developers.  There was a suggestion on the list that some in the community should collaborate on a second manifesto (or, as Bill Caputo put it with tongue in cheek, a "less-than-agile manifesto") designed for those developers of "average skill" or who are part of lower-cost, commodity labor markets (i.e. off-shore).  Ron Jeffries, co-creator of XP, responded with the following "viciously sarcastic" draft which I found very entertaining. I should make it clear that Ron's angle here was humour and not attack.

    A MANIFESTO OF SECOND BEST ALTERNATIVES

    We intentionally hire incompetent individuals who will not stay
    with us long, and organize across geography so that their
    interactions are few and hampered. We try to compensate for these
    irreparable errors by using Draconian processes and expensive
    tools.

    Our developers cannot really build software on their own, because
    we hire them that way to save money. They do not stay with us long
    enough to justify training them. We try to compensate for their
    almost complete inability to perform, using large documents
    describing, mostly in a language our workers understand only
    imperfectly, how to use our massive tools and how to follow our
    rigid process.

    We position our incompetent developers as far as possible from the
    people who know what we need. We cannot get together with them
    often, because travel is expensive and no one wants to go there
    anyway. Since we cannot collaborate effectively, we try to
    compensate by writing strict definitions of what we need for our
    incompetent developers to follow. We fail to notice that if we
    knew that accurately what we want, we could just write it down in
    Java and be done. In any case, our incompetent developers may not
    be able to follow these strict contracts, and we will have a good
    case for recovery of damages.

    In the absence of competence, and with collaboration being
    essentially impossible as well as undesirable, we will not be able
    to accommodate many changes, despite the many mistakes that will
    inevitably be made in planning and communication. Nonetheless, we
    will insist on rigorously following our plans in every detail.

    By doing all four of these things, each of which is at best half
    as good as doing the right thing, we will guarantee that we will
    be at least one-sixteenth (one-half to the fourth power) as
    effective as we would be if we actually followed the Agile
    Manifesto.

    But this way we get a manifesto of our very own.

    Saturday, June 5, 2010

    What's on your Pod?

    I recently acquired a new Apple iPad as part of an experiment we're running at work.  In addition to my iPhone, I now have a couple of connected devices that are meant to make my life better.  I've been taking a look at the dizzying number of applications available for both devices and it got me wondering what applications do the folks I know have on their devices.

    In addition to the built in applications for email, browsing, contacts, calendars, photos, and tunes here's how my devices are kitted out.

    On Both

    I think it's pretty well known that iPads can run iPhone applications.  Some applications are written to be resolution independent and look stunning on either device (yay!).  Others are meant strictly for the lower resolution of an iPhone (or iPod Touch).  They are functional on an iPad but look pretty bad when pixel doubled (anyone working at my old company can attest to the poor visual results of pixel doubling).
    • Evernote (Free) - essential for anyone like me who needs their brain backed up and/or extended.  Evernote syncs your notes seamlessly between all your devices and computers.
    • OmniFocus ($24.99) - the best Getting Things Done (google "David Allen GTD") application I've come across.  Synchronizes your todo information across all devices and computers.  No iPad version yet though (pixel doubling -- puke).
    • Tweetdeck (Free) - by no means am I a media socialite but Tweetdeck does a great job at presenting your Twitter, Facebook, LinkedIn, foursquare (and other) feeds in one UI
    • Dropbox (Free) - the more computers and connected devices we get the more important it is to have access to your important files no matter where you are in the meatsphere.  Dropbox seamlessly synchronizes your files across all computers and provides access to your files on mobile devices.  Comes with 3G storage for free.  (Oh Apple, why the $99 charge for MobileMe?)
    • Net Portal ($1.99) - I don't really know why I bought this app.  It lets you access the files on your computers from your iPhone or iPad.  But if my important files are in DropBox why do I need to get at my computer you ask?  Good question.  Don't buy this app.
    • Remote (Free) - Apple's remote control allows you to control your iTunes library or Apple TV
    • Skype (Free) - 'nough said
    • Flixter (Free) - Movie reviews no matter where you are
    • Urbanspoon (Free) - Restaurant reviews and recommendations no matter where you are
    • IM+ Lite (Free) - Nice multi-IM client with support for MSN, AIM, GTalk, Yahoo, and others.  Supported by ads unless you purchased the paid version.
    • Mocha VNC Lite (Free) - Control your computers from your iPad or phone (although the phone resolution is a bit tiny for this to be practical).
    On iPad
    • iBooks (Free) - Apple's book reader.  Fantastic.
    • Noterize ($2.99) - Note taking ala the built in Notes application but with many more features including the ability to do freehand annotations, and load PDF and PPT files.
    • Marvel (Free) - Marvel's comic book reader.  Does a great job at providing the comic book experience in electronic form (don't tell kimota94 though). 
    • Adobe Ideas (Free) - freehand sketch tool from Adobe.  Works better with a stylus such as the Pogo Sketch
    On iPhone

    My iPhone apps tend to be applications take either deal with photography (the iPad doesn't yet have a camera) or that leverage the high mobility of a phone over the iPad.  
    • PS Mobile (Free) - Adobe Photoshop Mobile.  Simple photo touch ups right on your phone.
    • FX Photo Studio ($0.99) - Photo effects on your phone.
    • Stanza (Free) - A free ebook reader.  Before the iPad and iBooks I read books on my phone using Stanza.
    • Momentile ($4.99) - Momentile is a social media site that, as far as I can tell, really hasn't taken off but I like it.  The idea is that you take a photo every day (or as near to every day as you can) and upload it to your Momentile site as a kind of photo diary.  The iPhone client lets you upload from your phone (which is really essential given that you are trying to capture an image every single day and in unpredictable situations).
    • foursquare (Free) - Ok, so I foursquare.  Shut up.
    So iPhone, iTouch, and iPad compadres... what's on your pod?