Why bounties fail


I thought this was a great point from last week’s discussion that deserved a shout-out:

“Remember however that some (high level scripting) software will effectively become learning materials - any code the students are asked to edit - and should be treated as learning materials.” –Joe

One of my personal favorite things about the XO being open-source is that the entire machine, and all the software on it, turns into a 3.2lb green box full of learning materials. The increasingly blurring line between Activities and Content Bundles (regarding how they’re treated in software) is a good example of this.

Now, about bounties, and solving the problem of how to get people to do things that aren’t glamorous (such as “make gforge work”)…

Listening in on Doc Searls in the #berkman backchannel last week made me think again about why bounties have not been historically useful with OSS development. Doc brought up that a lot of open-source work is done by geeks scratching their own itches, and that bribing somebody to scratch an itch they don’t have doesn’t really work.

But that’s the point of bounties. They are supposed to move the itch. Now the itch you have to scratch is not “I want to fix this for myself,” but “I don’t have that reward, I’d like to have it.” Rewards can be financial, status recognition, or some good thing happening to someone else you care about (”I fixed this problem for my friend/a child in a 3rd world country.”)

But that doesn’t seem to be happening - I come across bounty site after bounty site for OSS with no recent activity. Maybe there is one I’m missing that’s prolific and alive, but there doesn’t seem to be a dedicated bounty site that gets good results across multiple OSS projects - most work on a project, bounty or not, seems to be done by hackers already within their communities…

…and this, I think, is what the bounty sites are missing.

One emotion often associated with OSS communities is their sense of independence and grassroots-driven-ness; the sense that they built their own identity and are centralized in their own (online) location. So I can see a centralized bounty system falling flat with NIH syndrome, unless it’s offered as something each project can incorporate/control inside their own systems. (Can you imagine Trac existing only as a “we’ll host it for you” service, rather than having projects install, manage, and configure their own installations and write plugins for them? Scratch your own itch mentality is there.)

I talked about emotion earlier. Emotion is important.

If bounty sites fail because they don’t have bugs that hackers want to fix, because it’s not an itch they want to scratch, we have to think about what makes people think bugs are important for them to fix. Debasis Pradhan has a good answer: it’s emotion. You spot a bug by the emotional reaction you have to it. Frustration. Surprise. Rage against the machine.

So maybe one issue with bounty sites is that they treat OSS development as a purely economic activity without emotions as a motivational driver in that market.

All right. So what might be good requirements for a solution to the set of problems bounty sites are trying to solve?

  1. It must create emotional attachments between hackers and the bugs you want them to fix. Make it really their itch to scratch; don’t pay them to scratch an itch they don’t feel. (”Why would I scratch my behind for no apparent reason? I don’t care if you’re going to pay me for it. That’s absurd.”)
  2. It must consider community identity, and work on building the identities of the communities it serves, rather than creating its own centralized brand.

What else? And then - of course - the question: “How does this apply to OLPC?”


One of these things is not like the other


My lunch today:

  1. celery sticks (there was an entire head… plant… thing of celery in our fridge; it needed to be eaten)
  2. peanut butter (to go with celery sticks)
  3. mint chocolate chip ice cream cake (thank you, Gustavo!)

Lissa taught me how to bake bread at pika last night. It was delicious! And much easier than I had thought. Perhaps I should do this sort of thing more.


Brainstorming! Brainstorming!


Brainstorm at Mauna Loa last night. Just for fun. We used this as our excuse, and we’ll come back to it later, but it really - for me, it ended up being more about stretching out those parts of my brain that hadn’t gotten a chance to shake their legs for far too long. I love brainstorms; they put me into flow state almost immediately. I love being in them, facilitating them, teaching other people how to run them. The great thing about it is that anyone can brainstorm, and it’s a difficult art to learn how to truly do well - minute to learn, lifetime to master.

