Skip to content

The Motivation for Writing SyncEvolution

On the introduction page for SyncEvolution I have a short section on why I started with this whole synchronization thingy. That section is a bit stale, so let’s revisit this topic. If you are interested in what makes an open source developer spend his time on writing code, documentation and tests instead of watching TV, then keep reading.

Scratching one’s own Itch

The proverbial itch in my case was a growing interest in mobile devices and the problem of keeping my address book in sync on all of them. What’s the point of a mobile phone if it doesn’t have list of all the people you might want to call while away from home? If it also has their full postal address that’s even better, because then you can send them a postcard while on vacation – you know, this piece of paper that you write on with a pen…

I intentionally bought a mobile phone with SyncML support because I did not want to depend on a proprietary communication protocol and Windows-only software implementing it. From a technical and philosophical point of view I prefer solutions that I can analyze and understand, from a practical point of view I need software which works under Linux because I keep all my contacts in Evolution where they are readily available when writing emails.

When looking at some of the existing solutions (MultiSync and its successor OpenSync) I found that they were not yet reliable enough to trust them with my data and (partly because of the much wider scope) wouldn’t be ready anytime soon. The Funambol C++ client looked promising (but still required quite some work, among it porting to Linux and adding a test suite), so after some initial reluctance I adopted the stagnant “sync4jevolution” SourceForge project with the goal to turn it into a reliable, working SyncML client for Evolution. But writing software for yourself and then releasing it “as is” is one thing, developing for others something else.

Writing Software for Users

With great power comes great responsibility – I’m not a super hero, but I believe that as soon as software is released to the public, then the original author has a certain responsibility to users. Releasing software which looks promising and lures people into trying it out only to discover that it does not live up to the expectations or even destroys data is worse than not releasing that software. After all, it costs these people time and effort. So my goal was to have a usable SyncEvolution right from the start and then follow through with fixing user problems and adding requested functionality. It is one way to give back something in exchange for other free software that I myself use daily. For the non-developers among us: there are other ways, testing/writing documentation/helping other users are equally important!

The automated test suite for SyncML clients (originally part of SyncEvolution, now migrated into the SyncML library) was written to avoid regressions and improve test coverage. Calendar support was added not because I needed it (far from it), but because users asked for it. I had documentation even before the code (I usually do that because it leads to better code), but it was only a brief README with the reference information. The www.estamos.de site was created mostly as a platform for additional information about SyncEvolution. It’s still not good enough, but I’m working on it…

The amount of work required to do a full software project well can be intimidating and I knew what I was getting myself into (after all, it wasn’t the first time). So encouraging feedback from users is important to keep going.

User Feedback

Now that’s the hardest part. Think about it for a second: how much open source software do you use without ever contacting the authors? If you do, is it about problems or how happy you are about getting the software for free? Luckily there were only few bug reports for SyncEvolution, but (no surprise) even less reports of successful usage.

Download statistics were pretty much the only indication how much SyncEvolution was used. The Maemo project is currently trying to encourage more developers to publish their programs in the “extras” repository for the Nokia Internet Tablets, but so far they don’t have download statistics for that. The Maemo SyncEvolution package is still in its own repository, partly because I wasn’t sure whether it would meet the quality requirements for “extras”, but partly also because I then wouldn’t know whether people really install that package. At the moment all downloads from www.estamos.de contribute to the SourceForge download statistics because they are internally redirected, but SyncEvolution is now too successful and (rather sooner than later) will be mostly distributed by others, so I guess I’ll have to live without meaningful statistics. For example, users of the iPhone port will typically get it as part of the Funambol GUI from Funambol or the “ste” repository. Fedora comes with SyncEvolution, and I hope that other distributions will also pick it up.

With SyncEvolution 0.7 pre1 I encouraged users to consider SyncEvolution as postcardware or to donate via PayPal, without making it a requirement. So far that hasn’t had any effect, but I’ll give it a bit more time before giving up on that idea again.

Publicity

It wouldn’t be honest to not mention this point. Yes, I will do anything to get my name into the tabloids together with the rich and famous – as long as I can do it by writing software instead of scandalous self-promotion… The iPhone port has created quite some attention, which is not only good for my ego, but also for SyncEvolution because it might encourage other developers to work with the code and perhaps adapt it to other data sources or (like Frederik did) write a GUI for it.

Fun and Learning

Gosh, I must have been way too much into release mode when I wrote this post yesterday: I completely forgot to mention that despite all the work that comes with “writing software for users” it is also fun to solve problems and/or see a new feature work for the first time. Learning new things (for me at least) belongs into the same category as “fun”. The same is even true for fixing bugs, as annoying and often embarrassing they are. In particular the non-trivial bugs can put up quite a fight until they can be tracked down and slain – think of bugs the size of men or larger, not your ordinary cockroach…

Hmm, I should check my TV program, perhaps I can find “Tarantula” on some channel.

Post a Comment

Your email is never published nor shared. Required fields are marked *