This weeks Mandatory Viewing is Jim Weirich's Play by Play. Pluralsight has put up this talk shortly after Jim passed away, as a tribute.
In this almost 90-minute session, you can watch Jim take a problem, and iterate through a vast number of API designs, trying to get a feel for how his designs influence the user's happiness. Even if you don't know Ruby, you can follow the process of someone who thinks in code, and isn't afraid to say "let's try this, and see what it does."
The process of "trying out" what an API will look like before using it resonates well with me. I prefer to make my tests read as close as possible to the thinking process of an API user. Try to put yourself in the user's IDE, and try to feel what he's feeling while using your API; empathy with your user reduces the number of WTFs per minute drastically.
- "The maturity of frameworks can be shown in how good their error messages are."
- "We've prove the basic technology works. We can write a proxy. Now is the task of finding the right API that works well... if it's too complex to use, people won't like it."
- "We explored a couple paths that proved unfruitful. I think that's good in that you explore these things and you find that's not really what I wanted."