software development practices

programming languages

Learn to Read the Source, Luke

In the calculus of communication, writing coherent paragraphs that your fellow human beings can comprehend and understand is far more difficult than tapping out a few lines of software code that the interpreter or compiler won't barf on. That's why, when it comes to code, all

By Jeff Atwood ·
Comments

security

The Bathroom Wall of Code

In Why Isn't My Encryption.. Encrypting?, many were up in arms about the flawed function I posted. And rightfully so, as there was a huge mistake in that code that just about invalidates any so-called "encryption" it performs. But there's one small problem: I

By Jeff Atwood ·
Comments

code review

Who's Your Coding Buddy?

I am continually amazed how much better my code becomes after I've had a peer look at it. I don't mean a formal review in a meeting room, or making my code open to anonymous public scrutiny on the internet, or some kind of onerous pair

By Jeff Atwood ·
Comments

software development

Are You An Expert?

I think I have a problem with authority. Starting with my own. It troubles me greatly to hear that people see me as an expert or an authority, and not a fellow amateur. If I've learned anything in my career, it is that approaching software development as an

By Jeff Atwood ·
Comments

software development practices

Coding For Violent Psychopaths

Today's rumination is not for the weak of heart. It's from the venerable C2 Wiki page Code For The Maintainer: Always code as if the person who ends up maintaining your code is a violent psychopath who knows where you live. Perhaps a little over the

By Jeff Atwood ·
Comments

code review

Don't Go Dark

Ben Collins-Sussman on programmer insecurity [http://blog.red-bean.com/sussman/?p=96]: > What do you do when somebody shows up to an open source project with a gigantic new feature that took months to write? Who has the time to review thousands of lines of code? What if there

By Jeff Atwood ·
Comments

user experience

UI-First Software Development

We're currently in the midst of building the new web property I alluded to in a previous post. Before I write a single line of code, I want to have a pretty clear idea of what the user interface will look like first. I'm in complete

By Jeff Atwood ·
Comments

database management

Get Your Database Under Version Control

A little over a year ago, I wrote about the importance of version control for databases. When I ask development teams whether their database is under version control, I usually get blank stares. The database is a critical part of your application. If you deploy version 2.0 of your

By Jeff Atwood ·
Comments

customer service

Sharing The Customer's Pain

In this interview with Werner Vogels, the CTO of Amazon, he outlines how Amazon's developers stay in touch with their users: Remember that most of our developers are in the loop with customers, so they have a rather good understanding about what our customers like, what they do

By Jeff Atwood ·
Comments

desktop organization

Your Desktop Is Not a Destination

I'm of two minds on the desktop. If you're really using your computer, your desktop should almost never be visible. Your screen should be covered with information, with whatever data you're working on. I can't imagine why you'd willingly stare

By Jeff Atwood ·
Comments

programming concepts

Can Your Team Pass The Elevator Test?

Software developers do love to code [https://blog.codinghorror.com/the-best-code-is-no-code-at-all/]. But very few of them, in my experience, can explain why they're coding. Try this exercise on one of your teammates if you don't believe me. Ask them what they're doing. Then ask

By Jeff Atwood ·
Comments