technical practices

programming languages

Because I love the smell of compilation in the morning

As McConnell notes in Code Complete: If you haven’t spent at least a month working on the same program – working 16 hours a day, dreaming about it during the remaining 8 hours of restless sleep, working several nights straight through truing to eliminate that “one last bug” from the

By Jeff Atwood ·
Comments

technology trends

Giving of thanks, and tech support

Next week, millions of college students and young professionals will head home for the Thanksgiving holidays. We’ll sit with our families in warm, candle-lit dining rooms eating stuffed turkey, reminiscing over old photographs, preparing holiday shopping lists and... Please. Let's be frank. We are going home to

By Jeff Atwood ·
Comments

usability

You’ll Never Have Enough Cheese

This Human Factors International presentation (ppt) references something called a Columbia Obstruction Device: I couldn’t find any actual references to the Columbia University science experiment they’re referring to, but it certainly seems plausible enough. The parallel with users and usability is natural. Either maximize the cheese (make your

By Jeff Atwood ·
Comments

stored procedures

Who Needs Stored Procedures, Anyways?

It’s intended as sarcasm, but I believe this Daily WTF entry on Stored Procedures should be taken at face value: I’m sure we’ve all heard, over and over, that inline SQL is generally a bad practice, and that we should use Stored Procedures when possible. But let&

By Jeff Atwood ·
Comments

software development concepts

We’re Building the Space Shuttle

Today’s dose of YAGNI comes from a recent Anders Hejlsberg interview: If you ask beginning programmers to write a calendar control, they often think to themselves, “Oh, I’m going to write the world’s best calendar control! It’s going to be polymorphic with respect to the kind

By Jeff Atwood ·
Comments

programming languages

A Pragmatic Quick Reference

I modified the recommended reading list to include, The Pragmatic Programmer: From Journeyman to Master. If you haven’t read the book, it includes a handy reference card that will give you a great idea of the gems covered inside. And if you have, well, it never hurts to review

By Jeff Atwood ·
Comments

software development concepts

How about an hourly build?

The benefits of a daily build are well understood by now. McConnell even cites the book Showstopper! as an extreme example circa 1993: Who can benefit from this process? Some developers protest that it is impractical to build every day because their projects are too large. But what was perhaps

By Jeff Atwood ·
Comments

software development

Defending Perpetual Intermediacy

How many things would you classify yourself as “expert” at? I drive to and from work every day, but I hardly consider myself an expert driver. I brush my teeth at least twice every day, and I’m no expert on oral care; just ask my dentist. I use Visual

By Jeff Atwood ·
Comments

programming languages

Why Your Code Sucks... and Mine Doesn’t

OK, the title is just, Why Your Code Sucks, but you know you were thinking it. The article may not be as grammatically (sp) correct as I would like, but it’s got some solid advice. My favorite is rejection of dogma: Your code sucks if it dogmatically conforms to

By Jeff Atwood ·
Comments

software development concepts

The Rise and Fall of Homo Logicus

Of all the professional hubris I’ve observed in software developers, perhaps the greatest sin of all is that we consider ourselves typical users. We use the computer obsessively, we know a lot about how it works, we even give advice to friends and relatives. We are experts. Who could

By Jeff Atwood ·
Comments

software development concepts

The Wisdom of Sells

Chris Sells is one of those rare developers who is so talented at both coding and communicating that everything he writes is worth reading. How I wish this was more common! If you haven’t already, read through his archived Spout posts; there’s some really great stuff in those

By Jeff Atwood ·
Comments

software development

Development is Inherently Wicked

Horst Rittel and Melvin Webber defined a “wicked” problem as one that could be clearly defined only by solving it, or by solving part of it. This paradox implies, essentially, that you have to “solve” the problem once in order to clearly define it and then solve it again to

By Jeff Atwood ·
Comments