Learning to speak like a native Mozillian

>> Sunday, June 24, 2012

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

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 

Where bugs rain down from
Mozilla: https://bugs.mozilla.org
Eclipse: https://bugs.eclipse.org

The source of all truth, which may contradict itself
Mozilla: http://wiki.mozilla.org
Eclipse:  http://wiki.eclipse.org

The version control system(s) to alternately love and shake your fist at
Mozilla: Hg with some Git, Subversion, CVS and Bazaar
Eclipse:  Git with a side order of CVS and Subversion.  (Side orders will be deprecated soon)

Image ©clsung, http://www.flickr.com/photos/clsung/310886130/sizes/z/in/photostream/ licensed under Creative Commons by-nc-sa 2.0

Colloquial expression for the associated open source foundation
Mozilla: MoFo
Eclipse: the foundation

Time for liquid refreshment
Mozilla: MFBT
Eclipse: Beer o'clock

Image ©Cambridge Brewing Company , http://www.flickr.com/photos/cambridgebrewingcompany/5619040409/sizes/z/in/photostream/ licensed under Creative Commons by-nc-sa 2.0

Communication channels in order of importance
Mozilla: IRC,  mailing lists, Bugzilla
Eclipse: Bugzilla, mailing lists, Twitter, IRC

Image ©blakespot, http://www.flickr.com/photos/blakespot/5240888169/sizes/z/in/photostream/ licensed under Creative Commons by-nc-sa 2.0

Code review
Mozilla: review flag in Bugzilla for all patches
Eclipse:  review flag in Bugzilla at the end of the release cycle, others use Gerrit all the time

Incredibly smart and friendly people with a passion for delivering fantastic open source software
 +1 Mozilla and Eclipse

What have I missed?

Disclaimer: This is just based on my own personal experience.  YMMV.


Challenges in Release Engineering

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

2.  Scaling your build to manage infrastructure utilization, tooling to manage that infrastructure and optimizing build parallelization is extremely challenging.  Developers will consume all available build infrastructure and then ask for more.  Scaling build infrastructure to accommodate future growth is an ongoing process. 

3. Proliferating numbers of platforms on which to build, test and run performance metrics add complexity.

 Image ©misterbisson, http://www.flickr.com/photos/maisonbisson/109211670/sizes/o/in/photostream/ licensed under Creative Commons by-nc-sa 2.0 
4.  Update game adventures.  When you have an open platform that included the installation of third-party components, it's inevitable that you will encounter unexpected update cases in the wild that weren't reflected in test cases.

5. Frequent releases generate faster user feedback on new features.  However, additional releases are expensive for the release engineering, quality assurance and release management teams.  Each additional release eats time, both people and machine.  Making the community aware that builds are not free is an ongoing communication exercise.

Image ©aarongeller, http://www.flickr.com/photos/aarongeller/360135019/  licensed under Creative Commons by-nc-sa 2.0
6.  You can have great documentation and process but the accumulated technical and tribal knowledge required to resolve a complex and broken build quickly is not earned by anything other than experience.

  Image ©Ian Muttoo, http://www.flickr.com/photos/imuttoo/2631466945/sizes/z/in/photostream/ licensed under Creative Commons by-nc-sa 2.0 
7.  If you can compile your code, this doesn't mean there won't be issues with packaging, signing and testing it.  Making a build available in a format for millions of users to consume > code that compiles.  Education is needed to make people aware of this distinction. 

What release engineering challenges do you face?


  © Blogger template Simple n' Sweet by Ourblogtemplates.com 2009

Back to TOP