Managing Humans by Michael Lopp

What? A “management” book?!

Wait. Wait. Wait. This book is different.

Its only 209 pages, in compact standalone chapters collected from a series of blogposts. This makes it a quick read, and also easy to pick up/put down whenever you have a few minutes. Oh, and it’s written by a former Netscape employee, in a readable, down to earth style.

If thats not enough encouragement, try this quick experiment.

Next time you’re having a coffee, read through the first few pages of this book. If you’re not hooked by the time you finish your coffee, move on… with a clear conscience. I couldn’t put it down, so bought it. After reading it cover to cover, and re-reading some chapters multiple times, I came back to buy a bunch more copies to give to friends.

If you are a manager at work, or are responsible for coordinating or mentoring others, you should read this.

If you have a manager at work, you should read this. It’ll give you a better understanding of who you are dealing with, some of the behind-the-scenes tradeoffs that managers wrestle with every day, and also help you figure out if your boss is just marking time while pushing paperwork around, or really trying to make a difference while being a good mentor. Tall order in 209 pages, I know, but I really liked this book.

Once you finish reading the book, if you want more from the same author, you should follow his blog at: http://www.randsinrepose.com.

(Thanks to @Morgamic for organizing a recent event that had copies of this book in the office – that prompted me to dust off and publish this half-written post.)

Infrastructure load for February 2012

  • #checkins-per-month: February set another new record with 4,027 checkins for the month. We’ve now had 4 months in a row setting new records: January2012 (3,962 checkins), December2011 (3,262 checkins), and November2011 (3,209 checkins).
  • #checkins-per-day: We set a new record of 223 checkins-per-day on 23-feb-2012. In February, 17 of the 21 working days had over 150 checkins per day, and of those, 3 days had over 200 checkins per day (208 on 21feb, 222 on 22feb, 223 on 23feb). This was between scheduled releases, but as Aki notes, this was a few days before Mobile World Congress.
  • #checkins-per-hour: We set a new record of 9.7 checkins-per-hour. Peak load time is between 14:00-15:00 PDT. Note this record includes weekends, which are mostly idle, so the real checkins-per-hour on work days is higher.

mozilla-inbound, fx-team:
Its very cool to see how developers have taken to using mozilla-inbound and fx-team as integration branches, instead of having everyone landing directly into mozilla-central.

  • In the chart above, note that the number of mozilla-central checkins (178) continues to decrease, while the number of checkins on mozilla-inbound (1085) has increased.
  • In the past whenever we had to unwind a large backlog of pending checkins, or back out a complicated bustage, we’d keep the mozilla-central tree closed for all checkins for the duration… which blocked all landings. However, now with mozilla-inbound and fx-team as integration branches in addition to mozilla-central, it means that developers have the option to continue landing their unrelated patches on an open integration branch while the cleanup work continues on the closed branch. In theory, if you give smart humans a easy way to route around a blockage, they’ll quickly start to use it so they can continue to get things done. In reality, very cool to see it actually happening.

mozilla-aurora, mozilla-beta:

  • ~3% of our total monthly checkins landed into mozilla-aurora, slightly down from ~3.5% last month.
  • It is interesting to see ~2.3% of our total monthly checkins landed into mozilla-beta. This is a relatively large percentage, as our trend since we started has been a very consistent ~1% of monthly checkins landing into mozilla-beta. Not sure if February is an anomaly, or if this is the start of a trend, so lets watch this.

(Standard disclaimer: I’m always glad whenever we catch a problem *before* we ship a release; it avoids us having to do a chemspill release and we ship better code to our Firefox users.)

misc other details:

  • Pushes per day

  • Pushes by hour of day

Mozilla in Cambodia: BarCamp Siem Reap, March 2012

This weekend (March 24-25 2012), the first BarCamp Angkor was held in Siem Reap, Cambodia. After my recent visit to Cambodia, I’m sad that I couldn’t be there to meet all the familiar friendly faces.

