Entries from September 2005 ↓

It’s Not Hard to be Good

One of the software architects I work with made a comment the other day that reminded me of something I once said to my dad.

I was working for a large electrical contractor, managing the build-out of our new $6-million corporate headquarters. This was a huge job for a 25-year old, and I was working my butt off trying to keep up with the chaos that is a fast-track construction project.

About two weeks into the project I could already tell who was going to carry their weight and who was going to eat my time like a side order of potato salad. The electrical foreman, while not the most tactful guy, came through on almost all of his promises; when he said something would be done it was done. The architect, although a competent designer, needed two or three reminders before he would send a set of drawings.

After a particularly frustrating day I said to my dad, “It doesn’t take much to be good, you just have to do what you say you’re going to do.” He laughed hysterically, and to this day I smile at the simplicity of that statement.

Whether managing a construction project, developing software, or talking about a new product, just do what you say you’re going to do. If you can accomplish this, people will sing your praises in the hills.

[ Bookmark this post with del.icio.us (What is del.icio.us?) ]
[ Submit to Slashdot ]

Second Mover’s Advantage

There was a lot of press in the late 90s about first mover’s advantage. The term describes a company that releases their product before their competitors, which allows them to secure a large portion of the market before anyone else can make a move. Companies like Amazon, Netflix and eBay lend credibility to the power of first mover’s advantage.

Erik Sink, one of the leading voices of the software industry, recently wrote an article that mentioned second mover’s advantage, and The Harvard Business School website had an article about Apple and their strategy of being second to market. The more I thought about it, the more I realized there are a slew of advantages that you gain from being a second mover.

Advantage #1: Learning From Their Mistakes
One of the largest advantages is being able to observe your competitors’ successes and failures. Not only do you get to see which features go unused (which amounts to wasted time on their part), but you can take the features that are successful and implement them yourself, hopefully improving them along the way. This amounts to less time evaluating new features and more time working on your product.

In terms of marketing and pricing, it certainly gives you the upper hand to know where and how a competitor has marketed their product (be it magazines, blogs, developer.com, etc…) and how much it’s selling for. This is a lot like knowing the answers before the teacher hands you the test.

Advantage #2: Revising Rather than Creating
T.S. Eliot said “Good artists borrow, great artists steal” and many after him, including Steve Jobs and Bill Gates have certainly put this quote to use while making their billions. Even Paul McCartney talks about how the Beatles “borrowed” bass lines and guitar riffs from the popular bands of the day.

Apple didn’t invent the MP3 player, but they did a great job revising it into the iPod. IBM didn’t invent the PC, but for many years they were the #1 PC manufacturer in the world. Google didn’t invent search, but they made it better and are the world’s leading search engine because of it. There are hundreds, if not thousands of companies that have found success revising previous designs. Just because someone has done it before does not mean you can’t improve on it and own the market.

Advantage #3: Surprise!
As a second mover you are a sniper in the hills. You’re able to create your marketing strategy knowing where your competitor has succeeded and failed.

One example of this is FeedBlitz, the service that allow blog readers to receive regular email updates of new blog posts. FeedBlitz is the second (maybe third) mover in this space, and Bloglet has a two to three year lead. But Bloglet has had issues with reliability and support, and FeedBlitz is attacking this weakness head-on with a chart that compares the two services, pointing out, of course, the superior features and reliability of FeedBlitz. This wouldn’t be possible if FeedBlitz were first out of the gate.

Advantage #4: Stealing Market Share Rather than Creating a Market
The first mover is faced with the task of convincing people they have a problem in need of a solution, which tends to be expensive in both dollars and man-hours. For the second mover the market already exists.

In most cases, it’s easier and more cost effective to steal customers from a competitor than to create a market from scratch. As a second mover you just need to convince them that your product can solve their problem faster, cheaper, or more reliably.

Although being first to market is certainly a desirable position, arriving second has advantages that, if used wisely, can turn the tide in your favor.

[ Bookmark this post with del.icio.us (What is del.icio.us?) ]
[ Submit to Slashdot ]

Google by the Numbers

