3 ways our awesome habits get us into trouble

Those of us that spend a lot of time in email have developed a lot of habits that make us more efficient. They work really well when the people we are working with also do them. But lately I’ve been encountering situations where they misfire. For example:

Good habit: Replying in the message.

IStock_000000899581XSmall When replying to an email, we tend to leave most of the conversation intact and we insert our comments where appropriate. That way you keep the context. If you have a lot of emails conversations you are following, or if new people join the conversation, that is essential. Otherwise you have to go back and read all the old mail, remember the conversation and piece it together. It would take me forever to read mail that way.

IStock_000000899602XSmall Problem: I recently had a case where someone was asking for help. When another person wrote back some nice ideas and thoughts, the person asking for help never responded. When I asked him why not, he told me he hadn’t seen any ideas. He opened the mail, but since there was nothing at the top and it looked like just his original mail was in there, he assumed there was no response. He didn’t scroll and look for the answers.

Solution: Always start a new thread with a greeting or header and be sure to say something like “My comments are embedded below.”

Good Habit: CC’ing someone who needs help.

IStock_000000899581XSmall When forwarding someone’s question to the mailing list or to another person, we cc them so that they can see all the responses and ask follow up questions. (Otherwise we’d have to watch the responses and forward them or summarize and forward back to the original person.)

IStock_000000899602XSmall Problem: People reply back to the mailing list or to you without cc’ing the person. Sometimes this happens because they don’t notice that someone is cc’ed. Sometimes it happens because they are “shy” and want to make sure their answer is something you are looking for. Sometimes it happens because they see you as the authority figure to report to.

Solution: Explicitly ask people to reply to all or “reply to Bob” with ideas. (And I realize that all my solutions require more typing and more work. If you’ve got better ones, please let me know!)

Good Habit:  Putting information in wikis (and expecting others to update it)

IStock_000000899581XSmallWe put information into wikis so that people can correct it and update it themselves.

IStock_000000899602XSmall Problem: People email you back with corrections and never put them in the wiki. So you have to continuously update the wiki.

Solution: Write back and say, that’s great, can you add it to the wiki please? (Note that this only seems to work 30% of the time, so I’m open to better suggestions. I think the main problem is they already answered your question so now there’s one more step they need to do.) Maybe a better solution would be to say in your original mail, “Please update the wiki directly – don’t email me updates” but then you might shut off discussion. Sometimes people email you the updates so that the group can discuss them.

What other good habits don’t work well when the other person isn’t aware of them? What other solutions do you have for making good habits work with those that aren’t aware of them. (Without trying to change the other person’s habits.)

How I learned not to procrastinate

Carmen I’m not much of a procrastinator. And I owe that to Carmen. (Montse, be sure your mom hears this!)

When I was 12, every day after school we went to Carmen’s house. We all sat around the table and, after eating a snack, we sat there and worked on homework until we were done. Carmen either helped us with our homework, or if we didn’t need help, she sat with us and knitted or ironed. (And before my sister and I learned Spanish, she’d spend time teaching us new words and reading books.) That habit of sitting down and just doing it has stuck with me. When you have a lot to do, you sit down and do it.

Some background.

We moved to Spain when I was 12. Although I was born in Spain we moved away when I was 2, so at age 12 when we returned, I spoke no Spanish. My parents put us in a Spanish speaking school. Then they got jobs teaching English in the evenings and arranged for us to stay with Carmen and her family after school. The first day I ended up in the wrong classroom. The first month, I got a zero on a homework assignment I didn’t even know I had. And I couldn’t even tell the teacher I didn’t know there had been a homework assignment. (For someone used to getting all A’s, that was traumatic!)

After school Carmen patiently spent hours working with us in the evenings. First helping us to do our homework, pantomiming all sorts of words and looking them up in the dictionary when that failed. Then when we were done with our homework, she’d bring out kids’ books and have us read them.

Over the months, we got better and faster at our homework and had more time to play. And eventually my parents got jobs teaching during the day. But for years afterwards, I still stopped at Carmen’s house after school just to sit at the table and chat. I still do, whenever I get to Barcelona!

I didn’t realize until recently that she had taught me how not to procrastinate. Don’t get me wrong, I still procrastinate, especially when I’m not sure how to do something, but it’s nothing like what it would be without the habit of sitting down and doing it. And it was a fun, friendly environment. One that I returned to even when I didn’t have homework. We all sat together at the table, Carmen, her two kids and my sister and I. We ate, worked and talked together.

Now I just have to make sure I pass that on to my kids. I guess I’d better start sitting at the table when my son is doing his homework!

How did you learn how not to procrastinate?

