software development

Object-Relational Mapping is the Vietnam of Computer Science

orm

Object-Relational Mapping is the Vietnam of Computer Science

I had an opportunity to meet Ted Neward at TechEd this year. Ted, among other things, famously coined the phrase “Object-Relational mapping is the Vietnam of our industy” in late 2004. It’s a scary analogy, but an apt one. I’ve seen developers struggle for years with the huge

By Jeff Atwood ·
Comments

software development

How Long Would It Take if Everything Went Wrong?

I’m currently reading Steve McConnell’s new book, Software Estimation: Demystifying the Black Art. The section on individual expert judgment provided one simple reason why my estimates are often so horribly wrong: If you ask a developer to estimate a set of features, the developer will often come back

By Jeff Atwood ·
Comments
The Noble Art of Maintenance Programming

software maintenance

The Noble Art of Maintenance Programming

Mention the words “maintenance programming” to a group of developers and they’ll, to a man (or woman), recoil in horror. Maintenance programming is widely viewed as janitorial work. But maybe that’s an unfair characterization. In Software Conflict 2.0: The Art and Science of Software Engineering, Robert L.

By Jeff Atwood ·
Comments
Programming Your Hands

health

Programming Your Hands

Software developers, like pianists, rely on their hands to practice their craft. I’ve used a keyboard and mouse obsessively since my early teens. Fortunately, I have never had any problems with hand or wrist pain – nor have I experienced any Repetitive Stress Injury, which includes carpal tunnel syndrome. But

By Jeff Atwood ·
Comments
Don’t Ask Us Questions. We’ll Just Ignore You.

communication

Don’t Ask Us Questions. We’ll Just Ignore You.

One of the funniest things on the internet, for my money, is Eric S. Raymond’s epic FAQ, How To Ask Questions The Smart Way. It’s 32 pages, 1,066 paragraphs, 10,289 words, and 51,757 characters. That you must read before you ask a technical question of

By Jeff Atwood ·
Comments

management practices

Peopleware Revisited

Kevin Kelly’s Cool Tools list just selected a book from my recommended reading list. And it’s one of my favorites, too. It’s that perennial evergreen of project management, Peopleware: Hard-won wisdom fills this small book: How to create a team, place, or company that is productive. First

By Jeff Atwood ·
Comments
Programmers and Chefs

programming practices

Programmers and Chefs

From an audio interview with Ron Jeffries: The reason the kitchen is a mess is not because the kitchen is poorly designed, it’s because we didn’t do the dishes after every meal. Michael Feathers recently wrote an eerily similar entry about the professional chef’s concept of working

By Jeff Atwood ·
Comments
Snappy Answers to Stupid Programming Questions

interview questions

Snappy Answers to Stupid Programming Questions

Here’s a not-so-gentle reminder from David Pickett that some programming interview questions – in this case, “how would you write a routine to copy a file?” – are, well, stupid:* Q. What about the attributes? A. Make the attributes the same. Q. Should I modify the attributes of the source file?

By Jeff Atwood ·
Comments

software development

The Long, Dismal History of Software Project Failure

From the IEEE article Why Software Fails: Last October, for instance, the giant British food retailer J Sainsbury had to write off its US $526 million investment in an automated supply-chain management system. Merchandise was stuck in the company’s depots and warehouses and was not getting through to many

By Jeff Atwood ·
Comments
Why Do We Have So Many Screwdrivers?

software development

Why Do We Have So Many Screwdrivers?

Jon Raynor added this comment to my previous post about keeping up with the pace of change in software development: The IT field is basically a quagmire. It’s better to accept that fact right away or move on to a different field. I guess someday I wish for Utopia

By Jeff Atwood ·
Comments
UML, Circuit Diagrams, and God’s Rules

software development

UML, Circuit Diagrams, and God’s Rules

Very few software engineers use UML symbols to design software, but electrical engineers regularly use circuit symbols to design electronics: Circuit symbols are constructed into circuit diagrams – the the visual language of electricity: If circuit diagrams are a standard, universally understood way to talk about electronics, why doesn’t UML

By Jeff Atwood ·
Comments
Best Practices and Puffer Fish

best practices

Best Practices and Puffer Fish

James Bach’s seminal rant, No Best Practices, is a great reality check for architecture astronaut rhetoric. It’s worth revisiting even if you’ve read it before. Some might say Bach’s viewpoint is pessimistic, even cynical: The way to get rich in this world is mainly by making

By Jeff Atwood ·
Comments