Google is cool. Not only are they revolutionizing the web, they’re still just a bunch of geeks at heart. Check this out:

  • Google is named after a Googol, which is a 1 followed by 100 zeros. They didn’t use the original spelling because someone made a mistake, which was fortuitous since googol.com was taken, but google.com was available.
  • Google’s buildings are numbered 0, 1, e, pi, and phi; all of which have mathematical significance.
  • Google’s first IPO raised $2,718,281,828, which is the product of “e” and $1 billion, where “e” is the base of the natural logarithm.
  • For their second public offering Google will sell 14,159,265 shares, which is the first 8 digits after the decimal point in pi (3.14159265).

This is the sign of a group who doesn’t take themselves too seriously.

Bookmark this post with del.icio.us

The Definitive List of Idea Generation Methods

This is a cool resource: Martin Leith is maintaining an alphabetical list of every idea-generating process he’s encountered in his 15 years of research, drawing from books, management journals, websites, academics, consultants and colleagues.

They range from the known (Brainstorming) to the more experimental (Art Gallery), to the just-plain nutty (Country Music).

Bookmark this post with del.icio.us

What is Del.icio.us?

Most of you have heard the buzz surrounding the social bookmarking site del.icio.us, but I figure I’d give it a mention here in case you’ve yet to start using it.

Web surfers have always used bookmarks, from way back in the days of Netscape 1.0. By the late 90s a few online bookmarking sites cropped up, allowing people to store their bookmarks on the web and access them from any computer. Nothing fancy there.

What del.icio.us has done is take it one step further and allow people not only to bookmark and tag web pages with keywords, but to share them, as well. Now that thousands (hundreds of thousands?) of people are participating, del.icio.us is a repsitory of everything that people are reading and thinking about on the web, organized by keyword. This amounts to a pretty amazing set of human-generated data.

Signing up is a breeze, just visit del.icio.us. The thing I like most is they provide a bookmarklet that goes in your IE or Firefox favorites and allows you to add a page to your del.icio.us bookmarks with a single click.

And just to make it easier for everyone, I’m going to start adding a link at the end of my posts that allows for easy bookmarking in del.icio.us.

Thanks to Charlie O’Donnell for the heads up.

Bookmark this post with del.icio.us

Word Processing on the Web

It’s finally happened – someone has successfully implemented a word processor on the web. It even includes embedded images and spell checking. A round of applause for the team over at Writely.

The killer feature here is the collaboration component that allows you to share any document with individuals you specify, or with the whole world, essentially making it a Wiki. The editing capabilities are also pretty advanced, and during my brief test run I found it extremely easy to use.

This is another highly responsive web application built using AJAX (a combination of two existing technologies, JavaScript and XML) to create the feel of a desktop application. Writely is free to use during the beta period, but I imagine they’ll begin charging once all the kinks are worked out. To follow Writely’s story, check out their blog here.

New Article: How to Hire Like a Start-Up

Here is an excerpt from my new article:

“The best example of this is a venture funded start-up. Start-ups backed with venture capital are on strict deadlines to reach financial goals or risk having their funding eliminated. As a result they consume new hires with an insatiable hunger, and more than once I’ve seen situations where the development team needs to grow two or three times its size in the span of a few months. If you’re a manager in this situation you’re forced to leave conventional wisdom behind and enter a mode of hiring fast rather than hiring perfection.

Take this not-so hypothetical situation: your current team of 6 developers needs to be at 22 people in 4 months. You have 16 open positions, more than 2.5 times the number of developers on staff, and you need developers who can hit the ground running.

I think I just heard someone scream.”

Read the rest of the article here.

How to Hire Like a Start-Up

As a rite of passage, every software management author has to give their take on the hiring process (Joel’s, Erik’s, Paul’s). This is mine.

In an ideal world you would take as long as you want to fill a position. This would allow you to be very picky about who you interview and even pickier about who you hire. I’m a staunch supporter of this approach and tend to be a pretty harsh interviewer as a result; at times interviewing 30 or 40 candidates before giving someone the nod.

But sometimes you don’t have the luxury of spending four or five months to fill a position. There may come a time in the life of your company when you’re faced with more job openings than you have developers, and you need to hire people in a hurry.