For me, the big highlight was Vannak Eng driving his motorcycle from Phnom Penh to Siem Reap (and back!) in order to attend, and also to help spread the word that the Khmer version of Firefox has progressed from Aurora and is now available in Beta. One step closer to the official Khmer Firefox release.

If you want to help test the beta version of Khmer Firefox, you can download it from here. Note: if your computer setup does not have Khmer fonts pre-installed, you can download Khmer fonts from here or here.

As I finished writing this, Vannak has just arrived safely back home in Phnom Penh after a long long ride. Well done, Vannak, and welcome home.

Mozilla in Cambodia: Meetup in Phnom Penh, January 2012

While I was in Cambodia in January 2012, I helped organize a meetup with the people volunteering on the Khmer localization of Firefox. A total of 28 people met up in the East West Institute in Phnom Penh on Monday 23rd Jan 2012, which was way more people then I expected to show up, especially given that it was Chinese New Year that week.

Given the larger-then-expected turnout, I was super grateful to Mark West for providing such a large venue for the meetup, as well as boosting up the internet connection at East West Institute for the day.

We started with introductions – not just me introducing myself, but everyone introducing themselves, where they worked, etc. After all, I had never met any of these people in person! We’d been interacting together by email/irc/bugzilla for a couple of years now, so it was strange, yet weirdly comfortable and exciting, to finally meet up with everyone in person for the first time. It was also interesting to discover that some of the people who lived in Phnom Penh and wanted to help with the Khmer localization had also not met others who also lived in Phnom Penh – until that meetup.

Most of the afternoon was spent describing how Release Engineering works at Mozilla. This focused on describing our Continuous Integration infrastructure, the technologies used to make it work, how our systems were setup, as well as describing the “new” Rapid Release processes which this infrastructure made possible. There was lots of Q&A, and whiteboard discussions to explain the process for developers reviewing patches, the process for patches landing in the mozilla-central/mozilla-aurora/mozilla-beta branches as part of the rapid release process, as well as how the localization process works since Mozilla switched to the rapid release model. Everyone seemed to be excited and curious to learn more, asked great questions, and we went several hours without taking any break!

Next, it was my distinct pleasure to handover the proceedings to Vannak Eng, to start a localization sprint. Vannak has been working really hard behind the scenes on the Khmer localization of Firefox, and had managed to localize 96% of the strings in the previous months. In recognition of all his work, Vannak had been granted commit privs to the Khmer repo only just a few days before this Mozilla meetup. With his newly-granted commit privs, and the help of everyone else in the room, Vannak led a localization sprint that evening, and another sprint the next morning – they quickly hit 100% strings translated to Khmer. We still have to get through the Mozilla locale approval process, but this was a wonderful milestone to hit.

We ended the meetup by having 20 of us go to Romdeng for dinner, to continue chatting until very late in the night amidst the heat, humidity, great food, friendly staff and the occasional friendly gecko running on the walls.

