Brian Bailey Preface to the Revised Edition

The Developer Code

Here are two very good interviews with leaders of small development companies.

The Building of Basecamp

O'Reilly interviews Jason Fried, who you are surely way too familiar with at this point. There is a lot of valuable information here, and some unique perspectives that challenge conventional wisdom.

On why they built Basecamp:

Projects don't fail from a lack of charts, graphs, tables, reports, stats, spreadsheets, and so on. Projects fail from a lack of simple two-way communication.

On choosing development platforms:

The way I look at it is this: I want developers to be comfortable with their development environment. I'm a designer and a business guy, not a developer. I'm not going to push PHP or Java or whatever just because I've heard of it. I'm going to defer to David on this. And if David chooses Ruby, then Ruby it is. It's all a matter of trust. If you don't trust your developer to choose the right environment, then how can you trust him to build the best application? Trust is critical here. And, further, why would you dare impact your developer's morale by throwing him or her into a language where he can't be as productive or as satisfied? You only get good work from people who enjoy doing the work. I'll take a happy average programmer over a disgruntled, frustrated master programmer any day.

Inside Ranchero with Brent and Sheila Simmons

A lengthy interview with the team that brings us NetNewsWire, including a few quotes I love:

"We grow software."

"I think a big part of being successful is having fun doing the work, but not expecting this to mean it will always be easy."

On the secret for successful software development:

There is no golden ticket. You need strong programming and communication skills, an adult, professional outlook, and the ability to see reality rather than ideology [emphasis added].

The closest thing to a golden ticket is empathy. Designing software requires empathy, and so does writing your website and the documentation and, most importantly, communicating with the people who use your software.

Empathy is a skill. You may be naturally empathic, but it's still a skill you have to improve every day.

This is a fantastic perspective, and one their software clearly reflects.