Some highlights of last night:

  1. Worst Thing: (”What’s the worst thing you could imagine doing for the world - something that would hurt the most people most deeply in 1-2 years?”) “Global infertility!” “Anarchy for a day!” “Detonate all U.S. nuclear weapons!” “All white people are automatically made slaves!” “One Handgun Per Child!”
  2. Worst Thing, Flipped: (”Now take these ideas and do a 180 on them - what’s their opposite? Give specific implementations.”) This led to things like “free speech punishable by death” (I forgot the exact phrasing) flipping into things like “tax breaks for property owners who allow part-time use of their land/office/home as open meeting space for the public.”
  3. Cultural artifacts and internet memes: (”Break time. What are the coolest things you’ve heard about on the internet, or weird things from whatever you consider as ‘your heritage’ right now?”) Examples: robots that follow you around to give you a seat, boba tea, long beards, “we eat too much biscotti”, space elevators.
  4. Outlandish implementations: (”Great! Now use only things from the ‘artifacts and memes’ list to implement things from the ‘worst thing, flipped’ list.”) This was designed to break us of two habits we were running into: (1) our ideas weren’t wild enough, and (2) they were too vague - we had things like “inspire children,” but not implementations like “inspire children with encouragement-bots that give them cheese for every new idea they publicly express.”
  5. Superbowl commercial time: (”In pairs, make a 30 second ad spot for one of these ideas.”) The aforementioned encouragement-bot was one; then there was Andy P lolcat-petitioning in front of Chris’s polluting factory (”No can has… *gurgle* …oxygen!“) and RoboPew, which gives guests a running text commentary on appropriate behavior and the theological meaning behind actions taken during a spiritual service with which they are not familiar. The W.E.E.! World Elevator Ejector left us choked with laughter and unable to do anything for two full minutes afterwards.

We didn’t get to a whole bunch of my favorite brainstorming techniques - the use of props, for one - and I would love to have warmed up or had a break with a little bit of improv theatre style training, and if we’d had time to reflect on how we were doing at applying the (semi-improvised, semi-written-from-memory) Rules of Brainstorming before we launched into a second round, I think it would have been even better. But as it was, we ran a long time with a lot of energy, and I was surprised when we all thought of checking the clock and found that it had dragged past midnight (at which point we hurriedly wrapped up so I could catch a train before the MBTA shut down for the evening).

O Metabrain: I want to learn to brainstorm better. Who are the best ideators you’ve ever come across, and those who are best able to bring out uninhibited, inspired crazy thoughts from others, suspending judgment for a moment?

Also, I’ve gotten multiple queries during the last few brainstorms I’ve facilitated as to whether I could teach others how to run the kinds of brainstorms that I do. My technique reflects the wildly varied ideation training I’ve had over the past 8 years - I use different bits of improv theatre, ethnographic fieldwork, classroom teaching, and quick-and-dirty engineering prototyping tools to kick groups out of mental ruts.

We’re thinking of 3-5 weeks from now (in Boston). This would be completely free and open to the public since I’ll still be learning how to teach this kind of thing effectively (I’ll be practicing by teaching some friends beforehand). Drop me a line if you’re interested and I’ll let you know when we work out details.


What can we use for BigBoard connectors?


This one’s from dinner with Nagle at pika last week. How would you upgrade snap circuits? They don’t really encourage creativity (in his experience) beyond the circuits that they tell you how to build in the manual (even Nagle had a hard time coming up with more things he could build). How would you make a real electronics prototyping kit that kindergarteners could use?

Here’s what we came up with. Temporary name: BigBoard.

Brown is laser-cut lexan, tile, or some other hard, thin, nonconductive surface. Blue is the actual electrical component (ideally there’d be another layer of plastic over this - a casing so small fingers don’t get burnt). Traces and banana plug posts are in green. Each component has a velcro back, and you’re meant to be able to stick it on a giant sheet of velcro (marked off with dots at regular intervals to give you a grid to eyeball things by - it looks almost like a very, very big protoboard, hence BigBoard). Shown below are examples for a resistor and transistor.


