I’m going to say something that might be controversial, or hard to understand for some folks but it’s getting to the point where I’m starting to stay away from the office more than I’d like to so here goes:
The snacks. The never-ending supply that I would *never* eat otherwise. That I would not go to a corner store and purchase. I really wish they were gone. I wish that we, people who all make salaries above that needed for living decently, were accountable for buying and bringing in our own snacks as we chose. Keep them at your desk, share with nearby co-workers, I would love to see this. It would be so much better for me if the only things we had in the kitchen were fruit and veg. Milk for coffee, sure.
When I first started working for Mozilla, as a working class grew up broke kid, I was floored by all the free stuff & free food. I lived off it as an intern to save money. I appreciated it. It made me feel cared for. Now it’s like a trap. A constant test of my ability to make “good” decisions for myself 250 times a day. Often I fail. Failure makes me stay away from the office as an attempt to cope. Staying away from the office causes loss of connection with you all.
I suspect there might be feelings of being ‘punished’ if the snacks were less abundant (or even gone) because we’re used to all these ‘perks’ in our tech offices. It’s not something most offices (outside of tech industry) have and I would encourage a perspective shift towards accountability, recognizing the privileges we *already* have even without free all-day snacks, and thinking about what it means if some people have to choose to stay away. Considering the origin of these snacks is from a startup mentality where workers were expected to be pulling really long hours without getting up, out, or going home. Is that really what we want to promote and call a perk?
In March of 2011 we shipped Firefox 4 and moved to a rapid release with 6 weeks on each of Nightly, Aurora, and Beta channels prior to shipping a new major version of Firefox Desktop and Mobile to our users. Both Nightly and Aurora channels were getting builds & updates nightly (breakage notwithstanding) while Beta builds were still a highly managed, hands-on release product that shipped once per week, giving 6 builds in all unless there were additional last-minute landings (typically critical security or 3rd party plugin/addon issues) requiring a beta 7 or, rarely, 8 prior to building our release candidate for that version.
This is the model we followed up until Firefox 23. Starting in Firefox 15 we had the ability to perform silent, background updating which meant that we could push more updates to releases without causing update fatigue. Release Management, Release Engineering, QA, Stability, Support hashed out what it would take to move to a system where Beta builds are done on a nightly, automated manner. We dubbed this a Rapid Beta model and as work from all teams has been done toward that goal we have managed to get a handle on where the bottlenecks are which impeding the complete automation of pushing out the most recent Beta code to our 10 million Beta users.
The reason it is to our advantage to get more builds to Beta users is because at 1/10th of our general release population, the faster we can get fixes (especially crash fixes or speculative fixes for compatibility and addon/plugin breakage) to our users, the sooner we can collect much-needed data that can verify the quality of our impending final build. With the previous model, fixes missing a beta train meant that much more risk was added to the landing and typically we throttled the landing of all but the most serious security and usability patches back after the 4th beta meaning sometimes developers (and release managers) would be forced to make more pressured decisions about whether something could make a release or have to wait 8 more weeks to be in the next train.
QA did work to pare down on the manual testing needed for sign-off, Release Engineering put together a fabulous Ship-It web interface that Release Management could use to request builds in a more hands-off way to make the processes around starting & monitoring a new beta build much less time intensive. Socorro work was done to make it possible to match crash data to build IDs so that we could technically support nightly Beta builds and see stability data in useful ways. Once all this work was in place we took a leap of faith and started releasing twice as many Beta builds in weeks 2-5 of the cycle for Firefox 23.
This new model has had two full releases now, Firefox 23 & 24. The feedback so far has been quite positive. Release Engineering has been minimally called upon when the shipping app interface hit glitches, but those are mostly ironed out now. QA is turning around their sign off of Firefox Desktop within approximately 24 hours and according to them their bug fix verification rates are going up with this new model in part because the smaller changes per Beta allow them to focus more. They’ve also had an intern and have had their remote testers team gain additional resources, but the switch to more frequent Betas has apparently gone quite smoothly for them. From a Release Management perspective, the tracking & landing of fixes on Beta is going much better since we now have less panic & stress on landings at the beginning of each week. With one Beta getting kicked off on Mondays we start the week with something to start evaluating mid-week and then we continue to pick up fixes as developers start their week in order to get another build for feedback gathered over the weekend.
Though the data is a little rough right now (I’m dreaming of a pushlog DB), the numbers so far look like we’re doing a good job of spreading out the landings over the course of the cycle, still tapering off at the end:
While at the same time, our overall tracking average remains stable and our tracked bugs fixed rate has been holding over 90% per release for the past 3 releases:
Along with these improvements to getting features, regression & crash fixes to our users sooner with more automation and hands-off processes, we’ve been getting a lot out of the fact that we now have people who are full time sheriffs of the tree. Ryan VanderMeulen and Ed Morley are doing a lot of the heavy lifting keeping uplifts in order and landing frequently as well as monitoring the trees for breakage. Having managed trees, as well as team trees for active development is likely responsible for our tracking+/fix ratio on mozilla-central improving over time.
Finally, what’s most important from this experiment and what we consider to be the biggest win so far is that this new beta model helps release drivers over the whole cycle make decisions about uplifts with less concern about timing, and more focus on overall risk to product. Having more Beta builds means not having to make rash decisions because of scarcity. We will continue to collect data and monitor our progress as well as work towards automated, nightly Beta builds since that would get us crash feedback on a more granular level but for now I see this current progress as a huge step forward for the stability and quality of our releases. Neither of the last two releases had to be followed by dot releases for anything we could have prevented. Our Beta audience size holds strong, confirming that background updates are doing their job. Next up we’ll be looking at potentially moving to a slightly longer, and overlapping Beta cycle while shortening time on Aurora – but that’s another post for another time.
I’ve been in Release Management for 1.8 years now and in that time we’ve grown from one overworked Release Manager to a team of 4 where we can start to split out responsibilities, cover more ground on a particular channel, and also…breathe a bit. With some of the team moving focus over to Firefox OS, we’ve opened up a great opportunity for a Mozillian to help Release Management drive Firefox Desktop & Mobile releases.
We’re looking for someone committed to learning the deepest, darkest secrets of release management who has a few hours a week consistently available to work with us by helping gather early feedback on our Nightly channel (aka mozilla-central or ‘trunk’). This very fabulous volunteer would get mentoring on tools, process, and build up awareness of risk needed for shipping software to 400 million users, starting at the earliest stage in development. On our Nightly/trunk channel there can be over 3000 changes in the 6 week development cycle and you’d be the primary person calling out potentially critical issues so they are less likely to cause pain to the user-facing release channels with larger audiences.
A long time back, in a post about developing community IT positions, mrz recalled a post where I stated that to have successful integration of community volunteers with paid staff in an organization there has to be time dedicated to working with that community member that is included in an employees hours so that the experience can be positive for both parties. It can’t just be “off the side of the desk” for the employee because that creates the risk of burnt out which can lead to communication irregularities with the volunteer and make them feel unneeded. For this community release manager position I will be able to put my time where my mouth is and dedicate hours in my week to actively shape and guide this community Release Manager in order to ensure they get the skills needed while we get the quality improvements in our product.
So here goes with an “official” call for help, come get in on the excitement with us.
- Are familiar and interested in distributed development tools (version control, bug tracker) typically used in an open source project of size (remember when I said 400 million users? Ya, it’s not a small code base)
- Want to learn (or already know) how to identify critical issues in a pool of bugs filed against a code base that branches every 6 weeks
- Have worked in open source, or are extremely enthusiastic about learning how to do things in the open with a very diverse, global community of passionate contributors
- Can demonstrate facility with public communications (do you blog, tweet, have a presence online with an audience?)
- Will be part of the team that drives what goes in to final Firefox releases
- Learn to coordinate across functional teams (security, support, engineering, quality assurance, marketing, localization)
- Have an opportunity to develop tools & work with us to improve existing release processes and build your portfolio/resume
- Mentor and guide your learning in how to ship a massive, open source software project under a brand that’s comparable to major for-profit technology companies (read: we’re competitive but we’re doing it for different end goals)
- Teach you how to triage bugs and work with engineers to uncover issues and develop your intuition and decision making skills when weighing security/stability concerns with what’s best for our users
- On-site time with Mozillians outside of Summits & work weeks – access to engineers, project managers, and other functional teams – get real world experience in how to work cross-functionally
- Invitations to local work weeks where you can learn how to take leadership on ways to improve pre-release quality and stability that improve our Firefox Desktop/Mobile releases
- provide references, t-shirts, and sometimes cupcakes
I’ll be posting this around and looking to chat with people either in person (if you’re in the Bay Area) or over vidyo. The best part is you can be anywhere in the world – we’ll figure out how to work with your schedule to ensure you get the guidance and mentoring you’re looking for.
Look forward to hearing from you! Let’s roll up our sleeves and make Firefox even better for our users!
Hello fellow Mozillians (and curious onlookers)!
In a couple of days you will, en-masse, get your first peek at the high level agenda of the 3 day MegaMozillaFest you’ll be cannon-balling into this coming October. As someone who feels very fortunate to have been part of the planning processes (more multiple threads than you can shake a stick at) I thought I’d take some time during my layover en-route to Toronto and fill you in on what got us here in the hopes that:
- I can shine light on how much hard work and sincerity went into the organization so that participants can get a lot out of this experience
- You can see how many different voices and teams come together to plan an event at this scale
- You’ll become as excited as I am (or close) for the journey we’re about to go on together this fall
It started, for me, back in June when 70 ‘delegates’ were brought together at the Mozilla Paris office to begin the conversations that were intended to bubble up the big issues and tensions that our community needs to address at Summit.
Wait. It started before that.
For delegates going to the Paris Planning Assembly, we were asked to go out and interview people in our ‘functional areas’ and query them about the story of how they got engaged with Mozilla, what they perceived our challenges and opportunities to be, and where they see Mozilla going in the next 10-15 years. I reached out to our Homozilla list, WoMoz, and also to the Firefox Team – a nice, diverse group of people to try and drag up some feedback to bring.
Sidebar: We often get asked to seek feedback from others in preparation and most recently I did this for a TRIBE workshop. From doing those interviews in person I now plan to commit to doing all sorts of info-gatherings in person/vidyo rather than over email. It’s too easy to send out an email blast and then just pick up what comes back to you. I get so much more from talking with a person face-to-face (video chat counts) and as you’ll see later in the post about Summit planning, it’s important to go a little further trying to encourage feedback than just a one-way missive over email that can be easily ignored or missed.
I got less feedback from people than I would want or expect. It’s a part of our culture to be cycling rapidly on our work and that results in a general air of being overwhelmed and too busy to do anything out of the usual routine so I largely attribute the low response rate to that. For my part I could have framed the questions differently, reached out to individual people instead of group lists, held a vidyo ‘office hours’ to talk with people in person, and followed up more (ie: nagging, a RelMan’s #1 skill).
Minimal feedback aside, I went to Paris feeling very much like I could bring a certain voice to the discussions as someone who wears many hats in our organization and who’s been involved with the project since 2006. Also, as a former unpaid contributor, intern, then full time hire I can imagine some of the realities of what it’s like in the shoes of many Mozillians.
I’ve already written a bit about what happened at the Paris Summit Planning and how it impacted me so I’ll sum up by sharing that when we left Paris the “what’s next?” action was that we each put our names to one of 5 groups where we could be called upon later for ideas/session planning/accountability for that area: People, Process, Product, Strategy, Purpose
Those groups then got turned into three track themes and were assigned two track leads who would work with Steering Committee members on refining the sessions for each as well as with the other delegates from Paris who had signed up to be accountable for those topics. The entire breakdown of this process is handily in a wiki page, but here’s the high level of who’s involved so you know who I’ve been working with for the past month or so:
- Purpose & Strategy – Track Leads: myself and Michelle Thorne, Steering Committee: Mitchell Baker and Mark Surman
- Products & Technology – Track Leads: Dave Herman and David Ascher, Steering Committee: Jay Sullivan and Brendan Eich
- People & Process – Track Leads: Michael Coates and Zbigniew Braniecki (Gandalf), Steering Committee: Debbie Cohen and Jim Cook
The above listed people, along with Dino Anderson and Dia Bondi (and then a whole host of people behind the scenes like Kate, Mardi, and outside contractors) shepherded us through the last month while we did 3 iterations on an agenda in order to get the results you’ll all see this Tuesday. We held a TON of meetings with each other, in our small Track groups, and with our body of delegates from Paris. In our group, Purpose and Strategy, we kept circling back to the Nature of Mozilla (NoM) and how to best transmit that message so it can be held as the core of every Mozillian’s understanding of who we are, why we are, and what we do. We’d have to ask ourselves: Do our sessions have NoM aspects to them? If not, this isn’t the time. The very core of what makes us Mozillian is the key to this experience because it’s at the heart of how we will move into the future with our new projects as well as continuing to properly steer our existing ships in the waters of the open web.
During this process of multiple hour-long or more meetings each week with some serious thinkers & planners at Mozilla, several things happened for me:
- I worried sometimes that we had become too narrow, that as such a small group we weren’t getting enough input, yet at the same time I saw new, and very engaged people at the table taking on leadership roles and bringing up strong points. I had to trust that this part of the planning process (similar to with the Paris planning) was for the best and that we’d get the right pieces cobbled together – always with the larger group who will attend & participate in the final product foremost in our minds.
- It was reinforced for me many times over how it is for me to participate in meetings that are over 30 minutes long. I’m really going to need to work on that for my own professional development and opportunities in the future. I’m most definitely open to suggestions on how I can ‘game’ my own self to be better at meetings. In TRIBE we learned about the forms of listening and I’ve been aware of/practiced active listening for 2 decades but there’s something about meetings – the group factor, the agendas, getting off topic. Perhaps some training in facilitation might help understand this area better.
- At the beginning of our meetings Dino asked all the Track Leads to speak a little about how we work best and I stated that I always prefer *doing* and am at my best with a list of clear steps to take. While I still enjoy talking/dreaming big, at the end of a rousing brainstorming I need that list of “now what?” and it had better be clear what is expected from me next. This planning process was definitely done in a way that met & exceeded my needs in that area. I applaud all the people who are at the top of the accountability chain for the Summit on their skillful communications and guidance throughout the last few months.
- I felt incredibly fortunate to be a part of the creation of this next milestone in our shared Mozilla experience. We were *creating* a journey for (almost) all Mozillians to share. Having these touchstones within a project is so important. Being at the table to dream up and then turn into actuality the plan for complete engagement, alignment, and inspiration of what will get us all to the next billion web users is a heady task and I truly believe we’re very much on the right track to providing a creative and engaging space in October that will change all of your lives in good ways.
At the end of our last agenda review, I was filled with excitement about our schedule: Science & Culture Fairs, lots of Open Sessions, something called ‘Speedgeeking’ which I suspect will be like lightning talks, and then the overall story we’re going to learn about but also build into over 3 days. I’m sad that I’m missing almost 2/3 of Summit due to a prior commitment to the Grace Hopper Conference Open Source Day but I’ll join many of you on Saturday evening in Toronto and go deep Sunday so I can get the most out of it.
I hope this explanation of the process helps you understand how many people put in a lot of time to create what you’ll be participating in. Please join us with an open heart to the goals of this gathering – whichever location you end up in – know that we brought in as many of your voices as we could, that we want more than anything for you to get as excited about Mozilla’s future as we’ve been while dreaming about how we’re all going to build it together, aligned and re-energized. See you in October!
I’ve created an event for the first meeting of Women Hacking Glass in SF at the Mozilla public space.
Since I posted in G+ a few weeks ago things got busy and I didn’t have time to lean on Google like I’d planned to ask for hardware but then a pair of Glass practically fell in my lap when a coworker decided he didn’t want to be an Explorer any more so I wrangled a ‘donation’ to get his Glass in order to use them for community hacking with other women in the Bay Area. I’m curious to see how the first meetup goes – what will we be able to create? What kinds of feedback will we provide to the GDK developers who are working on the first version of a release? What kinds of barriers will we hit with Mirror API? I look forward to learning about everyone’s hopes and dreams for this exciting hardware and finding ways to hack our way to making them a reality.
Copy from the event invite:
Are you interested in learning how to make apps for Google Glass? Don’t have the access to the hardware?
Come out to Mozilla SF and meet with other Glass Hacking gals to experiment with Android Studio, creating simple apps, getting access to Mirror API, and trying out your hacks on an actual pair of Glass that will be made available during WHG meetups for testing on. Since there are very few people out there with the hardware, and few of those early adopter/explorers are women let’s work together to increase the numbers of women getting in on the ground floor for development (as well as being able to provide feedback to Google GDK developers) on this revolutionary new hardware.
There is a small (non-refundable) fee to prevent no-shows from taking up space – all money generated from this event will be donated to Mozilla Foundation via http://www.mozilla.org/donate
Prepare ahead of time:
* Have a google account
* Read https://developers.google.com/glass/quickstart/index and do as much of the pre-installation of tools/IDE that you can
* Think about your first app and what you want to learn to build
* Dream big, show up
For people who are interested in applying pressure to Google and showing them there are women interested in developing for Glass (the current Glass Developers group is easily 95% male) – go to http://www.google.com/glass/start/how-to-get-one/ and submit your request anyway, even though they say the waitlist is full. My coworker can’t be the only person returning his pair and I trust Google will open more spots when they see a lot of interest.
This is the second in a series of blog posts that will summarize my experience and takeaways from the Mozilla Summit 2013 Planning Assembly that took place in our Paris, France office on June 14-17, 2013.
Stereotype: something that may be true about some members of a group, but not all, and yet is applied to all members of the group without regard for the individual. While stereotype might be a scary word to some people, worry not – they are within your control to manipulate, eliminate, and examine thoroughly for holes in logic.
Debunk your internally held stereotypes, and not just once.
Unpacking a stereotype you’ve held for any length of time is not a ‘set it and forget it’ process. It came as quite a shock to me this past weekend when I became aware of the deep levels of distrust I had been holding toward new hires within the last 2 years. These are people who were in the ranks of our explosive growth spurt* and when I examined this feeling I saw that I didn’t believe this new bunch of Mozillians could be as hooked, committed, and passionate as myself.
It dawned on me over the course of our intensive 2 days of plenary activities that I held this belief while still going day to day believing what I care most about is bring new people into the community. And I do care about this, but I see now how my stereotyping might also be holding me back. When I bring someone into the community or get a chance to passionately wax on how Mozilla has changed my life I like to think I can tell if they are also catching the fever. For me, it’s been such a good pairing of challenging technical work and new areas to practice social justice activism in, so I’ll evangelize to anyone who’s interested while also inquiring with them to discover what area of Mozilla contribution might be a good starting place for them. I expect to see a similar spark of what is possible, working with Mozilla, for their passion. When I’m able, I try to help them network and make connections within the project to help clear barriers to their goals and find a mentor. Again, that’s based on my experience of coming on board with the help of a strong mentor as well as having social connections to leaders within the organization.
If it’s not apparent yet, I am trying to recreate for others what I saw as the perfect ‘hook’. I believe I have a strong set of core values that align with being Mozillian and I want to install them into others. Here’s the catch: becoming a Mozillian isn’t close to how, in a perfect world, one might install a binary package containing certain values into a person and we have no reliable test of whether it patches correctly and provides a guaranteed shared core with each other.
After this weekend, and talking deeply and at great lengths with people who have joined the community in the last two years, who have obvious passion & commitment to the Mozilla mission, I have started unpacked my stereotype of a what makes a new Mozillian passionate and what hooks them. It’s something I will have to keep reminding myself of. The reminder will look like asking people what their hook was instead of looking for mine in them. Knowing logistically that it was impossible for everyone to have my exact experience but trusting they had something to activate them in the ways I felt mattered were not aligning at all until I got to spend this time having what sometimes seemed like the same conversation over and over. I was with 60 people where at least half of them were brought on in the last two years and yet, the discussions were passionate, committed, and inspiring. I am thankful for our process that it allowed me to have this revelation that will help me be a better Mozillian and community leader in the future.
In the actions I have leading up to the Summit, one is to look closer at the ‘hooks’ of others and to work on how we might abstract & synthesize those into options for new Mozillians to have an activity to engage in where we can be as close as 100% certain as possible that they’ve been activated as Mozillians with the core values we’re wanting to trust each other has. A follow-up post will talk about the core values and their importance to several other big topics for Summit 2013.
* ~300 employees to ~600 employees over the course of 2011 and continuing to grow towards 1000 in 2012-13
This is the first in a series of blog posts that will summarize my experience and takeaways from the Mozilla Summit 2013 Planning Assembly that took place in our Paris, France office on June 14-17, 2013.
We are a group of very smart people. Don’t ever doubt that for a second. We are a hit-the-ground-running bunch of doers who really like actionable items and clear instructions as well as accountability and deliverables. Oh and throw in some metrics and a post-mortem so we can iterate, please. This makes us very challenging for outsiders to work with, especially when trying to engage a sizable group in open process activities. Turns out we’ll ask a lot of questions to clarify instructions, search high and low for actionable items, and demand deliverables. We’ll interrupt process, we’ll doubt the value of the process, and we’ll assume even before attempting that it is too open-ended to be of value or to generate the tangible items we’re craving as the proof our time was well spent.
If we go too far down that path in this unconference style of meetup, we will lose out tremendously on letting ourselves be changed and engaged by each other.
Love it or hate it, asking each other “is this making sense to you?” or “are we doing it right?”, that uncertainty IS a big part of process. Asking each other questions, being confused together, not knowing what’s coming next together is a form of bonding.
Bonding – which I shall refer to from now on as friendship – typically strengthens over equal parts of time spent together + common interests + shared experience. Sometimes you can fast forward a friendship by just overloading one of those areas. Having a particularly intense experience with someone (eg: riding a roller coaster), spending a lot of consecutive time (eg: traveling together), and connecting intensely on a common interest (eg: hacking) are all examples of ways to ramp up the development of a strong bond with another human. When attending a Summit we are provided a multitude of opportunities to have many of those three with a variety of Mozillians we normally might not interact with, and sometimes with ones we do – deepening connections is the ‘bonus’ to the work we get done when we assemble en masse. My most remembered experiences at Summits, All-Hands’, Moz Camp, and other larger gatherings with Mozillians have always been about the micro interactions which are not part of the schedule. Walking to dinner, sitting on the bus, playing Rock Band – those are opportunities to look at the person or people around you and to try to make sure you’re getting to know even a little bit about them.
In the very earliest part of our process for the weekend of discovery and digging into the meat of what should drive our Summit planning a question came up about whether we could affect the decision to have the Summit in 3 different geo-locations. Just that one little detail was something many people were tripping over and wanted to discuss and it was clear our dive into the weekend’s process would be held up until there were answers. What ended up happening was Mardi explained how logistically they had looked at previous Summits & large gatherings and had determined that 600 people seemed to be the largest number of Mozillians in one place where there still could be a ‘cozy’ feeling that allows for the kind of bonding previously mentioned. Once Mardi said this, I was changed. I, too, had wondered about the dispersal but now it made sense to me that the importance of connection between Mozillians had been placed before the need to put us all in one location and I appreciated getting this new perspective on what the process had accomplished already.
Mitchell then spoke about how sometimes we get hung up on comparing one thing to another and are quite vocal if we find it wanting. It’s important for us to have this gathering, this alignment exercise for the project as a whole, and if we don’t want to call it a ‘Summit’ because it’s not everyone in one physical space then call it something else in your head. I found her point to be very inspiring and concluded that it’s important to go to this 2013 gathering – at whichever location – and BE there. Do not waste time comparing it to other events, attend the event you’re at and reflect later. For me, this was when I knew I could trust the weekend’s activities would lead to great things and more changes of my tightly held beliefs I came into the weekend with. There will be more about this in future posts.
We’ve got 2 projects right now for GNOME Outreach Project for Women to apply to: https://wiki.mozilla.org/GNOME_Outreach_Summer2013 thanks to Liz Henry and Selena Deckelmann
If anyone else at Mozilla has a project that can be done in 3 months time (or at least give the contributor a sense of accomplishment and get them very engaged as a Mozilla contributor) feel free to add a project (and a mentor) to the wiki. Applications are being accepted via GNOME until May 1st.
One of my favourite things about this program is that it allows someone to ‘intern’ with Mozilla without the requirement of being a student. If you can help tweet/share the project, that would be much appreciated too. This project has been growing exponentially every session and is making a significant impact to FOSS community and culture.
Dare 2B Digital is an annual South Bay conference that brings 300 young women ages 12-16 together to encourage them to consider STEM fields in college by coming together for a full day of inspiring talks and workshops showcasing women’s work and relevance in technology. For the past three conferences I have signed Mozilla up as a sponsor and created a workshop that is run 3 times that day and reaches about 80-100 attendees. Last year I created kits for participants to learn about soft circuit hacking and lighting up felt foxes, the year before I taught Universal Subtitles and Popcorn before it was even a 1.0 product yet. I’m always trying to keep our workshops current and, if possible, on the bleeding edge of whatever Mozilla is working on. The participants get a taste of one exciting aspect of what is happening RIGHT NOW in open technology.
In the past year I’ve been really inspired by Mozilla’s outreach around web literacy and at the same time there’s been all this work done around our upcoming Firefox OS for mobile devices that will allow apps to be built entirely of the web and installed/sold/shared outside of the silo-structures such as Apple’s App Store and Google Play. At MozCamp Asia in November of 2012 I watched the Mozilla Taiwan reps showcase a fairly simple card matching game they had made of browser icons and they turned it into a Firefox OS installable app in only a couple of hours. All of these snippets and ideas led to my proposed workshop for the girls being about hacking their own version of the browser-pairs game and installing/playing it on a Firefox OS device.
Now this was all before the Firefox OS phones even existed, and it was also before I went away on a 3 week vacation to Vietnam over the holidays. I mentioned it to my co-worker Margaret before leaving and she said she’d be up for working on it with me but when I returned from vacation I lost about a week just on jetlag & minor flu-like symptoms then another on my birthday and having my family in from out of town. Next thing I knew it was February 1st, the workshop was on February 9th, and I had NOTHING ready and there was no public Firefox OS device yet, either.
So I called up Ruth who organizes the conference and tried to beg off this year. Would it be so bad if Mozilla didn’t do a workshop this one time? Thankfully Ruth very calmly returned my panicked email with a phone call and asked me what I needed to get this workshop on track. What did I need? Mostly just to buck up and finish what I started, me with my big mouth. The pieces were all out there. I had code (thank you Mozilla Taiwan!), Chris Heilmann had recently posted some inspiring slides about HTML5 and mobile for Firefox OS App Days, and Hackasaurus has plenty of youth-focused resources.
Hastily, I organized a couple of lunch time meetings during the week leading up to the workshop with Margaret and we hashed out who would do what. We made an exciting discovery in our first meeting, which was that we could host the game from a github page and this meant every girl in the workshop could hack on her own customizations of the game in github’s web interface code editor and see their changes reflected on a mobile device immediately. No need to deal with the minutia of web hosting, no server-side code, and minimal development setup – the freshly imaged laptops we borrowed from Mozilla IT would be good to go in minutes!
I drove to Redwood City on the day of the conference with: 20 laptops, 15 Firefox OS test driver devices (thanks to my co-workers who let me borrow their phones!), and some slides about why hacking HTML5 is the future of mobile apps. One thing we realized as we were setting up was that there would be some delay between when the participants created their GitHub accounts and when they would see their github pages live with our demo code. We ended up front-loading that and having them start right away as they arrived at the top of each time slot then going into the presentation after they had forked the repo which had the gh-pages branch set to default. We later learned (through Margaret’s chatting with GitHub support) that it was likely the delay could be caused by not having edited anything yet on the gh-pages branch so in later workshops we had the girls follow along with Margaret and change the <title> of their index.html and commit the change.
The presentation portion was about 10-15 minutes and started out with asking the girls to shout out what comes to mind when I say the word “HACK”. Answers included “death row” and things along the lines of breaking or sneaking into someone’s computer, mostly things associated with dark or criminal activities. A few did mention things like ‘nerd’ or ‘creative’ too. When I showed them my examples for the talk we had a brief discussion about not asking for permission, being curious, creative, and taking ownership. After that we talked about Apple/iPhone and Google/Android. Most of the girls had one or the other we explored how non-interchangeable they are, how much it might cost to be a developer for one or the other, the need to play by someone else’s rules in order to get your ideas out there. My favourite part of this talk is repeating over and over how using open web technologies and the web itself is all about NOT ASKING PERMISSION. You put your stuff up, tell people where it is, and they can go use it. It can (and should) be that easy.
After the talking was done the young women had about 45 minutes to hack on their github sandboxes and test out making customizations to their matching game. We modeled it after Mozilla’s Thimble project which uses comments in the code to explain various areas of the code and gives ideas on what to change. Our take was to suggest they try (in increasing levels of difficulty):
- changing the background color/images (of the page, game box, card backs)
- changing the images on the cards when flipped
- change the music (few got to this part in the allotted time)
We saved 15 minutes at the end to do demos of what people did to their code and to come up and tell us what they did to achieve their end results. Some of the customizations led to a newly themed game like pigs, magic, twilight, book covers, and other things the designers liked. A few girls went further and took snapshots of themselves on the laptop camera and used their own action shots in the match game, one girl had her own laptop and drawing tablet so she drew her own card faces and intro screen background, and another girl removed the card backs to make it look like the game box was all black – when I started to click during her demo and cards flipped I was surprised since I had thought the game was broken but she laughed and said it was on purpose. It’s hilarious to me that she made a simple match game into a much harder challenge by hiding the discover-ability of the game.
All in all the three workshops went smoothly, everyone got to do some hacking and see their results during the time we had allotted, and all the girls left with a new github account and code they can keep hacking and learning on over time. During the course of the workshop we went around helping and answering questions and taught them about commit history, rolling back changes, and also using “Inspect Element” to figure out where to look in the code to make changes. I should mention that at the beginning of every workshop I asked “Who here has touched HTML/CSS before?” and there were never more than half the hands in the room raised. This comes up every year in the workshops I run. Some girls are getting this knowledge from parents, friends, self-teaching, and now things like CoderDojo (as one participant bragged) but there’s no indication that any of them are learning this in school where they spend a majority of their time. The thought that some girls are being left behind on this is sad to me, and I want to do all I can to help change that. Every single one of these young women left our workshop with a new spark in their eyes having now had first-hand experience with the power of creating web apps that can run on ANY WEB-ENABLED DEVICE. It was powerful to see.
So, what’s next? I think this workshop should become another Webmaker and/or Hackasaurus project that can be taught anywhere, to anyone who wants to have a first-time experience with mobile app development. We’re 80% of the way there, I’d say what’s left to do is:
* Spend a bit more time, if you have it on basic HTML/CSS editing, using Inspect Element, and having cheat sheets printed up for participants.
* Have options for what to do next – getting off of github pages and hosting your own app, possibly with some server-side code.
It won’t take much to turn this into something more generic and useful for introducing people to the power of Firefox OS and HTML5 app creation and I look forward to continuing to develop this sort of material whenever I can. Thanks to the Desktop Support staff who prepped laptops for the conference, SF co-workers who lent their phones, and most of all to my coworkers who lent their time and their expertise: Margaret, Larissa, and Amy*. Without all of you this would not have gone smoothly and because of you it was the best day of 2013 so far.
* At lunch we had a little Q&A with the 30 or so girls from the first workshop. They got to ask all of us questions about what we do and how we got there. The four of us had such different paths & connections to technology. I love that we got to show these young women a variety of ways to engage with tech and to be in open source.
Thanks to the GNOME Outreach Program for Women, we’ve got ourselves an awesome January intern who will be doing her first Open Source contributions all the way from Australia.
She did a great job of showing one of the things release managers do over the six weeks a Firefox version is in Beta. The spikes in the above graph align with our constant triaging of tracking-firefox17? flags and how the number of bugs flagged for tracking decreases after the first few betas have shipped. When we get to beta 4 we’re starting to get more reserved about what we’re willing to track (it usually has to be pretty critical, or a low-risk fix to a many-user-facing issue).
This next graph shows us what we already know – but it’s very nice to SEE: our bugs tracked for a particular release continually go down over time, gradually. Remember, this is while new bugs are being added to tracking regularly, so the fact that the trend keeps going down helps us know we are staying on top of our work and that engineers are continuing to fix tracked bugs as we close in on a 6 week ship date.
Now that we know Lianne has got what it takes, we’re going to set her on a more ambitious project – to create an engineering dashboard both for individuals and for teams, that would give them this sort of info on demand. Want to see where you’re at (or where your team is at) on a particular version? The engineering dashboard could show you in priority sequence what should be top on your list and also what bugs your team has unassigned that are tracked and should be assigned pronto (or communicate to RelMan that the bug should not be tracked).
This will be a huge improvement over email nagging (don’t worry, that’s still going to be around for many more months) because it will give us some quick, visual cues about how we’re doing with Firefox priorities and then we can also keep these measurements over time to compare release-to-release what the temperature of a particular version was. We hope this will allow us to keep fine tuning and working towards more stable beta cycles as we move forward.
Lianne will be with us from January 2 to April 2, 2013 and in her first week she’ll be evaluating a bunch of existing dashboards we know about to see what the pros and cons of each are and to do reconn on the technologies and visualizations people use. We’ll use that to help us develop the v1.0 of this project’s deliverable and make sure it’s left in a state that RelMan intern 2.0 can pick up next summer.
Please comment if you have dashboards you like, you loathe, or you just want us to know about.