Pete On Software

RSS Feed

Archive for 'Book Reviews'

Contented Cows

Contented Cows Give Better Milk
I got the paperback version of Contented Cows Give Better Milk 8 or 9 years ago when I was working for a large financial institution. It was popular at the time to buy these by the crate and give them to anyone who was responsible for people. So, I did like any responsible employee… and finally got around to reading it this week. Better late than never, right? I want to warn you that this post is going to run a little long because I’m going to include several quotes from the book after I share some general thoughts and before I conclude.

I’m not much of a “business book” guy. In my experience, too often these books are “educationally low fat” and more about stuff that just about everyone already knows. Even this book draws some conclusions that I had already reached, however I know that I’ve worked for many employers that still don’t “get it”. In my opinion, this books deserves the reputation it gained and I think if more employers followed its guidelines, the average worker would be considerably better off. It covers topics like employee hiring and retention, productivity, corporate reputation, and enabling employees to do something great. Let me let the authors speak for themselves. (My thoughts or interjections are in bold italic)

On Hiring

“Contrary to popular belief, there really is an ample supply of conscientious, hardworking, capable, honest people.”  “You can (and must) find others like them.  You’ve got to expend a little effort doing it because ‘eagles don’t flock,’ but they are out there.” – p.37
(I love this quote, especially the notion that “eagles don’t flock”)

On Training

“We have an earnings problem, so we’re going to work out way out of it by ‘dumbing down’ the organization with less skilled, less competent people! Now the only problem will be to find dumb customers to purchase our goods and services and even dumber investors to buy our stock!” – p.154

In talking about an organization’s fading training program for air traffic controllers…
“At some point this practice was amended in favor of a train-to-proficiency approach, and the end result is now that nobody ever gets sent home or, as our friend Alex Nicholas calls it, de-selected.  Instead, you wind up with a situation where people who would have washed out under the old system are still in training and on the job years later, and every day must have their work carefully overseen by an experienced controller.  A competent employee ends up babysitting an inept one, making them both, at best, marginally productive; and both are making the same money!” – pp. 160-161
How many of you have l i v e d this?

“Why is it that no one ever ‘flunks’ a corporate training program?” – p.165

On Corporate Policies

“If you believe that most people who come to work for you are lazy, stupid, untrustworthy, inept, and just downright contrary, that assumption can’t help but show up in the way you run your business.  You’ll have all kinds of rules and regulations designed for numbskulls who couldn’t pour milk out of a boot with the directions printed on the heel.  You’ll no doubt have a supervisor for every six or seven folks, and will inevitably attract just the kind of people who will live down to your assumptions.” – p.35

Talking about how companies make mistakes and how policies can ruin a company:
“We do it through policies that are just plain dumb; systems that treat intelligent people like they’re complete morons; and cultures which ensue that no mistake goes unpunished.” – p.168

“In their private lives outside of work, your employees are heads of families, civic leaders, army reserve officers, mortgage holders, and a host of other things.  Day in and day out they somehow manage to feed themselves and their families, pay their bills on time, stay out of jail, and behave normally by most reasonable standards.  In short, they tend to be rather competent individuals with a clear picture of the difference between right and wrong.  Why then, when at work, must they face a continual barrage of not-so-subtle signs of our mistrust in them as individuals?” – p.183

“If you’re unwilling to give credence to the employer/employee covenant by taking this important step, then by all means save your time, money, and breath.  Go out and hire dummies whenever your company has a job vacancy, pay them as little as possible, and don’t even think about training them–just hire a supervisor to stand guard over every two to three people.” – p.192
Wow… I know some places where this is basically the policy!

“There was no correlation between the reviews and terminations.”  Only three out of 986 people let go for poor performance received poor ratings on their prior review.  “Incredibly, roughly two-thirds of these same people had also received merit increases in the six months preceding their termination!” – p.101 

On Reputation

“Organizations which don’t measure up tend to be viewed as an employer of last resort; nobody with any brains, ability, or motivation wants to work there!  When this occurs, only two things can happen.  Either the organization is forced to pay market-premium wages and salaries in an attempt to secure better applicants, or it must accept the lower quality applicants, or do both” – p. 25

“We submit that inordinately high wages, salaries, and unwarranted benefits not only aren’t the answer, they are often a large part of the problem.  Moreover, they are often used as a counter-balance or way of compensating for serious deficiencies elsewhere in the organization.” – p.93

My Conclusion

Certainly not every developer is going to have an opportunity during their career to define many of these policies at their organization. However, with that said, we should not also have our heads in the sand when it comes to business. We should also remember that a strong majority of us are not paid to make software for software’s sake. We are paid to solve a business problem. These principles can help us find good solid companies to work for as well as making sure that we do our part to make the company great while we are there via the software that we write.

Pro CSS Techniques

Pro CSS TechniquesAPress is far and away my favorite tech book publisher. You’ll probably hear (read) my say that over and over again. When I need to learn a new technology or just get better at an old one, I always look to see what APress has in their stable before venturing out anywhere else.

I’ve used CSS like the next guy. I started off just adding an in-line style or two. Then, I learned about external .css files. Then, I discovered the CSS Zen Garden and realized that I didn’t know anything. However, I still just muddled along, piecing together what I could, trying my best to separate structure from layout.

There are several good resources online to learn about CSS syntax and a few “best practices”, but nothing as comprehensive as this book. Pro CSS Techniques takes you from the base syntax of CSS to tons of nuances included in the latest version (CSS 3 as of the writing of the book, I believe). Also included are tons of “gotchas” for dealing with browser compatibility in a very pragmatic way. I would venture to say that many developers do not inherently follow the advice in this book and struggle mightily for it.

Pro CSS Techniques also includes tons of “real world”-type examples so that you can see how to put this in action. The code examples are also built in such a way so that you do work one way, find out why that doesn’t work, then correct it. I find that more helpful than just showing only 100% correct code and giving a passing explanation as to why other ways aren’t correct.

If you want to become a better web developer, want to learn more about CSS, and you aren’t Eric Meyer or one of the authors of this book, I recommend you pick it up.

High Performance Web Sites

High Performance Web SitesI’m starting to get involved in this book, High Performance Web Sites by Steve Souders. My boss picked it up and read it and had really good things to say. Then the CEO read it and was really geeked about it. So, I decided that I’d better give it more than the cursory glance that I’d previously allotted it. I know that there is a lot of push to write one’s server code to run as quickly as possible, but I feel that the subjects that this book is covering are being largely overlooked.

Mr. Souders wrote the book while he was a Yahoo employee (he works at Google as of January 7th). He is also the creator of YSlow and an expert in web performance. However, you can actually get a lot of the tips if you check out this page and install YSlow onto your machine. YSlow is an addon for Firebug, itself a plugin for Firefox. If you are doing web development, you should already know about Firebug. If you don’t, run – don’t walk – to download it and you can thank me later.

When you run YSlow, it analyzes the current page for each of the 13 points that the Yahoo Developer Network has identified as major causes of web site slowness. It assigns you a grade to each item and gives the site an overall score. For instance, this blog scores a D (65). According to YSlow, I need to add an expires header, use GZip compression, and configure ETags in order to get this site up to par. As an experiment, I may very well dig into trying to get my score up to at *least* a B! If you aren’t sure what these points mean or what I’m talking about, you should check out the links above or get the book.

The book is very well written and is grouped in such a way so that it can be digested separately by different members of a team or by one person. The appendices of the book contain case studies of several major sites using the tools I discussed above and explains what each could do to improve user experience. At $20.00 on Amazon (and used from $11 and change), every web developer really should read this book, implement it, and keep it as a reference for future development.