Curing “Shy Developer Syndrome”

community, freesoftware, maemo, marketing, work 7 Comments

From the Neary Consulting blog:

One of the most common issues I have seen with experienced professional software developers who start to work on community software is a reluctance to engage with public communication channels like mailing lists. Understanding the reasons why, and helping your developers overcome their timidity, is key to creating a successful and fruitful relationship with the community you are working with.

In my experience, common reasons for this timidity are a lack of confidence in written English skills, or technical skills, nervousness related to public peer review, and seeing community interaction as “communication” or “marketing” (which are not part of their job), rather than just “getting stuff done” (which, of course, is part of their job).

Read more…

MeeGo Progress Report

maemo, work 2 Comments

Some of you may be interested in a guest article I wrote for the VisionMobile blog reviewing the state of MeeGo eight months after its announcement: “The MeeGo Progress Report”

Some excerpts:

On the state of the MeeGo application developer story:

From the point of view of tools, documentation and software distribution channels, MeeGo is undoubtedly behind its primary competitors – but for such a young project, this is to be expected. The success of the project among application developers and the free software community will depend to a large extent on the project’s ability to fill these gaps and provide developers with an excellent development experience.

On the openness of the project:

[…] In the mobile platform development world, it is fair to say that MeeGo is second to none in terms of its open development model.

On comparisons with Android and iOS:

It does not feel fair at this point to compare MeeGo, a project which came into being 8 months ago, with iOS or Android, but this is the yardstick which will be used when the first MeeGo smartphone comes on the market. The project has come a long way since its inception, in particular in working towards an open and transparent development model. There is still some way to go but improvements have been happening daily.

GNOME Census report released

community, freesoftware, gnome, guadec, work 8 Comments

I was delighted to see that the GNOME Census presentation I gave yesterday at GUADEC has gotten a lot of attention. And I’m pleased to announce a change of plan from what I presented yesterday: The report is now available under a Creative Commons license.

Why the change of heart? My intention was never to make a fortune with the report, my main priority was covering my costs and time spent. And after 24 hours, I’ve achieved that. I have had several press requests for the full report, and requests from clients to be allowed to use the report both with press and with their clients.

This solution is the best for all involved, I think – I have covered my costs, the community (and everyone else) gets their hands on the report with analysis as soon as possible, and my clients are happy to have the report available under a license which allows them to use it freely.

You can download the full report now for free.

GNOME Training confirmed!

community, freesoftware, gnome, maemo, work 4 Comments

A few days ago, I took the risk of setting off alarm bells on the GNOME developer training sessions planned for GUADEC this year. It was a risk, and comments from the naysayers reminded me that it’s easier to do nothing than it is to take a risk. I’m happy to say that the risk paid off.

Thanks to all who spread the word, a couple of prospects I was aware of confirmed their presence on the course, and I received a new group booking. The training is now feasible, and we are confirming that it will happen. There is still room on the course, and I expect to sell a few more spots in the coming days.

I did get one interesting suggestion in a Twitter reply to the announcement, and I’ve adopted it. If you are interested in attending one or two of the modules (say, community processes and the GNOME platform overview, but not the practical session or Linux developer tools), you can do so for the much lower price of €400 per module and €750 for two modules, not including a GUADEC registration.

Anyone who would like to avail of this offer, please contact me, and we will take care of getting you signed up.

Thank you all for your help and support!

http://blogs.gnome.org/bolsh/2010/06/28/gnome-developer-training-in-danger/

GNOME Developer Training in danger

gnome, guadec, work 14 Comments

The take-up on the GNOME Developer Training sessions at GUADEC (pdf brochure) has been below expectations. Without going into the details, we’re in a situation where running the training would cost the foundation and the organisers more money than canceling.

If we have not had a number of people sign up for the training by Wednesday evening, we will unfortunately be in the situation where we will have to cancel the session. The GUADEC organisers sign the final contracts with the university for room reservations on July 1st, and that will increase our costs substantially, so that is our deadline for viability.

I hesitated for a long time before writing this blog. It’s never nice to have to admit that something you thought was a good idea, that you put together and made a reality, might not work out.

