technical practices

error codes

Error Codes Must Die

A recent Scott Hanselman post [http://www.hanselman.com/blog/WindowsDefenderErrors0x8024402c0x80240022And1609.aspx] described a problem he had with Windows Defender [http://www.microsoft.com/athome/security/spyware/software/default.mspx]: > Defender was unable to update my signatures, instead throwing a COM-ish 0x8024402c. Others are getting Error 1609 and still

By Jeff Atwood ·
Comments

acronyms

Don't Acronymize Your Users

As a commenter noted in my previous post on how not to give a presentation, I have another complaint about software development presentations that I didn't list. They're chock full of meaningless acronyms. SOAP, BI, SOA, RDBMS, SGML, CRUD, RMS, RDBMS, XML, ORM, FAQ. I appreciate

By Jeff Atwood ·
Comments

usability

Google is the Help Menu

Jensen Harris recently cited some Microsoft Office usability research which produced a rather counter-intuitive result [http://blogs.msdn.com/jensenh/archive/2005/11/29/497861.aspx]: > One of the most interesting epiphanies I've had over the last few years seems on the surface like a paradox: "

By Jeff Atwood ·
Comments

programming languages

Dependency Avoidance

Have you ever worked with developers that were charter members of the third-party-control-of-the-month club? You know the kind-- they never met a third party control they didn't like. They spend all day trolling downloads and experimenting with every tool listed on The Daily Grind. Which means deploying your

By Jeff Atwood ·
Comments

software development concepts

Seven Habits of Highly Effective Programmers

Philip Chu's Seven Habits of Highly Effective Programmers [http://www.technicat.com/writing/programming.html] is witty, eloquent, and peppered with illustrative real world anecdotes: > Upon joining an early-stage startup called Neomar, I found myself in two months of design meetings for a wireless internet portal that

By Jeff Atwood ·
Comments

case sensitivity

The Case For Case Insensitivity

One of the most pernicious problems with C-based languages is that they're case-sensitive. While this decision may have made sense in 1972 when the language was created [http://cm.bell-labs.com/cm/cs/who/dmr/chist.html], one wonders why the sins of Kernighan and Ritchie [http://cm.

By Jeff Atwood ·
Comments

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 [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemComponentModelIBindingListClassAddIndexTopic.asp] , for example: Scott Swigart calls this undocumentation, and elaborates further

By Jeff Atwood ·
Comments

programming languages

Conversations with Erich Gamma

Artima has another great interview series, this time with Erich Gamma. You know, Erich Gamma: Gang of Four, JUnit, Eclipse. As you might expect from such a notable developer, it's full of great advice. Like this section on avoiding frameworkitis: Frameworkitis is the disease that a framework wants

By Jeff Atwood ·
Comments

programming languages

Software Apprenticeship

In Software Training Sucks: Why We Need to Roll it Back 1,000 Years [http://www.softwarebyrob.com/2005/11/15/software-training-sucks-roll-it-back/], Rob Walling makes a compelling argument for abandoning traditional training classes in favor of apprenticeships: > [Why not] use the time-tested approach of trades that have been doing

By Jeff Atwood ·
Comments

software development concepts

In Defense of Verbosity

During the fantastic Monad [http://www.microsoft.com/downloads/details.aspx?FamilyID=2AC59B30-5A44-4782-B0B7-79FE2EFD1280&displaylang=en] session at PDC 2005*, Jeffrey Snover and Jim Truher illustrated the tradeoff between verbosity and conciseness: cp c:apples c:oranges -fo -r copy-item c:apples c:oranges -force -recurse Monad has a ton

By Jeff Atwood ·
Comments

lazy programming

How to be Lazy, Dumb, and Successful

Philipp Lenssen agrees that inspired laziness is a desirable trait for software developers: .. only lazy programmers will want to write the kind of tools that might replace them in the end. Only a lazy programmer will avoid writing monotonous, repetitive code. The tools and processes inspired by laziness speed up

By Jeff Atwood ·
Comments

software development concepts

Does Having The Best Programmers Really Matter?

Joel has a lengthy entry in which he asks, does having the "best programmers" really matter? This is something I've talked about before: extreme skill disparity is unique to the profession of software development. The odds of working with a genius or a jackass on any

By Jeff Atwood ·
Comments