You get the idea and can probably imagine things like speakers, capacitors, LEDs, and so forth now (maybe even ICs eventually). Note a few things.

  • You don’t lose the look, feel, and shape of the actual components - they’re not hidden, so kids will get used to seeing capacitors that look like capacitors, and so on. (I know, I know, surface-mount. Hush. We won’t do that now.)
  • Components are replaceable if they burn out.
  • Banana plugs are stackable. You can have as many connections at each connection point as you want.
  • The really big velcro sheet with regularly spaced dots looks like a protoboard. In fact, if you see a simple circuit made on a protoboard (maybe by a local friendly college student), you can recreate it with the BigBoard. And vice versa - someone could make a more permanent version of a BigBoard circuit that looks just like what’s on the BigBoard, but smaller (important for young children who haven’t gotten into the abstract thinking yet - it’s hard to convey that thing X is isomorphic to thing Y to kids below a certain age).

This is a tiny snapshot of the excited discussion we had on what you could do with the BigBoard - we need to run off to the Fab Lab and make prototypes of it and try it out with kids, at this point. Two design issues for the beyond-prototype stage remain unresolved, though - so metabrain, please help us brainstorm!

  1. How do we make it cost less? Laser-cutting acrylic == $. Banana plugs and posts == expensive. If we come up with a different way to do connections between parts, that would save immense amounts of money - any ideas for connectors we can use? Ideas floated other than banana plugs so far: snap-buttons (though you’d lose the ability to make multiple connections at each connection point), mindstorms lego wire pieces (also expensive), jumper wires (small, sharp, and dangerous).
  2. What is the proper tradeoff between cost and repairability when it comes to safety features? How can we keep kids from getting shocked and burned, keep our components from getting shocked and burnt (and make it easy to replace them when we do), and keep things cheap? Example tradeoff: we could make gorgeous plastic cases to go over tiny breadboard-style sockets you could press the parts into; this would be safe and super-repairable, but cost a fortune. Or we could glob a big thing of epoxy over each part. Cheap, still pretty safe (I think - I don’t know how well epoxy isolates things thermally), but very non-repairable.

Thoughts?


Cables cost money.


Cables for electronic instruments cost a lot of money. They are pieces of wire. Encapsulated by rubber. With plugs at the end. How does 6 feet of this stuff end up costing $18? At least I will be able to record tracks now. Reminder to self: I am not allowed to get a guitar and mod it until I can play the piano properly in public.

One of the best features of my digital piano is its headphone output. This lets me play completely without shame - it’s amazing how fast my hands lock up the moment I turn on external speakers. I am beginning to play on random pianos (starting with pika’s when I go there for bread-baking lessons tomorrow) to attempt to get over this hump; right now I start out timidly, forget I’m scared at some point midway through the song, and then I can let loose with blues licks, walking bass lines, whatever.

Ian Daniher is here, visiting OLPC and then Olin, in that order. He’s in the office with Seth doing crazy things with arduinos.

I realized I haven’t been keeping people very up-to-date on what I’ve been doing because I’ve been too busy doing too much stuff. I’m trying to change this. I want to have a more openly documented life; it’s been a good experiment so far, but I am slacking.

Right now: pasta and listening to Greg and Ellen try to game a voting system. I’ll start describing yet more projects next.


Yay for random input!


Sometimes when you hang out on IRC channels and read prolifically, you get exposed to lots of random things you probably would not run into otherwise.


And now, good interruptions:


My cell phone goes off 3 times day at semi-random times to ask me what I’m doing. If I’m just being efficient, I need to immediately stop and do something else.

