Luis Ibanez

5301 points
User profile image.
Chicago, IL

Luis Ibáñez works as Senior Software Engineer at Google Inc in Chicago. Opinions expressed in this site are his own.You can find him in github at:  http://www.github.com/luisibanezand in twitter at: http://www.twitter.com/luisibanezHe previously worked as a Technical Leader at Kitware Inc., and Director of Open Source Community Development at the Open Source EHR Agent (OSEHRA). At Kitware he was closely involved in the development of open source software for medical imaging applications, in particular, working with the Insight Toolkit (ITK).Luis is a strong supporter of Open Access, and one of the editors of the Insight Journal, an OA Journal that enforces the verification of reproducibility. In collaboration with other instructors, Luis taught a course on Open Source Software Practices at RPI between 2007 and 2013, and also at the State University of New York at Albany between 2011 and 2014.Luis Ibáñez received a B.S. in Physics from the Universidad Industrial de Santander (Bucaramanga, Colombia) in 1989 and a M.S. in Optics from the same university in 1994. He received a D.E.A and Ph.D. degrees from the Universite de Rennes I (Rennes, France) in 1995 and 2000, respectively. In 1999, Luis Ibáñez joined the Division of Neurosurgery of the University of North Carolina at Chapel Hill and participated as a member of the MIDAG and CADDLab groups. His work at UNC was related to the development of algorithms for 2 and 3D registration applied to image guided surgery. He also participated as developer of the INSIGHT Registration and Segmentation Toolkit sponsored by the National Library of Medicine. Luis Ibáñez joined Kitware, Inc. in February 2002 where he was one of the main developers of the Insight Toolkit (ITK) coordinating its maintenance with other developers and the user community; he is also one of the main developers of the Image Guided Surgery Toolkit (IGSTK) and participated in crafting the operational principles of the Insight Journal. Luis Ibáñez is a strong supporter of Open Access, and the verification of reproducibility in scientific publications and is a regular speaker in ITK training courses, and in events disseminating the principles of Open Source. In August 2014, Luis joined Google Inc as Software Engineer, to work with the corporate engineering team in New York city.

Authored Comments

Your point is well taken, and your sentiment is shared.

We have talked often in this forum about the need for mastering soft skills, as a key requirement for fostering the growth and prosperity of an open source community.

This is certainly something that we all can do better in the communities that we participate in. It actually takes training and discipline to be mindful of the human sensitivities in communities.

That said, the popular perception of the Kernel community being harsh, is mostly nourished by the few colored posts from the Linux Kernel Mailing List (LKML: https://lkml.org/) that make waves in the websphere.

The daily reality of the Linux Kernel community is a friendlier and calmer one. One has to realize that the LKML carries more than 17,000 emails per month. (see for example the flow of this last October: https://lkml.org/lkml/2013/10). This is about 550 emails per day (see for example, today Nov 12: https://lkml.org/lkml/2013/11/12). The vast majority of these messages are polite and civilized, and talk about ... well... programming. Out of this collection of thousands of messages, a few, from time to time, go viral and make news, while a massive amount of work from over 1,200 developers flows quietly, in the form of 11,000 patches, into a new release every 70 days.

The efforts for bringing younger generations into the Kernel community (or any other open source community for that matter), would have to focus on creating a safe, friendly and *fun* environment where newcomers are welcomed, and where they can learn the ropes and hone their skills progressively. A great and successful example of one of such initiatives is the Outreach Program for Women [OPW: https://opensource.com/business/13/11/linux-kernel-interns-outreach-women ]. Where a team of seven interns emerged victorious from the training experience, and became, as a group, the 11th largest contributor to the Linux Kernel release 3.12.

Another important point to grasp is that there are a large number of easy patches that are needed in the Kernel, and that are waiting for newcomers and beginners to work on. These patches can be used as training exercises with relatively small effort.

We will write about similar efforts in a follow up post, where we will talk about training exercises we did for Linux Kernel contributions at two colleges.

It is true that a lot of interesting activity happen in user space, and that talent will be welcomed there.

That said, this shouldn't deter newcomers from taking a peek at the deep Kernel. There is abundant material on easy patches to be done all across the board, and many of them are within the reach of beginning developers. Such patches are excellent material for training new developers.

The work load distribution of open source projects follow the long tail of a power log. This is the 80/20 rule, where 80% of the work is done by 20% of the people (http://en.wikipedia.org/wiki/Pareto_principle). Which doesn't diminish the importance of the 20% of the work that will be done by 80% of the people, particularly because this is how they will be trained so that some of them become part of that 20% that makes 80% of the changes. In other words, the shape of long tail in the distribution is also a prediction of the demographics of the community across time.

Therefore, there is room for thousands of contributors to make minor changes that could be just a couple of lines of code. These are changes, that more experienced developers could make, but that will distract them from dealing with more complex issues. There is therefore a continuous opportunity to match developers' skills to challenges of specific level, and to create the conditions where everybody wins. The beginners improve their skills, and the code base get better at the same time. This is an ideal situation to use real Kernel patches as training material for any programming classes, and in particular, those on operating systems, or on large software systems.