commenter-thread

Avatar
Comments on Getting to Ten Times Better by veronica d in reply to CJColucci

I’ve mentioned before the one developer we had in our group who was crazy smart. Wrote really tight, compact code that got the job done is very interesting ways. And she never documented any of it, and was very vocal with her attitude of, “If you can’t understand my code, you aren’t a real developer and you should be fired.”

Good grief.

I'm definitely the "trick memory" sort of person. At least, I've had a number of coworkers tell me I have a ridiculous amount of short term memory. Instead of 7-plus-or-minus-2, I think I do more like 15-plus-or-minus-2.

I also like to do math problems without using paper. I used to get a bit drunk, grab a calculus text, and try to solve all the "methods of integration" problems in my head without using paper. I think doing this trained my brain to hold a lot at once.

(That's totally true. I used to really do that. While drunk. I'm weird.)

Is that 10X programming?

Sure, why not. :)

I like {whatshisname's} mantra: "smart and gets things done." The whole "10x" has morphed into nerd self indulgence and excuses for terrible behavior. "Smart and gets things done" is as valuable, but more humble.

Oh, and nothing but Lisp is Lisp. A lot of modern languages have tried to become more Lisp-like, but they aren't Lisp. On the other hand, Common Lisp, which is what I use, is a horrible brainfuck of terror that was spat from the void by an evil god who hates us. But Lisp remains Lisp, and nothing else is Lisp.

Note, I didn't start the project. I've only been working on it for about five years now. I'm starting to kind of understand a bit of it.

Anyway, we search for airline flights and fares, which sounds like it should be pretty easy, but given 1) the complexity of the industry's filing practices and 2) the need for real time inventory management, together make it a really tricky problem. This is a 2009 slide deck that discusses the complexity: http://www.ai.mit.edu/courses/6.034f/psets/ps1/airtravel.pdf

(When I first got hired, they sent me that document to see if I was actually interested. I was.)

Myself, I mostly work on the "reshop" product, which airlines use to change an existing ticket. We have to reconstruct the original data from what the airlines provide, and then using the restrictions on the original fares, try to find a (near) optimal solution that satisfies the customer's desired change. Usually it's simply changing the dates of the return flight of a round trip, but it can get very complex. For example, a customer might have a trip booked from Boston to New York to London to Johannesburg, and then back through Milan to Boston. If they want to change the Johannesburg-Milan leg to a Johannesburg-Paris leg, with the ensuing changes to the return Boston flight, it can be complex figuring out 1) if they can change the ticket, and 2) how much that should cost.

It's much fun. However, showing up with the "10x programmer" nerd bullshit is not going to work.

Plausibly, you could set up sabermetrics type algorithm that compared salary versus potential profit in some betting network. You would have to adjust for the fact Basketball is a team sport, and therefor probably has synergistic effects between players on a team, but I think we can imagine ranking players that way -- with a suitable set of provisos.

But your point is a good one. Being able to fit a power-law versus normal distribution requires measurable quantities.

I think the "10x" programmer thing is probably real enough. Note, the idea was introduced by Fred Brooks a million years ago, based on his experiences at IBM. It is not a product of SV hacker culture. It was not meant as Paul Graham style nerd self indulgence. In other words, it is an idea of respectable providence.

That said, I don't think it's merely a matter of raw brain power. I think it is as much the capacity to hyper focus and work for extended periods of time. It's a deep dive where you shut out everything but the code. Don't forget your Adderall.

Note, such engineers can be very productive, but they can be very difficult to work with. Any distraction can drive them into a rage. So managing such people has a cost beyond measuring salary-versus-lines-of-working-code. Also, pity the poor bastard who has to maintain that code over the ensuing years. It is very often needlessly complex, and the documentation only runs on the brain of the original engineer.

When I was younger, I could produce code like that (even without Adderall). Nowadays, it takes a heavy toll on my soul. I can still be productive, but I'm not going home Friday thinking about a problem, and then arriving at work Monday morning having solved that problem during a 40-hour brain surge over the weekend. At one time I could do that, but not now.

On other other hand, I've seen everything, so even terrible complex software doesn't scare me. I rarely encounter something that intimidates me. (The code base I work on is 600k lines of Common Lisp and 400k lines of C++. It's about fifteen years old. Needless to say, it's hellishly complex.)

Plus, even if I take longer to produce code, my coworkers hate me less. I don't freak out, or fight over minutia, or generate freakish towers of hyper-logic that only I understand.