Hiring Fast
The best example of this is a venture funded start-up. Start-ups backed with venture capital are on strict deadlines to reach financial goals or risk having their funding eliminated. As a result they consume new hires with an insatiable hunger, and more than once I’ve seen situations where the development team needs to grow two or three times its size in the span of a few months. If you’re a manager in this situation you’re forced to leave conventional wisdom behind and enter a mode of hiring fast rather than hiring perfection.
Antigua Palace
Take this not-so hypothetical situation: your current team of 6 developers needs to be at 22 people in 4 months. You have 16 open positions, more than 2.5 times the number of developers on staff, and you need developers who can hit the ground running.

I think I just heard someone scream.

We could argue all day about the drawbacks to growing a team this quickly, but assume that you’ve been told to hire 16 developers or find yourself a new job (hire or be hired, in other words). Think about it in these terms: any start-up attempting to dominate a rapidly-growing market must take this approach or be consumed by competitors who will.

So the question is: how can we modify the strategies of conventional hiring without throwing them out entirely?

Hiring fast consists of the following steps:

  1. Write the Shortest Job Description Ever
  2. Skim Resumes Like Crazy
  3. Use the Numbers
  4. Hold Phone Interviews
  5. Finish In-Person

1. Write the Shortest Job Description Ever
Don’t kid yourself, job hunters don’t read long job descriptions. They read bullet points, skip to the required skills section and submit their resume. The shorter your description is, the higher the likelihood you’ve adhered to the single most important tenet of good writing: brevity. A long job description usually means the person writing it doesn’t really know what the candidate will be doing once she’s hired (what I call the kitchen-sink approach). Aside from the Pope, there’s not a job on earth that requires a three page description.

If your description is longer than half a page (three quarters if you use a lot of bullets), revise it.

2. Skim Resumes Like Crazy
Hiring is about playing the numbers; as a manager you’re trying to maximize the chance that the person is going to fit. Since we don’t have time to meet every candidate in person we rely on other means such as resumes and phone interviews to give us a picture of a candidate’s abilities. A resume can get you about 20% of the way, with phone and in-person interviews taking you to 80% (the highest you can get without actually working with someone).

Most managers take resumes too seriously. If you’re spending 15 or 20 minutes reviewing a resume you’re better off spending the time on a phone interview. You can tell a lot more from a conversation than you can from a piece of paper.

Your sole task when reviewing their resume is to decide if the candidate is worth talking to on the phone. You must become fast at skimming resumes; you should be able to evaluate one in 3-5 minutes.

3. Use the Numbers
In his book, Winning, Jack Welch, former CEO of GE, introduced a concept called Differentiation that consists of rating each employee as an A, B, or C according to performance. Intel uses a similar approach. The intent of these scales is to create a common, familiar method of ranking employees. The exact scale is not important; using a consistent metric everyone can understand is the key. In my experience a 10-point scale works best.

My dad has worked in the construction industry since people built skyscrapers out of dirt, and he learned early on how to evaluate electricians. His method is something I call the Rule of Thirds: on a 10-point scale you make money with your 7s, 8s, and 9s, break even with your 4s, 5s, and 6s, and lose money with your 1s, 2s, and 3s. There are no 10s in that list since no one is perfect; the highest possible rating is a 9+.

Central American Beach

In every job search there are hires, maybes, and no-hires. Using the Rule of Thirds, 7-9 is a hire, 4-6 is a maybe, and 1-3 is a no-hire.

The only difference between hiring slow and hiring fast is what you do with the maybes; when hiring slow the maybes become nos, when hiring fast you let the maybes proceed to the next round of evaluation. If you’re at the last round (the in-person interview), you should never hire anything less than a 5.

In general, a developer with killer technical ability but so-so people skills is a 7. A developer with fabulous people skills and so-so technical skills is a 6. Someone with the complete package can range from an 8 to 9+.

The key to hiring fast: Always hire 7-9s, never hire 1-4s, and hire as many 5s & 6s as you need until you can find more 7-9s.

