"Spend your waiting time reviewing others' contributions"

Contributor Story: Holger Brunn

"Spend your waiting time reviewing others' contributions"

Contributor Story: Holger Brunn

I hope you appreciated our last tour in Barcelona with Jordi Ballester Alomar. Today, our journey continues in Amsterdam where Holger guided us through the numerous channels of this beautiful city.

Hallo Holger, can you tell us about yourself?

I am Holger Brunn (@hbrunn) and live in Amsterdam in the Netherlands. The company I work for, Therp BV, specializes in Odoo customizations with a mild focus on charity organizations and NGOs. Given that the company consists exclusively of fervent open source advocates, contributing to the community is seen as an important task of every employee, so there is simply no question about being involved with the OCA and the community as a whole.

When and how did you discover Odoo?

My first contact with Odoo (TinyERP, OpenERP) was in 2008 when I wanted to replace the current administrative system of the student union I worked for. It is amazing how much the software has evolved since then, and being part of this evolution makes me a little proud.

Apart from being open source and the ability to self-host the code in order to remain the owner of the data, a very important factor for choosing TinyERP was that there were no extra costs per user – the kind of organizations I tend to work for have a huge amount of users and somewhat limited budgets, which makes per-user licensing models absolutely unfeasible.

Odoo text and image block

Why and how did you start contributing to Odoo?

In the first few years, I was just a user who did some in-house programming which simply didn't lend itself very well for publication. Also the contribution mechanisms still had some way to go. Further, my daytime job was something else, so I couldn't commit a lot of time to contributions.

Starting my current position at Therp, this changed entirely as employees there are given all the time and resources they see fit to contribute, which is something I am very happy with.

What do you do to contribute?

All bug- and performance-fixes I come across in my daily work of course, and modules that result from customer requests. Our contracts include that clients commit to us trying to publish as much of the code we write for them as is sensible. So the usual work flow is to try to generalize a client's request to a module that is useful for everyone, and possibly add a small customer-specific module on top of that which implements the things that would not be interesting for a bigger audience.

I like tinkering with the core mechanisms a lot, which resulted in some often small but quite nice modules in the server-tools project, base_suspend_security is an example for this. Then there is a bunch of modules in the web project that are meant to enhance usability, my current favorite ones are web_search_autocomplete_prefetch and
web_ir_actions_act_window_message, but web_advanced_search_x2x is also one that made me happy. Other projects I contribute to regularly are knowledge, website, social, the banking projects, the Dutch localization and OpenUpgrade. The latter has been criticized in the past, but for open source purists, it is a very important part of the open source vision that also the migration process is open .

Further, I make PRs all over the place wherever a bit of code I am busy with currently fits.

Odoo image and text block

What was your main challenge when you started contributing?

It took me quite some time to accept the uncodified implicit conventions. Different reviewers had different, and sometimes contradicting, standards for reviews.

Sometimes, I also grew frustrated by a pull request (back then, those were called merge requests on Launchpad) being stalled for months because of some technicality.

How did you overcome this challenge?

For the first point, I didn't do much, but other community members thankfully invested a big amount of time to agree on sensible, explicit conventions that can be used to evaluate a contribution in an objective way. Also the work people invested in the code quality tools is very valuable here, thanks for that!

The second point still is an issue sometimes. Unfortunately, probably everyone, myself included, can't commit as much time as they would like in community work, so you just have to get used to it. Things can progress slowly sometimes. It would help if more companies working with Odoo would see the value in an active contribution strategy, this would add more people to share the work load with.

Does contributing to Odoo meet your expectations and why?

Being socialized with open source software, I did not really expect anything from contributing but took it for granted that this is simply something you do. So I cannot really answer the question, but I can write an entirely unidealistic reason why it is a good thing: At Therp, we don't do any advertisements at all, but like minded people find us by the contributions we made. In a certain sense, this is free advertising for us and attracts the kind of customers we want to work for.

A second one is that some of the most interesting things I learned about programming in general and Odoo specifically was by having my code reviewed or by reviewing other people's code.

Anything you want to share to a new contributor?

Do not get frustrated by the vast amount of conventions people will point you to. They might seem arbitrary in the beginning, some of them actually are, but they help a lot to improve the overall code quality. They also make your internal projects better.

Also do not get frustrated if it takes a while for reviews to happen in the first place. We do our best to do justice to your contribution as fast as possible, but there is only so many hours in the day. Spend your waiting time reviewing others' contributions, you will learn a lot and sometimes, it is actually fun.

Holger, heel erg bedankt. Ga zo door!

More information about Holger on:

Let's now fly out of Europe for our next contributor...

Leave a comment

You must be logged in to post a comment.