And here’s how I deal with the times I do procrastinate.

Grants, bounties and free software

Bounties or grants are often suggested as a way companies can pay for work on free software projects.

The GNOME community has had mixed results with bounties and grants, so when Funambol community manager Stefano Maffulli contacted me about a GNOME grant and said they'd had success using grants for Funambol, I thought it'd be interesting to learn more about the program.

Here's how the Funambol Code Sniper has successfully used grants to foster research and development efforts in free software projects. The responses are from Stefano Muffulli.

People have mixed opinions about grants or bounties as they are sometimes called. What has been your experience?

2368673742_a0da965a88_o I consider the Funambol Code Sniper program to be our networked research and development effort. Being a commercial open source project, Funambol needs to respond to customer requests first and at the end of the day there is little time for exploration. Therefore, sometimes it is more convenient to empower teams that are not part of the company to explore environments that are not necessarily going to generate revenue.

For example, under the Code Sniper program, we sponsored a solution to sync contacts with Yahoo! and Google services long before we had any customers ask for it. Now that code is part of the Funambol commercial offering (and we've hired the developers, too).

Another example of this R&D play is the exploration of social networking features that resulted into the development of AvatarGrabber: it's a simple java app that 'scrapes' the web in search of images of people in your addressbook and lets you chose which image to assign to them. The result is a 'pimped' addressbook with your friends' pics from myspace, facebook, gravatar and other sites. We don't know yet if this software will ever go beyond being a cool toy and end up in a product but nevertheless the company has learned something about social networking from it.

We haven't had any backlash about offering cash bounties. We do recognize that free software developers are not really motivated by the money aspect, and that it's something else that makes them tick. However, we view the money as a token of our appreciation for their effort, to recognize them, and they can always donate it to charity or some other cause if they don't really want the money.

Do you attract new developers or existing developers?

The people that participate in the Code Sniper program are mostly young developers willing to learn how to develop for mobile environments. They're not complete newbies, though: mobile software development can get pretty complex.

Do people that work on the grant projects usually stick around and work on other projects, paid or unpaid?

Several of the participants in Code Sniper have been hired. The rest are still maintaining their projects as volunteers.

Do you get a lot of good work this way? Are you able to take the code the grantee gives you and run with it?

For the majority of the projects, we end up with decent code, at least for a proof of concept. But mostly we gain experience as a company: we try to make sure that all projects have an internal mentor that can devote a few hours per week to follow the project so that at least one team member can participate in the development process. Occasionally we don't get good results, mainly because of lack of communication between the code sniper and the company or even the wider community.

Do you close the grant as soon as one person says they are interested or do multiple people work on it at once? If so, how do you decide who gets the money?

We've had cases where more than one person applied at the same time for the same grant. In those cases we try to encourage collaboration with the candidates and split the grant equally. In our experience this is not an ideal solution though.

To improve the Code Sniper process, I'm working to change how the incentives are distributed. The new process will reward the constant effort from the participant and allow for more people to work on one project without conflict.

I'm also thinking of other non-monetary compensations, like kudos or Linkedin recommendations from our lead developers, donations to their favorite .org and so on.

One complaint against grants and bounties is that by the time you finish specifying the requirements, you might as well have written the code. How much work do you spend getting the specifications right?

We do very little of that. Usually the grants are just basic ideas and we leave to candidates the chance to elaborate further and shape their own project.

The candidates need to send a brief resume and a very basic draft project. After approval, they're asked to write the full specifications of the project and discuss it with the Funambol developers on the mailing list. Once the specs are ready, the (fun) development phase can start. When development is done, a first half of the grant is paid and the software is tested by Funambol engineers. If they consider the project done, the other half of the grant is paid.

I'm investigating whether it would make more sense to use a 'leaner' approach to development, with less planning in advance and more coding. Unfortunately I still haven't found the appropriate balance between free software coding habits (unregulated scratch-your-own-itch) and lean development techniques like Agile/SCRUM (that need a management structure and role separation between users, product owner and developers).

If your readers have any pointers to material, I'd be glad to learn more.

How many successful grant projects have you had?

The Code Sniper program was started over 2 years ago and the company is satisfied with the results obtained so far:  4 components developed with these bounties have been integrated into the Funambol product and are shipped to customers, one of these helped acquiring a new customer. A few others are being considered for inclusion in the product (like the Funambol client for Mozilla Thunderbird).

What are you most excited about the Funambol Code Sniper program?

I like two things of this program: one is to see this program as part of a larger free software innovation network, especially useful in the mobile market. But mostly, it's exciting to be able to give back to the free software community.

Thanks, Stefano!