(Romdeng is the latest venture from Mith Samlanh – a great organization that I encountered in my first visit to Cambodia in 2006, and it was great to see how much they’ve grown since then. They are a local not-for-profit organization that does wonderful work with practical on-the-job training for street children in Phnom Penh. Click here for more background info about Mith Samlanh. Their restaurant training is so great that they are rated #1 on tripadvisor.com and I agree.)

The next few days in Phnom Penh were busy with a series of interviews with the press, two published articles (TheCambodiaDaily and AsiaLifeGuide). There were also meetings with local Khmer ISPs, and the Cambodian Android User Group (who were constructing Khmer font for Android… an obvious prerequisite for any localization efforts on Android phones/tablets!). More on both of these in later posts, but after all the work of the previous few years, I found those hectic few days to be exciting, rewarding, nerve-wracking, humbling and fulfilling all at the same time.

If you are interested in helping with Mozilla’s Khmer localization efforts, please contact Vannak or anyone else on the Khmer team here.

I’d like to end by giving special thanks to Vannak Eng (for his continued dedication and hard work), to Javier Sola (for his behind the scenes help before I arrived, and his wonderful hospitality while in Phnom Penh), to Gen Kanai (for his behind the scenes help – too many to mention!) and to Mark West (for his generosity with providing a venue, and the many thought provoking discussions we had about the impact of localization on the economies of developing countries).

Akun.

Infrastructure load for January 2012

Let’s get straight to the interesting stuff!

  • #checkins-per-month: January set another new record with 3,962 checkins for the month. Another new record volume of checkins, in our continuing series of new records. The previous record was December2011, with 3,262 checkins, and before that November2011 held previous record with 3,209 checkins.
  • #checkins-per-day: We set a new record of 210 checkins-per-day on 10-jan-2012. This wasnt just a one-day spike; 15 of the 22 working days of January had over 150 checkins-per-day.
  • Historically, we have always seen a increase in checkins in January, and within a week of returning from vacation is typically the highest load. The record 210 checkins-per-day happened on the 10th January. (I personally suspect this is the backlog from people working over the holidays? but dont know how to confirm this.)

mozilla-inbound, fx-team:
Its very cool to see how developers have taken to using mozilla-inbound (and more recently fx-team) as integration branches, instead of having everyone landing directly into mozilla-central.

  • In the chart above, note that the number of mozilla-central checkins (189) continues to decrease, while the number of checkins on mozilla-inbound (1050) has increased.
  • In the past whenever we had to unwind a large backlog of pending checkins, or back out a complicated bustage, we’d keep the mozilla-central tree closed for all checkins for the duration… which blocked all landings. However, now with mozilla-inbound and fx-team as integration branches in addition to mozilla-central, it means that developers have the option to continue landing their unrelated patches on an open integration branch while the cleanup work continues on the closed branch. In theory, if you give smart humans a easy way to route around a blockage, they’ll quickly start to use it so they can continue to get things done. In reality, very cool to see it actually happening.

mozilla-aurora, mozilla-beta:
I note that ~3.5% of our total monthly checkins landed into mozilla-aurora, and ~1% of our total monthly checkins landed into mozilla-beta. Put another way, a third of aurora checkins also landed onto mozilla-beta.

Part of me feels this is a healthy low number of fixes landing on aurora, and a healthy even lower number of fixes landing on beta. And this was part of the plan for the rapid release model.

At the same time, part of me also feels like too many fixes are still needed on mozilla-beta, and I fear that this is a sign too many bugs are not being detected earlier in the development cycle when on mozilla-central or mozilla-aurora. In which case, what could we do differently in order to change this? Honestly, I cant tell for certain, and I’d be curious what others think.

(Oh, and for the record, I’m always glad whenever we catch a problem *before* we ship a release; it avoids us having to do a chemspill release and we ship better code to our Firefox users.)

misc other details:
Pushes per day

Pushes by hour of day

HOWTO use an unlocked Android phone in Ireland

Here what I used in my trip back to Ireland in Oct2011, in case others find this helpful:


Disclaimer:

  • In the US, buying a cellphone “out-of-contract” is not the same as buying a cellphone “unlocked”. All of the following only works for an unlocked phone. Make sure your phone is unlocked before you get on the plane.
  • Different cellphone companies have different policies on this. AT&T declared that, despite my being a multi-year customer, with no contract, they would not unlock my phone per policy. T-Mobile said upfront that they would need ~40days from date-of-purchase of “out-of-contact” phone before I could ask to have it unlocked. On the 40th day, when I asked T-Mobile to unlock my phone, they sent me the phone unlock codes within 48hours.
  • Make sure your phone supports GSM. Sounds obvious, but still needs to be said, as most countries use GSM.

  • Buy a “Three.ie” pay-as-you-go SIM card. I bought mine at a stall in a shopping center in Dublin, but they were also for sale in any of the countless newsagent stores across the country. While there are several mobile companies selling pay-as-you-go, I decided to go with Three.ie because they have unlimited(yes, really!) data at 3G speeds, no hassle about using your cellphone as a hotspot and unlimited text messaging. Oh, and comparable prices for voice calls.
  • Disassemble your phone to swap out sim card, insert new Three.ie sim card and power up the phone.
  • On the phone, enter “1744” and press dial (typically, the green handset button). This will connect you to an automated voice service which will tell you your balance.
  • Assuming that works, you should now attempt to call any local number. A good example is the mobile phone of the person at the three.ie stand who sold you the card. Specifically, you should do this because the first call made on the new three.ie account will not be connected until you are verbally prompted through the remaining setup steps. This includes setting up an access PIN (for later topup/account activity calls) and also setting up voicemail, all of which I did.

    (Cultural note: While some people would leave voicemail, most people would instead send text messages. However, I found it interesting that even people who didnt leave a voicemail would still want to hear my voice on my voicemail greeting, to confirm they had reached the correct number, before they would hangup and send me a text message.)

  • At this point you should be able to make/receive calls.
  • To make my Android 2.2 phone transmit/receive data, I had to add the following APN settings:
    * on home screen, go into “settings”
    * go into “wireless & network settings”
    * go into “mobile networks”
    * go into “access point names”
    * if there is not already a “smart” APN, then create one as follows:
    ** Name = 3 services
    ** APN == 3ireland.ie
    ** Proxy == Not set
    ** Port == Not set
    ** Username == Not set
    ** Password == Not set
    ** Server == Not set
    ** MMSC == Not set
    ** MMS proxy == Not set
    ** MMS port == Not set
    ** MCC == 272
    ** MNC == 05
    ** Authentication Type == Not set
    ** APN Type == Not set
    …hit save, and go back to “Access Point Names”.

  • verify that this new “3 services” APK is present, and is selected.
  • Reboot the phone to see if that helps.
  • At this point you should be able to make/receive calls, send/receive text messages, surf the web, and use your cellphone as a wifi hotspot.
  • To check your account balance call 1744.
  • When you need additional credits, buy a one-time use scratch-refill “top up” card at almost any newsagent, and follow the instructions on the back. Alternatively, you can buy additional credits by calling 1744 from your phone, enter your PIN and recharge using a credit card. Either way, you’ll receive a text message with the new balance when the credits are added to your account.

HOWTO use an unlocked Android phone in Cambodia

There are now 9!!?! different mobile phone companies in Cambodia and a great summary of them all is on khmerbird.com. They all offer different pay-as-you-go SIM cards, and of course, there are lots of different Android phones, but here what I used in my recent trip back to Cambodia, in case others find this helpful:


Disclaimer:

  • In the US, buying a cellphone “out-of-contract” is not the same as buying a cellphone “unlocked”. All of the following only works for an unlocked phone. Make sure your phone is unlocked before you get on the plane.
  • Different cellphone companies have different policies on this. AT&T declared that, despite my being a multi-year customer, with no contract, they would not unlock my phone per policy. T-Mobile said upfront that they would need ~40days from date-of-purchase of “out-of-contact” phone before I could ask to have it unlocked. On the 40th day, when I asked T-Mobile to unlock my phone, they sent me the phone unlock codes within 48hours.
  • Make sure your phone supports GSM. Sounds obvious, but still needs to be said, as most countries use GSM.

  • Buy a “Smart Mobile” pay-as-you-go SIM card, with the “Fresh Internet+” plan. I bought mine at the airport in Phnom Penh, but they were also for sale in any of the countless green “Smart Mobile” stores across the country. While each of the 9 cell phone companies in Cambodia have different voice prices, this company seemed to have the best data plan, which is what I cared about most. Oh, and the staff at their booth were great fun and their ad for “Fresh Internet+” data-plan looked fun!

  • Disassemble your phone to swap out sim card, insert new SmartMobile sim card and power up the phone.
  • On the phone, enter “*888#” and press dial (typically, the green handset button). This should send you a text message within a few seconds containing:
    * your mobile number
    * remaining balance on your SIM card
    * expiry date of the credits on your SIM card
    * whether or not you have a data plan set up (the default is “not”).

  • At this point you should be able to make/receive calls, and check your account balance.
  • Dont bother setting up the voicemail. Like in Hong Kong, no-one seems to use voicemail; if you dont answer the phone, callers simply try again later or send you a txt msg.
  • To enable your phone for pre-paid data, you need to setup “Fresh Internet+” plan, as follows:
    * To verify data plan status, enter “*093*0#” and press dial. It should tell you that you have no data plan.
    * On the phone, enter “*093*3#” and press dial (typically, the green handset button). This cost me USD$5, and gave me 2GB data limit for 30days. (Click here for list of codes for different prices and different data limits.). All the SmartMobile plans are 30day duration, the only difference is how much money you want to prepay, and what data limit that gives you.
    * You should receive an SMS confirming the amount paid, and the data plan.
    * To verify data plan status, enter “*093*0#” and press dial. It should tell you that you have a data plan, days to expiry, and how much of your data plan allowance remains.

  • The following APN settings were enabled automatically on my Android 2.2 phone, so I did not set these manually. However, I’m listing them below in case it helps others debug problems transmitting/receiving on their data plan:
    * on home screen, go into “settings”
    * go into “wireless & network settings”
    * go into “mobile networks”
    * go into “access point names”
    * if there is not already a “smart” APN, then create one as follows:
    ** Name = smart
    ** APN == smart
    ** Proxy == Not set
    ** Port == Not set
    ** Username == Not set
    ** Password == Not set
    ** Server == Not set
    ** MMSC == Not set
    ** MMS proxy == Not set
    ** MMS port == Not set
    ** MCC == Not set
    ** MNC == Not set
    ** Authentication Type == None
    ** APN Type == default
    …hit save, and go back to “access point names”.

  • verify that this new “smart” APK is present, and is selected.
  • Reboot the phone to see if that helps.
  • When you need additional credits, buy a one-time use scratch-refill card at almost any roadside stand (they are literally everywhere, and all have the distinctive green “Smart Mobile” logo or beach umbrella!).

Reviving Formal Friday


Its been a while since the 30sep2011 Inaugural Formal Friday in Toronto.

This was a great and promising start.

But since then, things have (mostly!) drifted back to the traditional software company standard scruffy tshirts/jeans/flipflops, with the occasional surprise ironed shirt / nice blouse / polished shoes.

In RelEng, we feel….no, we hope… we believe… there must be a better standard of dress-code hidden deep within each of us. So, the 5 RelEng people in SF took a gamble and came to the office on the first Friday of the month, 02mar2012, in formal attire.

(from left->right: lsblakk, aki, joduinn, jhford, hwine.)

Don’t be fooled by the all-black Aki; the photo does not do justice to his elegant black shirt/black tie/black 3-piece-suit. He trumped all of us that day, and several of us were humming Johnny Cash’s “Man in Black” for the entire day. Respect.)

