New blog location
>> Wednesday, May 17, 2017
I moved my blog to WordPress.
New location is here https://kimmoir.blog/
Open Source Release Engineering
I moved my blog to WordPress.
New location is here https://kimmoir.blog/
I received this very kind email in my inbox this morning.
"David Williams has expired your commit rights to the
eclipse.platform.releng project. The reason for this change is:
We have all known this day would come, but it does not make it any easier.
It has taken me four years to accept that Kim is no longer helping us with
Eclipse. That is how large her impact was, both on myself and Eclipse as a
whole. And that is just the beginning of why I am designating her as
"Committer Emeritus". Without her, I humbly suggest that Eclipse would not
have gone very far. Git shows her active from 2003 to 2012 -- longer than
most! She is (still!) user number one on the build machine. (In Unix terms,
that is UID 500). The original admin, when "Eclipse" was just the Eclipse
Project.
She was not only dedicated to her job as a release engineer she was
passionate about doing all she could to make other committer's jobs easier
so they could focus on their code and specialties. She did (and still does)
know that release engineering is a field of its own; a specialized
profession (not something to "tack on" at the end) that just anyone can do)
and good, committed release engineers are critical to the success of any
project.
For anyone reading this that did not know Kim, it is not too late: you can
follow her blog at
http://relengofthenerds.
You will see that she is still passionate about release engineering and
influential in her field.
And, besides all that, she was (I assume still is :) a well-rounded, nice
person, that was easy to work with! (Well, except she likes running for
exercise. :)
Thanks, Kim, for all that you gave to Eclipse and my personal thanks for
all that you taught me over the years (and I mean before I even tried to
fill your shoes in the Platform).
We all appreciate your enormous contribution to the success of Eclipse and
happy to see your successes continuing.
To honor your contributions to the project, David Williams has nominated
you for Committer Emeritus status."
Thank you David! I really appreciate your kind words. I learned so much working with everyone in the Eclipse community. I had the intention to contribute to Eclipse when I left IBM but really felt that I have given all I had to give. Few people have the chance to contribute to two fantastic open source communities during their career. I'm lucky to have that opportunity.
| My IBM friends made this neat Eclipse poster when I left. The Mozilla dino displays my IRC handle. |
When I was in Toronto for our last work week, I mentioned to one of my colleagues that I was a second generation geek. He replied something to the effect of "There are families that have been fishing lobster for eight generations but not many second generation geeks."
I'm a second generation geek thanks to the influence of my Dad. My sister also works in the software industry, as a technical writer. My parents both had a tremendous influence on us. If it wasn't for their support and encouragement, I doubt that we would be where we are today.
My Dad's first technology job was working at Burroughs in Vancouver, BC as a field service technician and manager. He would travel to customer sites to fix their computers, usually at banks, insurance companies or government. Back then computers were very large, not very common, and they had a longer lifecycle than we see today. He had a briefcase full of tools to fix them, given that most problems were mechanical or electrical in nature, as opposed to software.
About a decade later, our family moved across the country and he started working as a technical services manager at a small software and services firm in Halifax, NS. This was the dawn of the PC era, and he brought home a succession of computers for him to learn about, as well as the rest of our family. Dad would bring home stacks of computer magazines and manuals to read at
nights on weekends, which I started to read as well. We had many
spirited discussions about technology, and what the future would hold.
In addition to having a wealth of technical knowledge, my Dad is also an
accomplished woodworker and builds beautiful
furniture. He bought my sister and I hammers so we could work along with him in the workshop. There was also an abundance of Lego, his old Meccano kit, and stacks of science fiction books. Christmas meant the inevitable gifts of conference swag in stockings, or a Linux book under the tree.
Over the years, I have returned the favour and given my parents a lot of the swag I've received at work. I'm sure they have the finest collection of Eclipse wear in Nova Scotia. But this year begins a new tradition.
![]() |
| My Dad loves Firefox too |
Late Monday night, we moved a new testing platform into production. We have 80+ shiny new Mountain Lion slaves running tests for desktop builds, with several reserved for staging tests. There are a few issues with failing tests that are being tracked in bug 786084.
![]() |
| Image ©ekai, http://www.flickr.com/photos/ekai/457004988/ licensed under Creative Commons by-nc-sa 2.0 |
Aside from gaining experience with the technical requirements of a new job, there's also the challenge of learning the terms within the community as well as cultural norms. There's time spent finding the right code repositories, documentation and test servers. Who's the right person to cc on a bug or ping in IRC? When learning a foreign language, they say that if you're still translating in your head before you speak, you're still learning. Here are some terms and conventions I learned during my first weeks at Mozilla.
Release some code to a production branch or stream on the canonical repo
Mozilla: to land
Eclipse: to release or commit
People
Mozilla: Lots of people named John, Chris and Mike, many Canadians
Eclipse: Lots of people named John, Chris and Mike, Canadians represent too
![]() |
| Image ©meddygarnet, http://www.flickr.com/photos/blakespot/5240888169/sizes/z/in/photostream/ licensed under Creative Commons by-nc-sa 2.0 |
![]() |
Image ©clsung, http://www.flickr.com/photos/clsung/310886130/sizes/z/in/photostream/ licensed under Creative Commons by-nc-sa 2.0
|
![]() |
| Image ©Cambridge Brewing Company , http://www.flickr.com/photos/cambridgebrewingcompany/5619040409/sizes/z/in/photostream/ licensed under Creative Commons by-nc-sa 2.0 |
![]() |
Image ©blakespot, http://www.flickr.com/photos/blakespot/5240888169/sizes/z/in/photostream/ licensed under Creative Commons by-nc-sa 2.0
|
I've been at Mozilla since the end of April. The learning curve is steep but I'm having fun climbing. My coworkers are very friendly and helpful while answering my barrage of questions with respect to how things work. One of the things I've noticed is that there are many common challenges in release engineering, no matter what you're building. Here's my list so far:
1. Signing builds is like a falafel sandwich. (Always includes some pita).
![]() |
| Image ©chotda, http://www.flickr.com/photos/santos/3531853459/sizes/z/in/photostream/ licensed under Creative Commons by-nc-sa 2.0 |
![]() |
| Image ©misterbisson, http://www.flickr.com/photos/maisonbisson/109211670/sizes/o/in/photostream/ licensed under Creative Commons by-nc-sa 2.0 |
![]() |
| Image ©aarongeller, http://www.flickr.com/photos/aarongeller/360135019/ licensed under Creative Commons by-nc-sa 2.0 |
![]() |
| Image ©Ian Muttoo, http://www.flickr.com/photos/imuttoo/2631466945/sizes/z/in/photostream/ licensed under Creative Commons by-nc-sa 2.0 |
Eclipse family: March 23 will be my last day at IBM. I'm happy to announce that I'll be joining the Mozilla Release Engineering team in April.
![]() |
2011 was an exciting year in the Eclipse community. From my corner of the Eclipse universe, he's what it looked like:
One book chapter, many thanks
![]() |
| My sneakers after a 19K training run through deep slush |
I had some interesting discussions on Twitter this afternoon.
![]() |
| I don't know if the percentage of women at Eclipse is really 1% but it's pretty low.* |
My presentations from EclipseCon Europe are now available on slideshare.
The first one is the story of the Eclipse and Equinox team's migration from CVS to Git.
Over a month ago, I watched this keynote by David Eaves that he gave at DjangoCon. Yes, I'm way behind on the list of things I'd like to blog about. I blame Bugzilla :-) Also, quite a few people at EclipseCon Europe came up to me and mentioned that they really enjoyed reading my blog. Thanks - I enjoy writing!
David Eaves is a negotiation consultant. He helps people on opposite sides of an issue come to an agreement, and has clients in open data, government, industry, and open source communities. He has done work at Mozilla to help manage contributor engagement and implement measures to keep contributors working in the community.
He starts off by telling the story, that as part of of his work with Mozilla, he thinks that he should submit a bug. He submits his first Thunderbird bug and announces on Twitter or Facebook that he's excited to submit his first bug. To which he gets the reply "I bet it's a duplicate". According to this presentation, 50% of all bugs are duplicates. It may be a duplicate, but this response isn't the best approach to encouraging future participation from a new contributor.
He then says that most open source communities don't have financial capital. They don't have money flowing in to influence people. "All you have is social capital". Social capital consists of the people that contribute to your community and make it successful. In theory, in a corporation, human resources tracks how to retain and manage its people. In open source, we spend very little time managing our social capital or even better, tracking it.
He then continues that one of the mantras of open source is that it's a meritocracy and your coding skills are the key to success within the community. But if you look at people who have spent a lot of time in an open source community and are considered leaders, many of them spend a lot more time working with people and managing their community as opposed to coding. To which he says "We pull people in based on their coding skills, and we promote people based on their negotiation skills". Also, he remarks that nobody tells us that, and that we all stress that technical skills trumpet negotiation skills despite the evidence to the contrary.
He then gives examples of funny or misunderstood Mozilla bugs. He states how it's harder to communicate with people when only via the written word. I find that myself. I've met quite a few people at conferences who I've found to be rude in Bugzilla to only find that in person they seem like a totally different person. Reasonable. Friendly. Helpful. Anyways, since Bugzilla is a written medium he suggests that the best way to interact on it is to ask questions. He states that often people just have a solution in mind as a bug fix and aggressively push their solution where in fact they should ask the user what they want to do in the first place. Also, you should paraphrase and repeat what the user said to gain understanding, acknowledge the problem and advocate for a solution. All great advice!
The next section of the talk discusses the architecture of a community. Fork used to be a four letter word in open source But with the advent of GitHub, it's not, but rather a way to empower the user. It also absolves you from seeking anyone's permission before contributing. He says we need to design our communities to "Architect for cooperation and away from collaboration" It's great if a new contributor can start fixing a problem without the transaction costs associated with interacting with a committer. We can spend our time on other tasks. He also states that we need to empower the lowest people on the stack, such as those triaging bugs. He also remarks that immediately marking a bug as invalid without acknowledgement of the effort required to report it doesn't build community loyalty.
![]() |
| GitHub Octocat |
Ten years ago, we were burning the midnight oil getting Eclipse 1.0 ready to release. I offer you proof
![]() |
| Me stuck behind server rack. Yes, I'm wearing COWS shirt. Please don't judge me. |
I've been thinking a lot lately about open source history. I'm in the midst of preparing material for a presentation that John Kellerman and I will be giving at EclipseCon Europe about the history of Eclipse. Last week an interesting video crossed my twitter feed. It was a talk by Mitchell Baker on the history of Mozilla. Mitchell is the Chair of the Mozilla Foundation and Mozilla Corporation and has been involved in this community for many years. Her title is Chief Lizard Wrangler. That's the best job title I have ever heard. Well, being called an astronaut would be fun too but you get the idea. According to Wikipedia, she's a also skilled trapeze artist. I like learning about people with interesting hobbies.
In the video, she talks about the history of Mozilla, which started in 1998. She describes the tension between Netscape the corporation and Mozilla the community. For instance, the belief in the Mozilla community that commit rights should be earned and voted on by your peers, not just assigned based on your employer. It's a really interesting to learn about the conflict in those early years at Mozilla and how they worked so hard with very few resources to be where they are today.
One of my favourite lines from the talk is that "Technology alone does not change people's lives. Our opportunity in the browser is to have a product that touches people." Also, she states that the problem with a lot of open source projects is that they are irrelevant to the marketplace and don't treat their users very well. For instance, calling a user stupid isn't going to make their life better. "You need to make a product that is elegant and beautiful and powerful under the covers but that people love." Mozilla has a bit of a different outlook that the Eclipse community because their flagship product Firebox is used by everyday consumers. Eclipse components are consumed by developers in the form of open source packages that the coordinated release provides, but at the same time many people consume components in commercial products that build upon our open source offerings.
Some other memorable lines "UI is always the most contentious issue". Well, at Eclipse we never argue about UI. Wait....hmm..maybe...this bug has a few contentious comments.....
This talk really resonated with me. Eclipse and Mozilla are two well known open source communities with different histories but ultimately both are very successful. I highly recommend taking the time to listen to it.
Happy Ada Lovelace Day from Ottawa!
![]() |
| Homeowner forgot to visit Home Depot |
| Let's pretend these apes are monkeys. |
I recently read some academic papers that quantify some release engineering practices in open source communities. Very interesting.
The first one, "An Empirical Study of Build Maintenance Effort" (PDF), looks at how the time spent maintaining the build impacts the developers in a project. It examines build coupling which refers to the how often changes in source code require changes in build code, as well as build ownership, which is the proportion of developers on the team who are responsible for maintaining the build. The projects studied were ArgoUML, Hibernate, Eclipse (SDK), Jazz, GCC, Git, Linux, Mozilla, PLlot and PostgresSQL.
Here are some snippets I found interesting in this paper. Note that when they refer to "Eclipse-core" they mean the Eclipse project's build. In this paragraph, they are talking about build coupling and how to reduce it
"In Eclipse-core, the coupling is reduced to 16% and in Jazz the observed coupling is a mere 4%. Eclipse-core and Jazz both leverage the automated Eclipse Plugin Development Environment (PDE) build technology. ..... Since the developer must only maintain the high-level build.properties file (via the IDE), the daily build maintenance is reduced".
Thank you PDE family. Dynamically generating Ant scripts at build time to compile and package our bundles makes us look good when compared with other open source projects.
"Other researches have found that the Linux build engineers have spent a considerable amount of time to make their build system as simple as possible for developers, as the expense of a very complex and hard to maintain core build system machinery. "
People always assume that writing software is hard, but for some reason building software should be easy. Build systems are complex beasts and obfuscating the complexity for the user is just as difficult as it might be when writing a full scale application. Writing good software is difficult, and so is constructing an elegant and effective build system. It's just a different skill set.
"Up to 79% of source code developers and 89% of test code developers are significantly impacted by build maintenance, yet investment in build experts can reduce the proportion of impacted developers by 22% of source code developers and 24% of test code developers."
So it looks like if you hire a release engineer and the productivity of your developers will increase. You would buy a new machine to make the build faster, why not hire a fantastic release engineer and make the build better? The numbers indicate an great return on investment.
![]() |
| Building complexity |
Working in an open source community is great, but there are also some disadvantages. From my admittedly narrow world view as a committer working in the Eclipse community as an employee of a large corporation, here are some of my observations.
Here are some of the ways I've seen a build killed during my years as an Eclipse committter.
1. Lightning. Ottawa has tremendous thunderstorms in the summer. What also happens during the early summer? Our coordinated release. One summer, a transformer next to our office was hit by lightning. Boom. No power for about 12 hours. Bye bye build.
© Blogger template Simple n' Sweet by Ourblogtemplates.com 2009
Back to TOP