Apr 062012
 

A few days ago, Damon shared an announcement about what we’re calling the “Kilimanjaro event.” This is that point in time at which we expect our release process to have led to the ability for users to find and install Web apps easily. There’s more to it than that, so read the forum post Damon wrote and then come back. This will wait.

Done? Good.

So this is going to have something of an impact on the priorities for Mozilla’s staff documentation team. Since we’re putting an emphasis on Web apps and, by extension, open Web standards, we’re going to be increasingly focused on this area of documentation, and by extension (no pun intended) less of our attention will be directed toward add-on related documentation.

That means we’re going to need to rely more on the broader community to cover extension and other add-on related documentation work. If we don’t pull together a few folks to volunteer to work on that, it will likely fall behind significantly over the coming months, unfortunately. We will see what we can do to at least ensure the absolutely critical stuff (things that break compatibility, for instance), but beyond that, it will pretty much be up to you!

In the meantime, the staff writers will be doubling down on the Apps, BrowserID, Open Web (CSS/DOM/HTML/JavaScript), WebAPI, and probably WebRTC related documentation.

You can expect to see further blog posts on this over the coming days and weeks. It’s going to be an exciting ride!

 Posted by at 11:08 AM
Mar 292012
 

Firefox is changing fast. So is the Web, for that matter. There are so many new APIs and technologies pouring forth from the clever minds of all those engineers that the developer documentation team is struggling to keep up. Indeed, we’re slowly falling farther behind.

That means we need to sort out which documentation issues need addressing the most urgently.

What documentation is “important”?

There are basically two categories of high-priority documentation:

  1. Very new and exciting technologies that we want to be able to make a big deal of. These need documentation so that developers can jump into them quickly and easily.
  2. Significant changes to existing technologies that may cause problems for existing web content or Firefox add-ons.

The documentation team isn’t always the best set of people to determine which documentation issues fit into these categories. As such, we need to start recruiting others to participate in the prioritization process.

Who can help?

Those two categories of high-priority documentation I mentioned above just happen to correspond to two very different sets of people:

  1. Evangelists and product marketing folks are ideal for flagging the priority on documentation issues that correspond to new and exciting technologies. They want to be able to promote technologies through blog posts, press releases, release notes, and so forth, and as such want to have documentation for those high-visibility technologies. Preferably before they start making a fuss about them.
  2. Engineers and developers tend to know which changes are going to be a headache for web and add-on developers. That puts them in a perfect position to mark the priority on these documentation issues.

How do you help?

If you fit into one of these categories (or, really, even think you’d like to try to help out), you can easily help prioritize our documentation issues! We use a documentation tracker web application developed by Florian Scholz. It interfaces with Bugzilla, using the dev-doc-needed and dev-doc-complete keywords we apply to bugs that affect documentation, but adds additional features, including support for tracking bugs by Firefox release, additional note fields, and, most importantly for the purposes of this blog post, a priority field for each bug.

So here’s how you can help: go to the documentation tracker, log in (using your Bugzilla login), and peruse the list of bugs. Click the edit button at the right edge of the row for any bug you can help prioritize, and set the priority. It’s that easy; it’s a wonderful tool and we use it a lot.

What do the priorities mean?

The priority field can be set from 1 to 5. Each of these values means something fairly specific (in fact, I’m hoping Florian will update the tool to include a reminder of the meanings in each menu item in the popup for the priority). Those values are as follows:

  1. Must be documented if possible within one week after reaching Aurora.
  2. Must be documented if possible within one week after reaching Beta.
  3. Must be documented if possible within one week after release.
  4. Must be documented if possible before the next release.
  5. Should be documented. Someday.

Yes, these values are tied to Firefox releases. However, that gives a general sense of the urgency of the item, even independently of Firefox itself.

Let’s say you’re an evangelist, and you’re looking over the list and see that a particular bug corresponds to a technology you want to blog about when the corresponding release reaches Beta. You should in that case set that bug’s priority to 2. That lets us know to put a rush on that item, but not to block any priority 1 items on it.

It’s not a guarantee!

It’s important to keep in mind that our resources are stretched pretty thin right now. We can’t guarantee that items will be documented by the time the priority requests it be done. We will, however, do our best. And, of course, you should always feel free to contribute documentation. Even a rough outline will encourage someone to come along and spruce things up!

Help us help you

The developer documentation team is here to help. We can get things done faster if you give us all the information you can about when you need something written and, if possible, how it works (or at least the name of someone we can contact to ask questions). Feel free to add that to the notes field in the doc tracker!

And, as always, feel free to contact me by email or drop into the #devmo channel on IRC with your developer documentation related questions.

 Posted by at 9:31 AM
Mar 162012
 

The last week or so, I’ve been working on sample code for the Source Editor API. While this API is not incredibly mission critical, in that it doesn’t directly affect web developers, and isn’t in the critical path for documentation, I’ve enjoyed this work, and the time spent writing about it — and, more importantly, building sample code for it — has been educational.

One thing that occurred to me is this: we need more real-world examples of how to do things. Too many of our examples are simple, fictionalized snippets of code that don’t show you how to do things in the greater scheme of getting things done. However, you still need to document things in context, too.