Many people have, over the years, said that the lack of training options was a major flaw with GNOME. With this training offering, we gave people what they were asking for, with a two day training course plus the flagship GNOME conference for less than you would pay to attend another technical conference. If we cancel this training session, there will likely not be another. The credibility of the foundation (and, I suppose, my credibility) will take a hit.

I decided to let people know in advance that the session is likely to be canceled, to have a chance to stop that from happening. I have confidence that the GNOME community can come to the rescue here, in some sense.

I am sure that there is interest out there. Perhaps people have not yet gotten budget commitments to send developers along, but that they’re still working on it. Perhaps there are people who really should know about the training who don’t yet, because I haven’t managed to get in touch with them. Perhaps a couple of people were planning on signing up, but haven’t gotten around to it yet.

If you are in one of these categories, please get in contact with me soon. If you know someone who would benefit from the training, please let them know, and point them to the brochure and web page. If I have a relatively small number of commitments to attend by Thursday, the training will go ahead.

Thanks everyone for your help and support – I will keep you posted to any new developments.

GNOME Developer Training at GUADEC

community, freesoftware, gnome, guadec, maemo, work 2 Comments

I’m delighted to announce the availability of GNOME Developer Training at GUADEC this year. It’s been brewing for a while, but you can now register for the training sessions on the GUADEC website.

Fernando Herrera, Claudio Saavedra, Alberto Garcia and myself will be running the two-day course, covering the basics of a Linux development environment and developer tools, the GNOME stack, including freedesktop.org components, and the social aspects of working with a free software project, being a good community citizen, getting your code upstream, and gaining influence in projects you work with.

The developer tools section will go beyond getting you compiling the software to also present mobile development environments, and the tools you can use to profile your apps, or diagnose I/O or memory issues, dealing with the vast majority of performance issues developers encounter.

This is the first time I have seen a training course which treats the soft science of working with free software communities, and given the number of times that people working in companies have told me that they need help in this area, I believe that this is satisfying a real need.

We are keeping the numbers down to ensure that the highest quality training & individual attention is provided – only 20 places are available. The pricing for the training course is very competitive for this type of course – €1500 per person, including training, meals and printed training materials, and a professional registration to GUADEC, worth €250.

If you register before June 15th, you can even get an additional discount – the early bird registration price is only €1200 per person.

I’m really excited about this, and I hope others will be too. This is the first time that we will have done training like this in conjunction with GUADEC, and I really hope that this will bring some new developers to the conference for the week, as well as being a valuable addition to the GUADEC event.

Jet-lag tips and tricks

work 10 Comments

During my recent adventures in San Francisco, I told a number of people about my jet-lag “cure”, and they found it sufficiently interesting I thought I would share.

On trans-Atlantic flights, you typically take off late morning and arrive early afternoon  when traveling East to West, or you take off in the afternoon & land in the early morning when traveling West to East. There are two steps to dealing with major (>= 6 hours time-zone difference) jet-lag: what you do in the plane, and what you do when you arrive.

For me, when I’m traveling East to West, I don’t sleep much on the plane. I watch movies, get up & walk around, chat to the other people hanging around outside the toilets, read – whatever helps pass the time. This means that when I arrive at my destination, I’m tired – my body thinks that it’s late night and I’ve been awake all day. But in reality, it’s 2pm.

By the time you get out of the airport, get to your hotel and check in, it’s probably between 2pm and 4pm. If you go to sleep now, the chances are that you will sleep for several hours, then go out to eat a late dinner, and have difficulty getting to sleep for the night, resulting in tiredness early the following day. This is the vicious circle of jet-lag.

To break the cycle, here’s where my cure kicks in: get out of your hotel. Your body uses sunlight to set its biological clock, so by getting out in the daylight, you are helping your body to adjust to the new day and night pattern. Getting outside during the day suppresses the natural production of melatonin, which helps put you to sleep. It also stimulates the production of vitamin D, helping combat illness (another consequence of jet-lag).

The absolute best way to get out and get over jet-lag is to get some exercise. Go on a cycling tour of the city, or go running. Exercise stimulates the production of endorphines, making you feel good, and more importantly, after exercise you typically do not want to go to sleep. And a few hours later, when you do go to sleep, you sleep more soundly.

