Aug 3, 2009
Tests are a technique to manage programmer anxiety about code. When I feel anxious about some aspect of my code I write a test case.

Does programming language affect level of anxiety? Definitely. Does programmer skill affect level of anxiety? Absolutely.

Writing tests becomes more important when you're part of a team. Your choices affect not just your anxiety but that of your teammates. That's why it's reasonable to be more dogmatic about TDD in a team.

A lot of 'getting better at TDD' is just getting better at listening to yourself. When I started programming the little anxieties would pile up until I'd painted myself into a corner. With experience I pay more attention to the little anxieties.

The secondary effect: after some time doing TDD I feel less anxious just knowing that I can write a test if I want. The benefit of the tests as an artifact is secondary to me; what they primarily do is keep me from getting stressed and giving up to go play poker.
me

comments

* *
May 23, 2009
Realism in simulation

"The goal of simulation is not to simulate reality as closely as possible. With an accurate model you cannot find commonalities."
Tom Slee

comments

* *
Jan 25, 2009
How to enter the Zone at will

comments

* *
Oct 8, 2008
You’re going to have to rewrite code. All the time. You have to be ok with it. You have to be willing. This is the secret of the great programmers, and the great stumbling block of those new to refactoring and TDD.

The bad news: Refactorings like extract object will require you to test drive a new class from scratch. All the time.
The good news: It’s much easier to rewrite when you have tests. You just haven’t noticed yet.

— me

comments

* *
Aug 26, 2008
The problem in scaling software projects is not a communication problem; it’s a dependency problem. Control quality by being hierarchical and rigorous about how you test and accept changes, not how you generate them.

comments

* *
Aug 5, 2008
Analytics are a 25-40% tax on your product development process. They take engineers lots of time and development effort, produce numbers that people argue about, and require additional infrastructure.

Having 1 in 4 engineers working on analytics may seem like a ton, but it helps validate assumptions, pinpoint key features and bottlenecks, model the business during decision-making. At the cost of building fewer features, learn as much as you can so that you can “run up the score” on the features that work.

comments

* *
Jul 20, 2008
Linus Torvalds: ..now all your code depends on all the nice object models around it, and you cannot fix it without rewriting your app.
me: That doesn’t have be a big deal. Rewriting becomes more normal when you have automated tests.

comments

* *
Jul 20, 2008
I will tolerate a buggy compiler, lack of editor/IDE/debugger/profiler support, crappy syntax, gotchas in semantics, pretty much anything, if a language easily and naturally supports automated tests.
my new requirement for trying out a programming language

comments

* *
Jul 15, 2008
Rewriters are more like XSLT than macros. They can match and replace fairly arbitrary expressions, not just implement things that look like function calls and method calls.

comments

* *
Jul 10, 2008
The great advantage of the fountain pen is that it is slow. Ideas come faster than we can serialize them to paper. Therefore, the ideas are stored in an “accumulation buffer” in the brain. When in the buffer, the ideas interact and purify. If we empty the buffer too soon, we don’t give the ideas enough time to mature and we get half-baked prose.

Code badly written the first time remains buggy and filled with holes no matter how much it is debugged.

comments

* *
interests
Social software
Tools for programmers
published
Code (contributions)
Prose (shorter, favorites)
favorite insights
Programming
Social Software

Life
Making
Work
Startups

Social Dynamics
Cognition
Economics
History

Links I peddle to everyone I know
subscribe → subscribe →

© mmx ak