4. Hold Phone Interviews
From the time you receive a resume to a scheduled phone interview should be no more than two days. This may sound fast, but it follows from the fact that the best candidates are hired very quickly, if they hit the job market at all. Executing quickly is critical to finding 7s, 8s and 9s.

Phone interviews are the next step of evaluation after reviewing a resume. First round phone interviews should be given by hiring assistants or recruiters and consist of 5-10 short answer technical questions. If the candidate makes it through the first phone interview, call them yourself and ask 10-15 in-depth technical questions. You should keep this call to 20 minutes.

Here are a few tips for this phone call, which is your first real contact with the candidate:

Start with Witty Banter. Psychologists say that 55% of communication is non-verbal. I’ve found that people tend to be very nervous during phone interviews due to the lack of visual cues, and nervous candidates are less likely to give you a true picture of their capabilities. Put them at ease with an introduction and some small-talk, typically relating to something other than work.

Give Them An Outline. Continue with a quick rundown of what to expect during the call. You’re dealing with developers so known, logical steps are helpful.

Ask for Clarification. Next, try to get to the bottom of any ambiguous statements on their resume. This typically involves asking about specific details of their current position, including why they want to leave. Also ask about any outrageous claims or discrepancies.

Ask Technical Questions. Candidates tend to get nervous when answering technical questions so be sure to explain how many questions you’re going to ask and to let them know that you’re not looking to pass or fail them, rather to get an idea of their strengths and weaknesses. Try to stick to more conceptual subjects like architecture and basic programming concepts, as opposed to language specifics.

See If They Have Questions. Since you are their first technical contact with your company they will typically have questions about the size of your team and whether there’s free soda in the lunchroom.

If the candidate is obviously an 8 or better, try to schedule an in-person interview at the end of the call. If not, close the interview and use their 1-10 ranking to decide how to proceed.
Chinese Bike Cart
6. Finish In-Person
The in-person interview has been discussed in so many articles that I’m not going to beat it to death here. Joel Spolsky’s Guerilla Guide to Interviewing has a good outline for an in-person technical interview. Here are a few of my thoughts:

  • Ask a few technical questions that don’t have specific answers and observe how the candidate responds. There are plenty of smart developers, but someone who can translate complex concepts into words is an exception.
  • Ask them to write code and watch how they approach the problem. Recursive questions are always fun and help indicate whether or not they understood the things they were taught in their computer science courses.
  • Ask any additional technical questions you haven’t covered before now. This is your last chance before making a decision.
  • Finally, if you’re at all interested in the candidate, be sure to evangelize your company and answer their questions to the best of your ability. You’re almost to the point where you’re going to make them an offer, so you want to convince them that working anywhere else is a mistake.

Once the interview is complete, use their 1-10 ranking and the Rule of Thirds to help with your hire/no-hire decision, keeping in mind you should never hire less than a 5.

If hiring were easy it wouldn’t be the subject of so many books, articles and seminars. Hiring technical people is extremely challenging, and hiring a whole slew of technical people in a short time can feel like parting the Red Sea. My hope is that this article lends some guidance when you’re forced to hire like a start-up.

Sneaking into Apple

Here’s a cool story about a guy who’s project at Apple was cancelled but he kept sneaking in for six months, working 12-hour days, seven days a week to complete the project. He even paid for outside contractors out of his savings.

This is a guy with passion; not for money, but for a vision. Although I question the health and sustainability of such a lifestyle, I have to respect his dedication.

When was the last time you had a vision that you believed with such fervor that nothing could stand in your way? If you don’t have one, how can you find one?

Three Months

This blog has been up for three months and I’ve been very pleased with the response. I had several thousand visitors last month, currently have 66 RSS subscribers and counting, and have links from the likes of Scott Mitchell, Mike Gunderloy, and Adnan Masood.

So at this point I’m wondering what posts you’ve enjoyed most and what you want to see more of.

Is it the Becoming a Better Developer series? More about Africa? Software development? Software startups?

If you haven’t commented before, now’s the time. If you don’t feel comfortable commenting, drop me a line and let me know what you’ve liked and disliked.

A big thanks to everyone who’s reading!