Software Craftsmen

Among my coding friends, we've been struggling with the term "software engineering" for some time. The term just doesn't seem to fit. Here's our major stumbling point:
In engineering, the functional requirements are translated into complete technical specifications well before construction starts.
In software development, the work starts when you have the functional requirements, and the final completed product is the *only* accurate technical specification.
Great engineers are intentional and highly disciplined. Ask for a bridge? You get a rock solid, efficiently constructed bridge. Because engineering has all kinds of specifications, laws and codified knowledge, anything "engineered" by definition meets prescribed levels of safety, fault tolerance and reliability. For the right kinds of projects, those are very desirable characteristics (bridges, for example).

Great software developers are craftsmen. Their knowledge isn't regulated by regulations or ethos statements, and their textbooks really only teach syntax. Most of what they know is tacit and hard to learn. Their real value is in their ability to take basic requirements and incrementally build (with agile feedback) the Best Version of What You Actually Needed.

Great developers are few and far between, and they're the single most powerful positive force in any development project. They're expensive, and they should be - building the Right Thing (and often in fewer iterations) is really, really valuable.

Find them and get them on the bus.

The End of the Realtime Experiment

About two months ago, I redesigned this site as a stream of all my internet interactions across the different social media services; Twitter, FriendFeed, Disqus, etc. I fully immersed myself in the realtime web, and spent a lot of time learning to swim. It's still available here.

I've changed this site back because I've come to some conclusions about the realtime web:
  1. It's a great tool for companies to connect with certain segments of their customer base. Those customers may not be necessarily broadly representative, but they are vocal and reasonably clear about what they want.
  2. For the rest of us, its signal-to-noise ratio makes it entertainment. (Like cable news programs, it's entertainment disguised as useful information.)
Creating meaningful value requires thought and contemplation. Those things take time, and realtime media just doesn't allow for enough of it. I'm finding the yield is way better if I just read the really good daily (or weekly) blogs, the comments of great online communities, and skim a few high-volume aggregation sites. And then spend time thinking about what I've read!

After all, technology may be accelerating our ability to communicate, but our broken hardware only runs so fast.