What I propose is this: what if we set up a section on MDN for larger examples of all kinds, where each page is a complete example, with downloadable code and one section for each method or interesting section of the example, talking about how it works? Then we can link to those sections from the relevant documentation site-wide.

For instance, this example I’m working on shows how to do all of the following things:

  • Create a new XUL window
  • Import several JavaScript code modules
  • Add a Source Editor to the window
  • Interact with the Source Editor
  • Create and manage a menu bar
  • Check and uncheck menu items given the state of the source editor
  • Update the display in a status area of the window given information obtained from the source editor
  • Asynchronously fetch the contents of a page using NetUtil
  • Overlay XUL from within the browser into the source editor to re-use UI and code
  • Save the text from the source editor to a local file on disk
  • Display alerts using the prompt service
  • Call various methods from XUL definitions of UI
  • Add and remove event listeners
  • Some parsing of file and pathnames
  • Set the title of a window based on the name of the item being edited
  • Add an item to the browser’s content area context menu under specific conditions

That’s a lot of stuff, and being able to demonstrate how all of those things are done in a real-world extension has a lot of value. By having a page that covers all of the things this add-on does, then being able to link to the appropriate parts of that page from all over the site, we can really bring our documentation to a whole new level.

Any thoughts?

 Posted by at 7:30 AM
Feb 292012
 

A few months ago, we decided to set up a driver system for driving documentations on a release-by-release basis, with a writer taking lead on each release as it made its way through the release train process.

This… didn’t really work out. It was a noble experiment that failed.

We’re now in the process of switching to a per-topic documentation driver system. This will let us get documentation for the most important material done more quickly (at least in theory) regardless of when it ships. The driver for each topic area will prioritize the work for that subject matter and help ensure that things get written when appropriate. They’ll help coordinate the writers that are interested in contributing to that topic and make sure that the docs in that area of the wiki are kept tidy and are properly crosslinked.

Obviously, the first step in switching to this driver model is to get people selected for each of the topic areas. We have a new page on the wiki for this. If you know of a topic area that’s not listed there (or is a large enough subset of one of the ones already there that it should be handled separately), please feel free to add it. Similarly, if you’re interested in being a documentation driver for one of those topics, let me know, or put your name down.

I’ve not yet selected the topics I will drive, other than likely the XUL and XPCOM stuff. I’m waiting to see what others would like to do first (indeed, if anyone else wants those two, feel free to take them from me). My primary goal as always will be to coordinate the overall documentation effort, maintain the site in general, and contribute as needed, in addition to driving whichever topics I wind up with.

If you have questions or would like to volunteer to drive a topic, feel free to comment here, send me email, or pop into #devmo on irc.mozilla.org.

 Posted by at 3:23 PM
Feb 282012
 

As pretty much everyone knows, our documentation for events (both standard DOM events and Gecko-specific ones) is pretty lame. We’re missing a lot of stuff, and what we have is often bad and poorly organized.

We have a new event reference page:

https://developer.mozilla.org/en/Mozilla_event_reference

Which embeds the Gecko and DOM event references:

https://developer.mozilla.org/en/Gecko-Specific_DOM_Events
https://developer.mozilla.org/en/DOM/DOM_event_reference

However, neither of these pages are complete, and most of the events have little or no documentation.

This is obviously important documentation, but has never managed to drift to the top of the to-do lists of any of the writers.

For that reason, we’re now looking for a contractor that we’d pay to write and clean up this material. The goal is to have complete documentation of all standard events for the DOM and other open web APIs, as well as for Gecko-specific and internal events.

This will probably take a while, although at the moment I don’t know how long. There’s quite a lot to be done; it would involve, among other things, going through the spec to find events and document them, plus going through the code to see which ones we support and which ones we don’t (as well as, hopefully, where our implementation deviates from spec).

Additionally, the writer would need to be able to look through the code to find, understand, and document the Gecko-internal events, most of which are currently entirely undocumented.

If you’re interested, or know someone that might be interested, please let me know!

 Posted by at 10:43 AM
Feb 222012
 

Here are today’s Wiki Wednesday articles! If you know about these topics, please try to find a few minutes to look over these articles that are marked as needing technical intervention and see if you can fix them up. You can do so either by logging into the wiki and editing the articles directly, or by emailing your notes, sample code, or feedback to mdnwiki@mozilla.org.

Contributors to Wiki Wednesday will get recognition in the next Wiki Wednesday announcement. Thanks in advance for your help!

JavaScript

SpiderMonkey

Developing Mozilla

Extensions

XUL

XPCOM

Interfaces

Thanks to Neil Rashbrook for contributing!

Plugins

CSS

Thanks to leeli and Panagiotis Tsalaportas for their contributions!

SVG

HTML

Thanks to Panagiotis Tsalaportas and Neil Rashbrook for their contributions since last time.

DOM

Thanks to Matt N. for his contribution to the DOM documentation.

 Posted by at 4:55 PM
Feb 142012
 

