Saturday, July 28, 2007

Book Review: Trout on Strategy

From the same author that helped bring us the classic “The 22 Immutable Laws of Marketing”, Jack Trout provides another amazing book, this time focusing on strategy. As he puts it:


“It's all about having the right strategy. That's because strategy sets the competitive direction, strategy dictates product planning, strategy tells you how to communicate internally and externally, strategy tells you on what to focus.”


Wednesday, July 18, 2007

Book Review: Peopleware


This book is simply a classic and demonstrates that most software development issues are people issues, not technical issues. I should of read this book years ago.


It is the one thing every software manager needs to read . . . not just once, but once a year.”

--Joel Spolsky





It's easier to manage technological issues than it is to manage sociological issues.


Getting a new disk drive installed is positively trivial compared to figuring out why Horace is in a blue funk or why Susan is dissatisfied with the company after on a few months. Human interactions are complicated and never very crisp and clean in their effects, but they matter more than any other aspect of the work.”


Personally, I'd much rather help someone work through a tough algorithm than help them deal with their personal issues. The reality is that over the last seven years of managing developers I have come to realize that personal issues come up as often, if not more often than any technological challenges. This is very much the same topic covered in “First, Break All the Rules.” Care about your people and their personal issues. Help them where you can, but most importantly, just listen. It's just as important as helping them with the technological challenges they face.


Some Great Quotes From The Book:

  • There Ain't No Such Thing as Overtime

  • People under pressure don't work better; they just work faster.

  • A policy of “Quality - If Time Permits” will assure that no quality at all sneaks into the project.

  • The manager's function is not to make people work, but to make it possible for people to work.

  • It's not the quantity of hours that are important, it's the quality. (paraphrased a bit)

  • The final outcome of any effort is more of a function of who does the work than how the work is done.

  • Get the right people, make them so happy they won't want to leave, turn them loose.

  • Sociology matters more than technology or even money. It's suppose to be productive, satisfying fun to work.

  • Process improvement programs don't work because they entice the play-it-safe behavior of low-risk, and therefore low-benefit, projects. (paraphrased a bit)

  • Companies of knowledge-workers have to realize that it is their investment in human capital that matters most.

  • A real working meeting is called when there is a real reason for all the people invited to think through some matter.

  • And my personal favorite: The ultimate management sin is wasting people's time.


Office Space

The second part of the book focuses on office space:

  • Quiet work environments = More Productivity = Higher Quality

  • More square feet per worker = More Productivity = Higher Quality

  • Stealth Development Offices are Great

  • Walls and doors are good things.

  • Appearance is not important, functionality is important.

If you manage software developers, you need to read this book.

Monday, July 16, 2007

MySQL Proxy

I stumbled upon MySQL Proxy today. It's in Alpha stages right now, but it looks like it's going to be great. Thanks to the keepalived project we have been able to load balance and fail over MySQL read queries for a long time now.

But this software has some cool new features:
  • Query Analysis
  • Query Filtering
  • Query Modification
And they've even built in support for the Lua language. I first heard of Lua from Lighty and I'm even more fascinated now that MySQL Proxy has support for it too. Basically, you can add hooks at any of these stages:

  • connect_server
  • read_query
  • read_query_result
to modify, rewrite, track, or do practically anything you want. Awesome stuff. Here are some example scripts.

Wednesday, July 11, 2007

'watch' Linux Command

Today I learned a new Linux command called 'watch'. watch repeatedly runs a command at a specified interval, showing the output of the command in full screen. The '-d' option is nice because it will highlight differences between each run. Looks like this little command was written in 1991 and updated in 1999.


watch -n 2 uptime