software development

software development

Code Reviews: Just Do It

In Humanizing Peer Reviews, 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 tools available. Peer review methods include inspections, walkthroughs, peer

By Jeff Atwood ·
Comments
Regex Performance

regex

Regex Performance

I was intrigued by a recent comment from a Microsoft Hotmail developer on the pitfalls they’ve run into while upgrading Hotmail to .NET 2.0: Regular Expressions can be very expensive. Certain (unintended and intended) strings may cause RegExes to exhibit exponential behavior. We’ve taken several hotfixes for

By Jeff Atwood ·
Comments
The Zen of Mustard and Pickles

software development

The Zen of Mustard and Pickles

A co-worker and I went over to Scott’s house today at around 1pm PST to pick something up for work. Scott just got a new television, so he demoed it for us, flipping through the channels, comparing HD signals to regular signals and so forth. As we were doing

By Jeff Atwood ·
Comments

software development

New Year’s Resolutions – for Microsoft

For better or worse, I’ve been a Microsoft fan since Windows 3.1. Microsoft is far from perfect, but the alternatives were always so much worse. Can you imagine a dystopian future where we’re all running IBM’s OS/2 2004 and Lotus Notes Express? Brr. I get

By Jeff Atwood ·
Comments
UI Follies, Volume III

ui/ux design

UI Follies, Volume III

Ever wonder how you could possibly find something in that complex, ten-tabbed options dialog? How about a search function on the options dialog, as featured in Quest’s Toad for SQL Server: Aside from the fact that it’s completely insane to build an options dialog so complicated that it

By Jeff Atwood ·
Comments

.net

A Stopwatch Class for .NET 1.1

The first rule of performance testing is to measure, then measure again, then measure one more time just to be sure. NET 2.0 adds a handy Diagnostics.Stopwatch which is perfect for this kind of ad-hoc precision timing. A year ago I created a Stopwatch class which was eerily

By Jeff Atwood ·
Comments

programming practices

Why Programmers File the Worst Bug Reports

Who files better bugs? Users or developers? In How to Report Bugs Effectively, Simon Tatham notes that software developers, contrary to what you might think, file some of the worst bug reports: It isn’t only non-programmers who produce bad bug reports. Some of the worst bug reports I’ve

By Jeff Atwood ·
Comments
In praise of Beyond Compare

software development

In praise of Beyond Compare

It’s a shame that Beyond Compare isn’t listed in more “favorite tool” lists. This amazing little folder and file differencing tool has earned its spot in my core toolset a dozen times over. Here’s a screenshot of it in action: I’ve mentioned Beyond Compare before, but

By Jeff Atwood ·
Comments

specifications

Dysfunctional Specifications

The guys at 37signals think functional specs are worthless: Don’t write a functional specifications document. Why? Well, there’s nothing functional about a functional specifications document. Functional specifications documents lead to an illusion of agreement. A bunch of people agreeing on paragraphs of text is not real agreement. Everyone

By Jeff Atwood ·
Comments
The Many Faces of (Windows) Death

operating systems

The Many Faces of (Windows) Death

As I recall, the Blue Screen of Death was introduced with Windows NT 3.1 circa 1993: A blue screen of death occurs when the kernel, or a driver running in kernel mode, encounters an error from which it cannot recover. This is usually caused by a [hardware] driver that

By Jeff Atwood ·
Comments
Avoiding Undocumentation

documentation

Avoiding Undocumentation

Have you ever noticed that much of the online MSDN .NET framework help is... not helpful? Take the the MSDN help for the IBindingList.AddIndex method, for example: Scott Swigart calls this undocumentation, and elaborates further in his blog post: This is an example where quacking like a duck doesn’

By Jeff Atwood ·
Comments
My Giant Calculator

software development

My Giant Calculator

Have you ever noticed how many people keep a physical calculator next to their computer? The irony is almost palpable. My favorite is the calculator mousepad. Jef Raskin, in The Humane Interface, defends the practice of keeping a pocket calculator next to your PC: It’s true. Many of us

By Jeff Atwood ·
Comments