code quality

programming languages

Buy Bad Code Offsets Today!

Let's face it: we all write bad code. But not every programmer does something about the bad code they're polluting the world with, day in and day out. There's a whole universe of possibilities: * Follow the instructions on the paint can * Become a software

By Jeff Atwood ·
Comments

programming languages

Whitespace: The Silent Killer

Ever have one of those days where everything you check into source control is wrong? Also, how exactly is that day is different from any other? But seriously. Code that is visible is code that can be wrong. No surprise there. But did you know that even the code you

By Jeff Atwood ·
Comments

software development concepts

Who Wrote This Crap?

Does this sound familiar? > your program (n): a maze of non-sequiturs littered with clever-clever tricks and irrelevant comments. Compare MY PROGRAM.my program (n): a gem of algorithmic precision, offering the most sublime balance between compact, efficient coding on the one hand, and fully commented legibility for posterity on

By Jeff Atwood ·
Comments

programming languages

I'd Consider That Harmful, Too

One of the seminal papers in computer science is Edsger Dijkstra's 1968 paper GOTO Considered Harmful. For a number of years I have been familiar with the observation that the quality of programmers is a decreasing function of the density of go to statements in the programs they

By Jeff Atwood ·
Comments

code quality

Code Smaller

Unless you've been living under a rock for the last few years, you've probably heard about the game Katamari Damacy. The gameplay consists of little more than rolling stuff up into an ever-increasing ball of stuff. That's literally all you do. You start by

By Jeff Atwood ·
Comments

programming languages

What did you write five years ago?

Here's an excellent bit of halloween advice from Mike Gunderloy: go read some source code you wrote five years ago for a real scare. It's a good idea to go occasionally back to the well and get a sense of your progress as a so-called professional

By Jeff Atwood ·
Comments

code quality

Code Elegance, Code Balance

I've been reading a great book of interviews with programmers circa 1989. One of the most fascinating interviews is with Wayne Ratliff, the author of dBase. Wayne's description of balance in programming really resonated with me: Interviewer: Can you elaborate on this feeling for balance and

By Jeff Atwood ·
Comments

software development

Code Reviews: Just Do It

In Humanizing Peer Reviews [http://www.processimpact.com/articles/humanizing_reviews.html], Karl Wiegers starts with a powerful pronouncement: > Peer review – an activity in which people other than the author of a software deliverable examine it for defects and improvement opportunities – is one of the most powerful software quality

By Jeff Atwood ·
Comments

software development concepts

Following the Instructions on the Paint Can

I was chatting on the phone with a friend of mine a few days ago, and he described a project he recently inherited. It was the work of a half-dozen different developers, who each built their parts of the project in a completely different way with little to no communication

By Jeff Atwood ·
Comments

software development concepts

Don’t Be Afraid to Break Stuff

One warning sign I look for when working with other developers is fear of breaking the code. The absolute worst systems I’ve worked on are the ones where the developers practically tiptoe around the source code. The main problem with fear of breaking the code is the implicit assumption

By Jeff Atwood ·
Comments

software development concepts

We Are Morons: a quick look at the Win2k source

Thanks to my friend Geoff Dalgas for pointing out this interesting article at kuro5hin.org, which analyzes the comments inside the recently leaked Microsoft Windows NT/2k code. Very amusing, with some surprising insights into the mindset of the coders working at Microsoft: In the struggle to meet deadlines, I

By Jeff Atwood ·
Comments