The gauntlet has been thrown.

The next “First Formal Friday of the Month” is 06apr2012.

The question is: how will you dress on Mozilla’s next Formal Friday?

HOWTO use an unlocked Android phone in Hong Kong

While there are different pay-as-you-go SIM cards available in Hong Kong, and a multitude of different Android phones, here what I used in my recent trip to Hong Kong, in case others find this helpful:


Disclaimer:

  • In the US, buying a cellphone “out-of-contract” is not the same as buying a cellphone “unlocked”. All of the following only works for an unlocked phone. Make sure your phone is unlocked before you get on the plane.
  • Different cellphone companies have different policies on this. AT&T declared that, despite my being a multi-year customer, with no contract, they would not unlock my phone per policy. T-Mobile said upfront that they would need ~40days from date-of-purchase of “out-of-contact” phone before I could ask to have it unlocked. On the 40th day, when I asked T-Mobile to unlock my phone, they sent me the phone unlock codes within 48hours.
  • Make sure your phone supports GSM. Sounds obvious, but still needs to be said. Also, while in Hong Kong, I could only find pay-as-you-go SIM cards that supported 2G or 3G. The only 4G or faster that I could find were as part of monthly contracted plans; if you know of any that I missed, please let me know.

  • At any 7-11 store in Hong Kong, buy a China Mobile pay-as-you-go SIM card. In my case, I bought the “IDD Talk Card“. It looks like the “Super Talk Card” has better rates but they were sold out.
  • Disassemble your phone to swap out sim card, insert new ChinaMobile sim card and power up the phone.
  • On the phone, enter “*#130#” and press dial (typically, the green handset button). This should send you a text message within a few seconds containing:
    * your mobile number
    * remaining balance on your SIM card
    * expiry date of the credits on your SIM card
    * whether or not you have a data plan set up (the default is “not”).

  • At this point you should be able to make/receive calls, and check your account balance. If you dont get this text message, go back and check your work.
  • Dont bother setting up the voicemail. No-one seems to use them; if you dont answer the phone, callers simply try again later or send you a txt msg.
  • Once you have verified that basic calling works, the next step is to setup “Mobile Data & WiFi Package”, as follows:
    * On the phone, enter “*#130#” and press dial (typically, the green handset button). This should send you a text confirmation prompt asking what duration you want the data plan.
    ** for 1 day, press “1” and hit ok
    ** for 7 days, press “2” and hit ok
    ** for 30 days, press “3” and hit ok
    * to verify data plan status, enter “*#103#” and press dial.
    * to cancel data plan, enter “*103*02#” and press dial.
    * Note: be careful of letting data plan expire, yet continuing to use data, because the usages fees jump significantly.
    * (I found these, along with a full set of commands, on www.hk.chinamobile.com).

  • Next, to make sure that your android phone is correctly configured for 3G data, I had to do the following manually on my Android2.2 phone:
    * on home screen, go into “settings”
    * go into “wireless & network settings”
    * go into “mobile networks”
    * go into “access point names”
    * if there is not already an “cmhk” (peoples.net), then create one as follows:
    ** Name = cmhk
    ** APN == peoples.net
    ** Proxy == Not set
    ** Port == Not set
    ** Username == Not set
    ** Password == Not set
    ** Server == Not set
    ** MMSC == Not set
    ** MMS proxy == Not set
    ** MMS port == Not set
    ** MCC == 454
    ** MNC == 12
    ** Authentication Type == None
    ** APN Type == default

    …hit save, and go back to “access point names”.

  • verify that this new “cmhk” APK is present, and is selected.
  • In my case, I had to reboot my phone one more time, but that was it.
  • When you need additional credits, buy a card at 7-11 (they are everywhere!) or online at http://www.hk.chinamobile.com.