If you do an hour or two of outdoor exercise after arriving at your destination, then go back to your hotel and shower/bathe, go out for a bite around 7pm, and then get to bed at an early but reasonable 10pm, you should be able to have a good night’s sleep, and function all day the day after. I typically wake up very early the first couple of mornings when I travel to the States – which gives me an opportunity to (you guessed it) go for an early morning jog before getting ready to go where I have to be.

When traveling from West to East, the problem is similar, but the lag is in the other direction – you may have a hard time waking your brain in the morning when you travel 6 or more hours back in time.

The same trick works. Avoid excessive sleep in the plane – a couple of hours nap is about all I ever manage overnight on these flights. When you arrive, get outside and moving about for the afternoon. I love to go with the kids to the park when I come back from trips and run them (and myself) ragged with a football, or go for a walk with the family – anything to get us out of the house. To help me get to sleep, as well as skipping most of the previous night in the plane, I take a melatonin pill (purchased in Safeways while in the US, not on sale in Europe for some reason) to help me to get to sleep at the right time. And the following morning, when I have the most difficulty waking up my brain, I force myself with difficulty to put on a pair of trainers and go for a 45 minute jog.

And that’s all there is to it! Typically, the day I arrive I suffer, the day after I can function, but am not 100%, and the the day after that, I am fully adjusted to my new time zone.

Does anyone have any other hints & tips to overcome jet-lag? Comments open!

Line-up pour Ignite Lyon finalisé

community, francais, freesoftware, home, humour, marketing, running, work Comments Off

Je viens de finaliser aujourd’hui les présentateurs pour l’inauguration de Ignite Lyon. Les sujets sont assez diverses, du vache à lait à l’informatique bio en passant par la course à pied et l’art libre. Pour ceux qui sont plus du tendance entrepreneur, nous avons également des présentations sur la démarche commerciale ou créer sa première boîte jeune.

Voici la liste des présentateurs pour ce premier Ignite Lyon en order alphabétique, sauf modifications de dernier minute:

Avec une salle qui prendrai autour de 100 personnes, les places risquent d’être chères, même si l’entrée est libre!

Je vous suggére vivement d’être à votre place dans la salle D101 de l’Université Lyon 2, Quai Claude Bernard, à l’ouverture des portes à 18h30 jeudi prochain le 4. Les festivités commenceront vers 19h, jusqu’à 20h30 à peu près, avec une pause pipi au millieu.

Vous pouvez également vous inscrire pour manger un bout après l’événement au Chevreuil, ou nous allons nous retrouver quor quelques boissons raffraichissantes à partir de 20h30.

Vous pouvez trouver plus d’informations sur le site Ignite Lyon. A la semaine prochaine!

2009 blog links collection

community, freesoftware, gnome, maemo, marketing, running, work Comments Off

Looking back on 2009, I wrote quite a bit on here which I would like to keep and reference for the future.

This is a collection of my blog entries which gave, in my opinion, the most food for thought this year.

Free software business practice

Community dynamics and governance

Software licensing & other legal issues

Other general stuff

Happy Christmas everyone, and have a great 2010.

The value of engagement

community, freesoftware, General, gimp, gnome, maemo, work 5 Comments

(Reposted from Neary Consulting)

Mal Minhas of the LiMo Foundation announced and presented a white paper at OSiM World called “Mobile Open Source Economic Analysis” (PDF link). Mal argues that by forking off a version of a free software component to adjust it to your needs, run intensive QA, and ship it in a device (a process which can take up to 2 years), you are leaving money on the table, by way of what he calls “unleveraged potential” – you don’t benefit from all of the features and bug fixes which have gone into the software since you forked off it.

While this is true, it is also not the whole story. Trying to build a rock-solid software platform on shifting sands is not easy. Many projects do not commit to regular stable releases of their software. In the not too distant past, the FFMpeg project, universally shipped in Linux distributions, had never had a stable or unstable release. The GIMP went from version 1.2.0 in December 1999 to 2.0.0 in March 2004 in unstable mode, with only bug-fix releases on the 1.2 series.

