The 10x (100x? 1000x?!) Programmer

In Making Software: What Really Works and Why We Believe It, Steve McConnell contributes a chapter called "What Does 10x Mean? Measuring Variations in Programmer Productivity". One of the most replicated results in software engineering research is the 10-fold difference in productivity and quality between different programmers with the same levels of experience. Researchers have also found that this difference applies at the team level, even to different teams working within the same industries.
Read more →

Refactoring, Rewriting, Rearchitecting. Oh My!

I hear the term "refactoring" nearly every day. I usually want to shout in my best Inigo Montoya impression: "You keep using that word. I do not think it means what you think it means." A brief history of refactoring: While the exact origins of "refactoring" as it applies to code is unknown, it obviously borrows from the idea of factoring in mathematics. Factoring is the process of reducing an object (number, polynomial, etc) into it's simplest parts.
Read more →

Code Is Temporary

This week Nick Bradbury, best known for his products HomeSite and FeedDemon, wrote a short post titled Code Is Temporary. He talks about the ephemeral nature of code and challenges us to stop wasting our time and build something we care about. "Developers sweat blood writing code but in the end our code will vanish. That language you’re learning or framework you’re devoted to will disappear in short time. At some point what you create will only be able to run in some nostalgic emulator.
Read more →

Write Code That Writes Code

In The Pragmatic Programmer: From Journeyman to Master by Andy Hunt and David Thomas, they have a list of the tips and checklists that appear throughout the book. #29 is: Write Code That Writes Code. In their section covering Code Generators they describe two different types: Active and Passive. Passive code generators run one time, and produce a result. From that point forward, any customizations that are done are outside the code generator.
Read more →

Aesthetics, Ethics, and Alienation

From (aptly named) The Philosophical Programmer: Reflections on the Moth in the Machine by Daniel Kohanski: Aesthetics, let us admit, mean nothing to a computer. And elegance in programming is by no means a guarantor of efficiency. It must be constantly borne in mind, however, that programs are not written solely to be understood by computers, but by people as well. While the computer may well be able to execute a poorly designed program and produce the correct answer, it is often difficult to determine from an examination of the program that it is the correct answer.
Read more →