I’ve been a designer for the better part of my professional career (12+years). For the past three years or so I’ve been getting more and more involved in programming, to the point that it’s the majority of what I do day to day. What I’ve taken out of it is that you can only have locus of attention at a time. I am a competent writer in my native language, but when I’m programming I can barely produce copy. I’m somewhat better when I’m writing markup, but this is because I’ve internalized it to the point I no longer need to think about markup while producing copy.

I used to look up to Alan Cooper (who wrote The Inmates are Running the Asylum, where the inmates are developers) but now I just loathe him. Programmers get a lot of unwarranted heat for producing unusable interfaces or producing cryptic error messages, but this is because programming requires a tremendous amount of mental effort, and I very much doubt that anybody is able to switch from computer to human oriented thinking instantly.

To avoid these pitfalls I started practicing waterfall methods: I’d write all my copy, gather all my assets, produce pixel perfect mockups and then get down to programming.

Nowadays I’ve learned to let go and get things achieved in multiple quick passes: one for design, one for programming, one for copy then iterate and repeat until the product is good enough for release. But it does take discipline, you must completely focus on the task at hand.


I’ve programmed probably only four or five serious projects in my lifetime. I’ve seen that—as I learn more about software architecture—the quality of my code increases, but my output decreases. In a certain way I miss the early days when the thrill was just having something work, despite being ugly on the inside. Nowadays I’m constantly refactoring code to make it more elegant, extensible, and maintainable.

I often go back to an interview with Charles Eames, he’s talking about Industrial Design, but it applies perfectly to software design:

Is design ephemeral? __ Some needs are ephemeral. Most designs are ephemeral.

Ought it to tend towards the ephemeral or towards permanence? __ Those needs and designs that have a more universal quality will tend toward permanence. http://blog.gentry.io/eames-design-is-a-method-of-action I constantly try to keep perspective of my work in terms of who needs to maintain it, how often it needs to be maintained, and its lifetime. When I think about it in these terms, then I can keep on being crappy but productive.