software development

open source

Procrastination and the Bikeshed Effect

The book Producing Open Source Software: How to Run a Successful Free Software Project is a fantastic reference for anyone involved in a software project – whether you’re running the show or not. In addition to the dead-tree edition, the book is available in an appropriately open source free format

By Jeff Atwood ·
Comments

software development

Paying Down Your Technical Debt

Every software project I’ve ever worked on has accrued technical debt over time: Technical Debt is a wonderful metaphor developed by Ward Cunningham to help us think about this problem. In this metaphor, doing things the quick and dirty way sets us up with a technical debt, which is

By Jeff Atwood ·
Comments

software development

Are You An Expert?

[turns to fire commissioner] What do we got here, Kappy? Fire started, 81st floor, storage room. It’s bad. Smoke’s so thick, we can’t tell how far it’s spread. Exhaust system? Should’ve reversed automatically. It must be a motor burnout. Sprinklers? They’re not working on

By Jeff Atwood ·
Comments

design patterns

Real Ultimate Programming Power

A common response to The Ferengi Programmer: From what I can see, the problem of “overly-rule-bound developers” is nowhere near the magnitude of the problem of “developers who don’t really have a clue.” The majority of developers do not suffer from too much design patterns, or too much SOLID,

By Jeff Atwood ·
Comments

design patterns

Don’t Reinvent The Wheel, Unless You Plan on Learning More About Wheels

The introduction to Head First Design Patterns exhorts us not to reinvent the wheel: You’re not alone. At any given moment, somewhere in the world someone struggles with the same software design problems you have. You know you don’t want to reinvent the wheel (or worse, a flat

By Jeff Atwood ·
Comments

keyboard

Have Keyboard, Will Program

My beloved Microsoft Natural Keyboard 4000 has succumbed to the relentless pounding of my fingers. A moment of silence, please. OK, it still works, technically, but certain keys have become... unreliable. In particular, the semicolon key is now infuriatingly difficult to use. I don’t know if this is God’

By Jeff Atwood ·
Comments

strings

The Sad Tragedy of Micro-Optimization Theater

I’ll just come right out and say it: I love strings. As far as I’m concerned, there isn’t a problem that I can’t solve with a string and perhaps a regular expression or two. But maybe that’s just my lack of math skills talking. In

By Jeff Atwood ·
Comments

microsoft

The Ultimate Dogfooding Story

In software circles, dogfooding refers to the practice of using your own products. It was apparently popularized by Microsoft: The idea originated in television commercials for Alpo brand dog food; actor Lorne Greene would tout the benefits of the dog food, and then would say it’s so good that

By Jeff Atwood ·
Comments

programming languages

A Scripter at Heart

What’s the difference between a programming language and a scripting language? Is there even a difference at all? Larry Wall’s epic Programming is Hard, Let’s Go Scripting attempts to survey the scripting landscape and identify commonalities. When you go out to so-called primitive tribes and analyze their

By Jeff Atwood ·
Comments

ui design

If You Don’t Change the UI, Nobody Notices

I saw a screenshot a few days ago that made me think Windows 7 Beta might actually be worth checking out. That’s right, Microsoft finally improved the calculator app! We’ve been complaining for years that Microsoft ships new operating systems with the same boring old default applets the

By Jeff Atwood ·
Comments

programming languages

Overnight Success: It Takes Years

Paul Buchheit, the original lead developer of Gmail, notes that the success of Gmail was a long time in coming: We starting working on Gmail in August 2001. For a long time, almost everyone disliked it. Some people used it anyway because of the search, but they had endless complaints.

By Jeff Atwood ·
Comments

management

Are You Creating Micromanagement Zombies?

Do you manage other programmers, in any capacity? Then take Kathy Sierra’s quiz: 1. Do you pride yourself on being “on top of” the projects or your direct reports? Do you have a solid grasp of the details of every project? 2. Do you believe that you could perform

By Jeff Atwood ·
Comments