In these circumstances, getting both the stability your customers need, and the latest & greatest features, is not easy. Time-based releases, pioneered by the GNOME project in 2001, and now almost universally followed by major free software projects, mitigate this. They give you periodic sync points where you can get software which meets a certain standard of feature stability and robustness. But no software release is bug-free, and this is true for both free and proprietary software. In the Mythical Man-Month, Fred Brooks described the difficulties of system integration, and estimated that 25% of the time in a project would be spent integrating and testing relationships between components which had already been planned, written and debugged. Building a system or a Linux distribution, then, takes a lot longer than just throwing the latest stable version of every project together and hoping it all works.

By participating actively in the QA process of the project leading up to the release, and by maintaining automated test suites and continuous integration, you can mitigate the effects of both the shifting sands of unstable development versions and reduce the integration overhead once you have a stable release. At some stage, you must draw a line in the sand, and start preparing for a release. In the GNOME project, we have a progressive freezing of modules, progressively freezing the API & ABI of the platform, the features to be included in existing modules, new module proposals, strings and user interface changes, before finally we have a complete code freeze pre-release. Similarly, distributors decide early what versions of components they will include on their platforms, and while occasional slippages may be tolerated, moving to a new major version of a major component of the platform would cause integration testing to return more or less to zero – the overhead is enormous.

The difficulty, then, is what to do once this line is drawn. Serious bugs will be fixed in the stable branch, and they can be merged into your platform easily. But what about features you develop to solve problems specific to your device? Typically, free software projects expect new features to be built and tested on the unstable branch, but you are building your platform on the stable version. You have three choices at this point, none pleasant – never merge, merge later, or merge now:

  • Develop the feature you want on your copy of the stable branch, resulting in a delta which will be unique to your code-base, which you will have to maintain separately forever. In addition, if you want to benefit from the features and bug fixes added to later versions of the component, you will incur the cost of merging your changes into the latest version, a non-negigible amount of time.
  • Once you have released your product and your team has more time, propose the features you have worked on piecemeal to the upstream project, for inclusion in the next stable version. This solution has many issues:
    • If the period is long enough, your feature additions will be long removed from the codebase as it has evolved, and merging your changes into the latest unstable tree will be a major task
    • You may be redundantly solving problems that the community has already addressed, in a different or incompatible way.
    • Feature requests may need substantial re-writing to meet community standards. This problem is doubly so if you have not consulted the community before developing the feature, to see how it might best be integrated.
    • In the worst case, you may have built a lot of software on an API which is only present in your copy of the component’s source tree, and if your features are rejected, you are stuck maintaining the component, or re-writing substantial amounts of code to work with upstream.
  • Develop your feature on the unstable branch of the project, submit it for inclusion (with the overhead that implies), and back-port the feature to your stable branch once included. This guarantees a smaller delta from the next stable version to your branch, and ensures you work gets upstream as soon as possible, but adds a time & labour overhead to the creation of your software platform

In all of these situations there is a cost. The time & effort of developing software within the community and back-porting, the maintenance cost (and related unleveraged potential) to maintaining your own branch of a major component, and the huge cost of integrating a large delta back to the community-maintained version many months after the code has been written.

Intuitively, it feels like the long-term cheapest solution is to develop, where possible, features in the community-maintained unstable branch, and back-port them to your stable tree when you are finished. While this might be nice in an ideal world, feature proposals have taken literally years to get to the point where they have been accepted into the Linux kernel, and you have a product to ship – sometimes the only choice you have is to maintain the feature yourself out-of-tree, as Robert Love did for over a year with inotify.

While addressing the raw value of the code produced by the community in the interim, Mal does not quantify the costs associated with these options. Indeed, it is difficult to do so. In some cases, there is not only a cost in terms of time & effort, but also in terms of goodwill and standing of your engineers within the community – this is the type of cost which it is very hard to put a dollar value on. I would like to see a way to do so, though, and I think that it would be possible to quantify, for example, the community overhead (as a mean) by looking at the average time for patch acceptance and/or number of lines modified from intial proposal to final mainline merge.

Anyone have any other thoughts on ways you could measure the cost of maintaining a big diff, or the cost of merging a lot of code?

« Previous Entries Next Entries »