Last week, the writing team took a look at how documentation work is progressing, and the enormous amount of it coming up in the months ahead, and we realized that our old method of prioritizing writing work doesn’t do the job anymore. In the past, we prioritized work first by which Firefox release it was due to be shipped in, then by topic area.

That simply doesn’t work anymore. Between the rapid release schedule and the fact that we often start promoting new technologies while they’re in Nightly or Aurora builds, we can’t focus on one release at a time. So we’ve decided that going forward, we’re going to prioritize documentation based on the importance or “interestingness” of the topic, regardless of which Firefox release it’s expected to ship in.

This means that going forward, we’re much more likely to ship Firefox releases that don’t yet have complete developer documentation, but it also means that we’re more likely to have all the most important and broadly interesting topics written up earlier in the development process. Of course, we’ve already started to have trouble getting documentation for a release “finished” in time anyway, so this isn’t a big surprise. But by accepting it and embracing the hugeness of the task ahead, we can make better decisions about what to write and when.

Hopefully the Mozilla community will be able to step in and fill the gaps that get left behind as we move forward. There will be lots of great opportunities to contribute to MDN. I look forward to seeing what you can do to help!

 Posted by at 9:41 AM
Feb 082012
 

Here are today’s Wiki Wednesday articles! If you know about these topics, please try to find a few minutes to look over these articles that are marked as needing technical intervention and see if you can fix them up. You can do so either by logging into the wiki and editing the articles directly, or by emailing your notes, sample code, or feedback to mdnwiki@mozilla.org.

Contributors to Wiki Wednesday will get recognition in the next Wiki Wednesday announcement. Thanks in advance for your help!

JavaScript

SpiderMonkey

Developing Mozilla

Extensions

XUL

XPCOM

Interfaces

Plugins

CSS

SVG

HTML

DOM

 Posted by at 2:08 PM
Jan 252012
 

Here are today’s Wiki Wednesday articles! If you know about these topics, please try to find a few minutes to look over these articles that are marked as needing technical intervention and see if you can fix them up. You can do so either by logging into the wiki and editing the articles directly, or by emailing your notes, sample code, or feedback to mdnwiki@mozilla.org.

Contributors to Wiki Wednesday will get recognition in the next Wiki Wednesday announcement. Thanks in advance for your help!

JavaScript

Thanks to David Bruant, -TNO-, and xkizer for their contributions the last couple of weeks.

SpiderMonkey

Developing Mozilla

Extensions

XUL

XPCOM

Thanks to Neil Rashbrook for his contributions!

Interfaces

Plugins

CSS

Thanks to McGurk and cgack for their contributions to CSS documentation!

SVG

HTML

Thanks to Jens.B and tw2113 for their contributions since last time.

DOM

Thanks to cgack for contributing!

 Posted by at 7:42 PM
Jan 222012
 

During the Engagement team work week last week, the four on-staff Mozilla developer documentation writers (myself, Janet Swisher, Jean-Yves Perrier, and Will Bamberg) had a sit-down to talk. This was a big deal since it was Jean-Yves’s first time meeting with us in person since joining Mozilla on December 1, and Will’s first time meeting with us since he’s been largely off doing fairly separate stuff documenting the Jetpack SDK.

We had a long discussion about a wide variety of things, and I figured I’d blog about it, to share those ideas and thoughts with the wider Mozilla community — and to flesh out the ideas from the outline format I took the notes in.

Today, let’s talk about our reference documentation and what we can do to improve it.

In this, my final post covering what we talked about during this meeting, we’ll take a look at the new organizational hierarchy we’ve developed for MDN (in a series of previous meetings as well as on a public etherpad), and how we’re going to go about rearranging our content into this new order.

Introducing the new hierarchy

We’ve been talking about fixing MDN’s tendency toward being very shallow, organizationally, for some time. Most MDN content is located right at the top of the hierarchy, making it really disorganized. This is something we want to fix, but work has been slow.

Over the last few weeks, we’ve increasingly discussed this in #devmo, and we finally have a new hierarchy designed that we think will improve things enormously. You can get a look at this on the etherpad we created for the purpose of working it out. There are a few areas where debate is ongoing, but you’ll get the idea of what we’re shooting for.

Making the move

The first step toward moving to this new hierarchy will be to create the new landing pages for each section and subsection, and to revise those that already exist as needed.

We’ll move existing articles as we get to them and as they’re discovered during day-to-day work.

In addition, all new pages should be created in the new hierarchy, once the new landing pages are in place.

Between creating all new content in the right places, and moving old content as we’re able, we’ll gradually make this transition.

On top of that, we can add pages to landing pages even before they get moved, and worry about moving them later if we need to.

A team effort

Because this project is unfortunately not going to be a top priority for the full-time writing team (we’re being kept crazy busy keeping up with the release train!), we’ll be relying pretty heavily on the rest of the MDN community to drive this work forward. Fortunately, it’s something that can be done a bit at a time as community members (and full-time writers) have a moment to spare now and then.

Hopefully you can pitch in and help us make MDN cleaner and easier to navigate!

 Posted by at 9:00 AM