Aikido in Hong Kong

After 15hours non-stop in an economy row seat from SFO -> HKG, some Aikido training seemed like a great way to help fix the jetlag, and also get moving again.

There’s a few Aikido dojos in Hong Kong, but after searching the internet, and then sending some emails in advance, we decided to train at http://www.aikidodoyukai.com. (If you are curious, use google translate to read the “training diary” written by Hitoshi Nagai Sensei after every class.).

Students had a wide range of skill levels, all the way from multiple adult yudansha to young children with white belts. There was no way to fit a gi into the carry-on-only bags, so we went to class in borrowed sweatpants and tshirts. It was really great to see how everyone, from a wide range of ages, races and cultures all intermixed, enjoyed learning together and everyone was very welcoming of the jetlagged strangers. The influence of the personality of the Sensei was obvious, the class was great exercise, fun and educational.

This turned out to be one of the highlights of Hong Kong for me. In fact, we made time to go back for another class later in the week, bringing friends who live in HK to introduce them to the art. Only while chatting after the 2nd class did I discover that Sensei had spent a lot of time training at Hombu dojo in Tokyo – another place where I’d enjoyed visiting to train!

If you find yourself in Hong Kong, even for just a few days, I highly recommend this dojo. I’ll definitely be going back again next time I visit Hong Kong.