January 2013
2 posts
3 tags
The Commit Mutex Problem
When I worked at Etsy, the problem of many developers committing to trunk at once was colloquially known as the “commit mutex” problem.
A CI system can effectively become “blocked” if too many people commit and trigger too many builds within a relatively short time period. All nodes in the CI cluster are busy but new builds keep getting queued. The resulting “build queue” means that...
3 tags
Hiring Programmers in New York, 2013
It seems like every week I have a long conversation with someone on
the topic of hiring programmers. tl;dr: there are no programmers for hire in
New York in 2013. The job market is such that all decent programmers
are gainfully employed. In order to hire a developers it is necessary
to convince them to leave their current job. This will be true for
the foreseeable future.
Personally I have...
November 2012
1 post
2 tags
How to write a bug report
In writing bug reports, I have found it helpful to take the attitude
that I am engaged in scientific inquiry in the relatively
new field that is software. I’ve gotten the best results when
I constructed my communications around bugs in a way that lent itself
to application of the Scientific Method (or a
rough approximation thereof).
Description Of Problem, Steps To Reproduce, and Expected...
June 2012
3 posts
2 tags
More falsehoods programmers believe about time;...
A couple of days ago I decided to
write down some of the things I’ve learned about testing
over the course of the last several years. In the
course of enumerating the areas that benefit most from testing, I
realized that I had accumulated a lot of specific thoughts about how
we as programmers tend to abuse the concept of time.
So I wrote another post called
“falsehoods programmers...
2 tags
Falsehoods programmers believe about time
Over the past couple of years I have spent a lot of time debugging
other engineers’ test code. This was interesting work, occasionally
frustrating but always informative. One might not immediately think
that test code would have bugs, but of course all code has bugs and
tests are no exception.
I have repeatedly been confounded to discover just how
many mistakes in both test and...
1 tag
Things you should test
A checklist of things that are worth testing in pretty much any software system.
…trailing his fingers along the edge of an incomprehensible
computer bank, he reached out and pressed an invitingly large red
button on a nearby panel. The panel lit up with the words “Please do
not press this button again.” ~ Douglas Adams
Software systems are complex and as such...
May 2012
1 post
3 tags
Rapid Infrastructure: Tools You Can Use Even If...
There’s an old joke that goes something like this:
Proposition one: all programs have bugs.
Proposition two: all programs can be shortened by one line.
Conclusion: every program can be reduced to one line of buggy code.
Corny, I know ;-;)
But hey, there is a point in the life of every piece
of software when the entire system consists of one line of code.
That time is at...
March 2012
1 post
1 tag
Intrinsic and Incidental Complexity
There is a very convincing argument to be made that feature-complete
software is ultimately more valuable than a readable codebase.
That there is more value in what an application does than in how it
is put together. Perhaps it is fair to consider architecture,
including the comprehensibility of a program as source code, to be of
some benefit but still orthogonal to a program’s business...