Wednesday, July 30, 2008

Great Ideas: Quote of the Week

It's interesting that sometimes think we know what we want, but we really want something else.  And in the space between the two is usually where the really great ideas are born.  When somebody discovers what we really want instead of continuing to give us what is we think we want.  Of course, this is a similar idea to the one discussed in the Innovator's Dilemma, another book on my "must read" list.

... many of the great ideas are not precipitated by the customer. While the customer knows what he wants, he doesn't always know what's possible. And that first dawned on me in my earliest days in business. When I was new at IBM, working in sales and taking a management training program in Sleepy Hollow, New York, I came back to my room grumbling about the lack of speed and reliability of the tape drives, and wondered why the engineers couldn't do something about it. My roommate stared at me with a look of total exasperation. "Boy, you guys in sales are all the same," he said. "You remind me of the farmer in 1850. If you asked him what he wanted, he would say he wanted a horse that was half as big and ate half as many oats and was twice as strong. And there would be no discussion of a tractor."

David Kearns, former CEO of Xerox

Thursday, July 17, 2008

Ashton's Law: Quote of the Week

Alan Ashton is the man behind WordPerfect.

Ashton’s Law: Whenever someone tries to do something for you, they usually end up doing it to you.

Alan Ashton, 1974

Bruce Webster actually published the quote in his Remembering Ashton's Law post which gives a better understanding of what it really means...

Tuesday, July 8, 2008

For No Additional Cost: Quote of the Week

It's no secret that I love Peopleware.  Here's a little gem from it.  If you haven't read the book, I highly recommend it.

In most of the office space we encounter today, there is enough noise and interruption to make any serious thinking virtually impossible. More is the shame: Your people bring their brains with them every morning. They could put them to work for you at no additional cost if only there were a small measure of peace and quiet in the workplace.

Tom DeMarco and Timothy Lister in Peopleware (p 67-8)

The Perfect Job: The Company

Is there such a thing as the "perfect job"?  I sometimes wonder what that might look like... and a result of those daydreams I've come up with three main components necessary for the "perfect job".  I see these three as all necessary, like three legs of a stool.  That stool is not very comfortable if not at the proper height and the legs are not properly balanced.

The first component is the company itself that the job is at.  This includes a wide range of issues from the company in general down to the development department and the specific team that you're working with.

Things like pay, benefits and culture (including the company's attitude towards developers) are all pieces of the puzzle at the company level.  If the company values developers there are a few ways that this is manifest. 

  • All the developers have boxes that have been recently upgraded.  Nobody complains about how long it takes to do stuff on their machine because they all know that they have the best hardware available or at least what is necessary to get the job done.
  • All the developers have the tools that they need and/or want including add-ons for your development environment (in my case VS2008) and licenses for utility programs to help automate tasks.  (I'll do the obligatory tool list at some point... 'til then there is Hanselman's crazy long list).
  • Training materials and opportunities are abundant and current.  This can manifest itself in different ways.  Some send all or a subset of their devs to conferences or other outside training.  Some shops buy books or study them as a group.  A good sign is a shop that has well stocked (and not dusty) bookshelves in each developer's work area and more importantly some of those books out, open and in use.
  • Men much smarter than I have noted that if a developer is worried about the size of his paycheck then one of two things is happening.  Either he's severely underpaid or there's something else wrong and therefore the issue is "I'm not going to put up with this unless I get more money" which means other issues need to be addressed... fast.  So pay needs to be fair, hopefully above "average" and increasing based on performance.  Remember to consider all parts of compensation (salary, bonuses, health benefits, retirement, etc).

Overall, employees are valued.  From that post, Gordon Bethune is quoted as saying of Herbert Kelleher (founder of Southwest Airlines):

“He recognized that good employee relations would affect the bottom line. He knew that having employees who wanted to do a good job would drive revenue and lower costs."

If you didn't read the post yet, go read it... I mean it!

Another way that companies show that they value their employees is through attention to "hygiene" issues.  These are generally issues such as:

  • Enough workspace.  This includes floor space (I think private is the way to go even though the industry seems to be moving towards open space... either way, not being crowded is important) and desk space.
  • Areas for teams to meet.  This might be ample conference room space, big enough offices to accommodate groups or open common area.
  • Quiet... minimal disruptive interruptions.

There's more that can be found in the classic Peopleware.  I'm sure that at some point I'll have to write a post just on workplace hygiene issues...

At the department and team level, you can tell that the culture is healthy for developers in a couple ways...

  • Strong technical leadership is critical.  This might be coming from an individual or a group, but regardless, there needs to be strong sense of expertise on technical issues in the department or team.  There should also be a sense that management recognizes the technical leaders as valuable.
  • Related to the previous item is the fact that the status quo should never be good enough.  Constant improvement should be part of the culture. That improvement should come from the top but should primarily come through organic efforts and supported by management.
  • Good practices abound, including a good score on the now famous Joel Test.
  • Developers feel like "part of a team" and take ownership, both individual and collective, of their code.

All these issues are rooted in company culture and are, unfortunately, hard to change.  I'll post later about what you can do to help your company improve if they're lacking but in the mean time, take an inventory of where your current company is at and what you think they (and you) can do better.

Stay tuned for the other two legs.

Tuesday, July 1, 2008

Simplicity: Quote of the Week

Here's a little gem from Anders Hejlsberg:

When you take something incredibly complex and try to wrap it in something simpler, you often just shroud the complexity. You don't actually design a truly simple system. And in some ways you make it even more complex, because now the user has to understand what was omitted that they might sometimes need. That's simplexity. So to me, simplicity has to be true, in the sense that the further down you go the simpler it gets. It shouldn't get more complicated as you delve down.

Anders Hejlsberg

Original design by andrastudio
Blogger port by Blogger Templates