I should explain a bit. Because I hyperfocus, it’s easy for me to get locked into doing something completely useless with extraordinary efficiency. It takes a long time for me to realize I should be doing Something Else in order to be more effective - rather than efficient - where “effective” is defined as “moving me towards making the kind of impact on other people that I want to have.” Because really, if I’m efficient and I’m lonely, then I might as well just be a robot.

This isn’t as much of an interruption as it might sound. Since I keep my phone in my pocket on vibrate, all it does is buzz in my pocket, so if I’m in the middle of something I get that quick awareness check and just keep going without even pulling out my phone. (Plus benefit: people calling in the middle of a useful work sprint now actually serve to focus, rather than distract, me - I just check after I am done to see whether it was a reminder or an actual missed call.)

Am I doing something really really really well? Am I just sprinting aimlessly to fill in time by feeling busy? Or am I doing something that I really, really should be doing?


More powerful than caffeine


Andy P is far more powerful than caffeine when it comes to engrossing me to work on things way past my exhaustion point without realizing it. I think I have a similar effect on him; our conversation several nights ago progressed from standing to various states of leaning (later,collapsing) on/across furniture.

It ended with us lying on the carpet, heads propped up so we could still face each other with a minimum of muscular expenditure, still talking a mile a minute and intermittently cranking our eyelids open to feebly some to-do reminder on the whiteboard. When I started having trouble understanding Andy because I couldn’t read him when I closed my burning eyes, we realized that this was getting ridiculous and reluctantly proceeded to pass out.

i’ve learned that I can’t stop myself from running myself down - I can stop big burnouts, but not tiny ones, and I can clear the area of flammable materials and do reasonably controlled burns - ones allowed to “go wild” because they are contained in some way. It’s like setting off big firecrackers safely; there’s always the danger risk, but you can do it in a smart way that will be spectacular, have boundaries, and not hurt people.

The trick is keeping them contained. I’m learning that.

I need to go to sleep.


Healthy communities


While reading snips from an O’Reilly chapter on community-building, I was reminded strongly of some conversations I’ve had recently with current Olin students about Olin.Friday’s car-ride talk with Henry is also swimming in my brain; that was about the practice and process of delineating different groups of people, and what this harmed and helped in terms of how your resulting mental construct of the world could then be used. (In other words, Henry gently poked holes in some of my own mental constructs. There are so many different modes of thought that I don’t know - ohboyohboy, more stuff to learn!)

Anyway. Passages of relevance!

You’ll know you have a healthy community when users comment publicly that “this is the best site I’ve ever used,” “I came here because of the goal, but stay around because of the people I’ve met,” amd “No other place on the Internet is like this.” Happy users tend to talk in terms eminiscent of Manifest Destiny and settlers in a little-p paradise. It occurs in almost every healthy, somewhat-social community. Strongly-technical communities, like software development mailing lists, tend not to exhibit this behavior.

A healthy community also develops a sense of history and in-jokes. The phrases “Thanks, applied” and “Rule one” mean something very specific to Perl 5 porters. Everything 2 afficionados understand the intrinsic humor of “Soy.” Highly-ranked and respected Perl Monks regularly cite precedents when controversial topics reoccur.

Not making any particular point or asking any particular questions by posting this up - just curious to see what reactions, if any, it gets.


A certain kind of isolation


Written again during the wee hours of the morning, when I hit a wall and decided to take a half hour to think about my work habits.


In the “what took you so long?” department, I’ve started to actually acknowledge something that I came to grips with last year; I work better when I’m alone. Well, that’s not quite right. Restate: I work best when I have access to a certain kind of isolation. I need easy access to people, and I need to be around people once in a while, but I also need a space that isolates a small number of distractions I can bounce between.

A good workstation for me - I had this sophomore and junior year at Olin, and the lack of it for senior year might be one explanation why I was So Darn Jittery and couldn’t focus on my work sometimes - is having a piano and a computer and a reading-space (desk, couch, bed) all together in a corner so that I can quickly swivel between stations. To this I’d now add “and my drumset!” for the fourth wall of the playpen.

