programming concepts

software development

UsWare vs. ThemWare

Ted Dennison left this astute comment in response to Do Not Listen to Your Users: Generally when I go talk to users, it is to educate myself enough to become a user like them. Then I can see what needs doing, what needs streamlining, reorganizing, rearranging, etc. This brought to

By Jeff Atwood ·
Comments

software development

The Magpie Developer

I've often thought that software developers were akin to Magpies, birds notorious for stealing shiny items to decorate their complex nests. Like Magpies, software developers are unusually smart and curious creatures, almost by definition. But we are too easily distracted by shiny new toys and playthings. I no

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

computer science

Practicing the Fundamentals: The New Turing Omnibus

While researching Classic Computer Science Puzzles, our CEO Scott Stanfield turned me on to A.K. Dewdney's The New Turing Omnibus: 66 Excursions in Computer Science. This is an incredibly fun little book. Sure, it's got Towers of Hanoi, but it's also got so

By Jeff Atwood ·
Comments

wearable computing

Steve Mann, Cyborg

I may have an unusual affinity for hardware, but Steve Mann [http://en.wikipedia.org/wiki/Steve_Mann] is in a class of his own. He lives the hardware [http://query.nytimes.com/gst/fullpage.html?sec=technology&res=940CE0D71239F937A25750C0A9649C8B63] . Steve Mann may be the world's original

By Jeff Atwood ·
Comments

open source

Where Are All the Open Source Billionaires?

Hugh MacLeod asks, if open source is so great, where are all the open source billionaires? If Open Source software is free, then why bother spending money on Microsoft Partner stuff? I already know what Microsoft's detractors will say: "There's no reason whatsoever. $40 billion

By Jeff Atwood ·
Comments

programming concepts

Curly's Law: Do One Thing

In Outliving the Great Variable Shortage, Tim Ottinger invokes Curly's Law: A variable should mean one thing, and one thing only. It should not mean one thing in one circumstance, and carry a different value from a different domain some other time. It should not mean two things

By Jeff Atwood ·
Comments

software development

Boyd's Law of Iteration

Scott Stanfield forwarded me a link to Roger Sessions' A Better Path to Enterprise Architecture yesterday. Even though it's got the snake-oil word "Enterprise" in the title, the article is surprisingly good. I particularly liked the unusual analogy Roger chose to illustrate the difference between

By Jeff Atwood ·
Comments

networking

The Story About PING

Everyone loves ping. It's simple. It's utilitarian. And it does exactly what the sonar inspired name implies. Ping tells you if a remote computer is responding to network requests. The ping utility was written by Mike Muuss, a senior scientist at the U.S. Army Research

By Jeff Atwood ·
Comments

programming concepts

Swiss Army Knife or Generalizing Specialist

In Does Writing Code Matter?, I proposed that developers spend less time on the technical stuff, which they're already quite good at, and more time cultivating other non-technical skills that developers tend to lack. One commenter took issue with this approach: I don't agree with the

By Jeff Atwood ·
Comments

game development

Game Player, Game Programmer

Greg Costikyan's essay Welcome Comrade! [http://www.manifestogames.com/node/1425] is a call to arms for hobbyist game programmers: > Back in the day, it took a couple of man days to create a Doom level. Creating a Doom III level took multiple man-weeks. Thus budgets spiral

By Jeff Atwood ·
Comments