software development concepts

Revisiting The Facts and Fallacies of Software Engineering

software development concepts

Revisiting The Facts and Fallacies of Software Engineering

I like to re-read my favorite books every few years, so I brought Robert Glass’ seminal Facts and Fallacies of Software Engineering with me on my most recent trip. I thought it was a decent, but imperfect read when I originally bought it in 2004. As I scanned through the

By Jeff Atwood ·
Comments
Paul Graham’s Participatory Narcissism

software development concepts

Paul Graham’s Participatory Narcissism

I have tremendous respect for Paul Graham. His essays – repackaged in the book Hackers and Painters – are among the best writing I’ve found on software engineering. Not all of them are so great, of course, but the majority are well worth your time. That’s more than I can

By Jeff Atwood ·
Comments
Does More Than One Monitor Improve Productivity?

multiple monitors

Does More Than One Monitor Improve Productivity?

I’ve been a multiple monitor enthusiast since the dark days of Windows Millennium Edition. I’ve written about the manifold joys of many-monitor computing a number of times over the last four years: * Multiple Monitors and Productivity * Multiple LCDs * Joining the Prestigious Three Monitor Club * The Large Display Paradox

By Jeff Atwood ·
Comments
I Repeat: Do Not Listen to Your Users

software development concepts

I Repeat: Do Not Listen to Your Users

Paul Buchheit on listening to users: I wrote the first version of Gmail in one day. It was not very impressive. All I did was stuff my own email into the Google Groups (Usenet) indexing engine. I sent it out to a few people for feedback, and they said that

By Jeff Atwood ·
Comments
Code Isn’t Beautiful

programming languages

Code Isn’t Beautiful

I was thrilled to see the book Beautiful Code: Leading Programmers Explain How They Think show up in my Amazon recommendations. It seems like exactly the type of book I would enjoy. So of course I bought a copy. Unfortunately, Beautiful Code wasn’t nearly as enjoyable of a read

By Jeff Atwood ·
Comments
Tivoization and the GPL

user experience

Tivoization and the GPL

The original Tivo was one of the finest out of box experiences I’ve ever had as a consumer. I remember how exciting it was to tell friends about our newfound ability to pause live television, and how liberating it felt to be freed from the tyranny of television schedules.

By Jeff Atwood ·
Comments
The Ultimate Unit Test Failure

user experience

The Ultimate Unit Test Failure

We programmers are obsessive by nature. But I often get frustrated with the depth of our obsession over things like code coverage. Unit testing and code coverage are good things. But perfectly executed code coverage doesn’t mean users will use your program. Or that it’s even worth using

By Jeff Atwood ·
Comments

software development concepts

The Years of Experience Myth

I recently received an email from Andrew Stuart of the Australian firm Flat Rate Recruitment. Andrew related their technical phone screen process, which is apparently quite similar to the one outlined in Getting the Interview Phone Screen Right. I’m glad to hear it works. A proper phone screen is

By Jeff Atwood ·
Comments
Every User Lies

user experience

Every User Lies

Heidi Adkisson notes that features sell products, but the people buying those products often don’t use the very features they bought the product for in the first place. A few years ago I did an extensive in-home study observing use of a particular computer hardware peripheral. Most people had

By Jeff Atwood ·
Comments
What Can You Build in 600 Lines of Code?

ruby

What Can You Build in 600 Lines of Code?

Joseph Cooney reminds us that, in January 2005, 37signals went live with a product they built in 579 lines of code: You read that right, not 60,000 or 600,000 but instead a commercial project written in less than 600 lines of Ruby code. When I first saw this

By Jeff Atwood ·
Comments
Reinventing the Clipboard

operating systems

Reinventing the Clipboard

Over time, I’ve become something of a desktop minimalist. Sure, I’ll change a few settings to my liking, but I no longer spend a lot of time customizing my desktop configuration. I’ve learned that if the defaults aren’t reasonably close to correct out of the box,

By Jeff Atwood ·
Comments

software development concepts

How Should We Teach Computer Science?

Greg Wilson recently emailed me the following question: I’m teaching a software engineering class to third-year students at the University of Toronto starting in January, and would like to include at least one hour on deployment – [deployment] never came up in any of my classes, and it’s glossed

By Jeff Atwood ·
Comments