It’s occasionally hilarious to watch me work. I have frequent long moments of focused intensity during which I CANNOT BE DISTRACTED HOLY COW because things outside whatever I am working on (or reading) don’t even exist; it’s like a thick white mist blankets out the world that’s not in front of me. This is pretty boring to watch. I’m just doing the same thing for a long, long time.

The hilarious part looks like this: My first year at college I would literally have to run around my dormitory building - in pajamas in the snow, if that’s what I was wearing at the time - in the middle of a take-home exam before I could sit down and write and think straight for the next question. When I had that piano-on-one-side, computer-on-the-other setup, I’d pause mid-sentence in an essay, whip around, crash through a couple random chords or a scale, then finish typing the sentence. In high school I’d hop between coding at my desk and sitting on the radiator sketching, reading, or just looking out the window, and then back, in less than 15 minutes. Or I’d throw my chair off to the side and do 10 situps under my desk for no apparent reason (it’s not like I’ve ever had any sort of workout plan - I just needed to move), then get back to studying.

So I need to interrupt myself and mode-switch sometimes to reboot my brain on $ImportantTask. Maybe that’s why I had the habit of reading multiple books simultaneously as a kid. I’d have at least 4 or 5 open books strewn around the room, sometimes two or more books simultaneously open on my lap - and I would switch between them whenever I felt like it (which I think was apparently at random).

I remember grownups (teachers, older relatives) asking me, multiple times when I was still in elementary school, “don’t you get confused reading all those books at once?” I also remember how strange I thought it was that they would even ask that question. Why would you get confused? Wouldn’t it make less sense to keep on pushing through the same book when you hit that invisible wall of can’t-do-this-any-more-ness? Much more effective to go, read something else for a chapter, then come back a couple minutes later and continue. They’re different books. You can’t possibly mix different books up in your head. Right?

The problem comes in when I can’t control the way in which I interrupt myself. I am incredibly distractable, and once I start doing something new, I forget the previous thing I was doing. Hence the inconsistently applied habit of placing reminders in places I’ll walk smack-bang into; sticky notes on my monitor saying what I was doing before I went to lunch (problem: I may forget to come back from lunch), writing notes on my hand, leaving a text file with “REMEMBER!! YOU WERE DOING THIS!!” up on my screen…

If I have relatively few distractions to pick from (work1 + work2 + piano + book, for instance) it’s easy for me to figure out what I was doing. There aren’t that many options. But when people start dropping in and giving me an unlimited number of distractions from the outside, I quickly lose track of where I’ve been or what I should be doing. That’s why I work well from home if I’m alone at home (or with people who are doing their own thing in the same room), or if I’m in my room or something. And why I work well in situations where my role is that of a bounce-between, and it’s up to someone else to keep a mental stack - like teaching, where I can hop between students and they’ll keep themselves in some sort of queue until they’ve got their problems fixed so I don’t have to worry about forgetting some.

Also, I worry sometimes about distracting other people with random moments of music and pushups and running through the hallways with face paint on in the middle of exam period. Having a private workspace fixes this somewhat. I really do like being around other people when I work, though - maybe I just need blinders… ideally there’d be a big red button I could press to bring a Big Magic Shield down around me for “I need to have no external interruptions” time, and then press it again when I’m through with that period and can be surrounded by humans of interestingness without a productivity drop.

A good routine - the one I inadvertently settled into at TOPP, and may settle into here at OLPC as well - is waking early, working from home before lunch, going to the office for lunch and meetings in the afternoon, (there is a part formerly/currently missing that involves Not Being In The Office all through evening, getting sunlight, cooking dinner with friends, that sort of thing), and checking in from home in the evening and cleaning up whatever small or urgent tasks have popped up in the meantime. (And then there is the other missing part involving relaxing before bedtime and then going to sleep.)

Speaking of which, I should get back to work.