Ubuntu Accomplishments: Building Maturity

Progress on Ubuntu Accomplishments has been moving apace. For those of you who have not been keeping score, we released 0.1 earlier this year which provided a first cut of the core system working. We then followed up with our 0.2 release which brought many refinements to the system based upon user feedback and the increased level of testing by our 600+ users. In September 2012 we plan on shipping our 0.3 release, and our goals are very clear for this release: quality, visibility, and growth.

With these goals we want to take Ubuntu Accomplishments from a casual code-base that generally works, to a professional, rock-solid, predictable, well-tested system that assures a great experience for our users. In a nutshell, we want the quality of Ubuntu Accomplishments to be high, and for us to be able to more easily identify problems and get them fixed.

Another core goal of the new release is to help bring visibility to our community’s contributions. In Ubuntu Accomplishments 0.2 we provided a great way for our community to browse different opportunities and to acknowledge when these opportunities were achieved. These opportunities that are presented in the system are grounded in the acquisition of new skills and significant and sustained contributions*.

0.3 will bring easier browsing of your trophies.

The next step in our evolution is to help our community to share their accomplishments with others, and be able to socially connect with other people who have achieved similar things. This is something I have been thinking a lot about recently. We won’t pitch our community members against each other with leader-boards (as this can have a negative impact on a community), but we are more interested in connecting people. For example, if someone achieves the Ubuntu Member trophy we want to have the system help put them in touch with other Ubuntu Members to help grow their social circle and meet other like-minded people.

Finally, as our project matures, we are going to need to grow our community to help build this high quality, dependable, and enjoyable vision. I want Ubuntu Accomplishments to continue to be a great example and re-incarnation of the Ubuntu values: delivering a great Free Software experience, available to all, in your language, and available to everyone irrespective of (dis)ability.

For us to build this growth in our community we need to help new members to join our community and get involved, provide mentoring and guidance, and help people to be part of the Ubuntu Accomplishments family. And I tell you what, we have a nice little family growing here, and we would love you to be part of it. :-)

So what have we been doing in these areas? Well, read on…

0.3 will also bring integration social media sharing.

Quality

Our goal in terms of quality for 0.3 is for us to refine and improve the quality and predictability of our code-base and service. This includes:

  • Matt Fischer has built nearly complete unit test coverage for the accomplishments daemon. This means new code contributions will only be accepted if all tests pass, as well as test runs before we release. We welcomed Matt as a new core committed to the project last week and he is doing a stunning job.
  • Rafal Cieslak re-wrote the script-runner code to be more dependable and reliable.
  • I went through the entire system and triaged all bugs and targeted them for the 0.3 release (daemon : viewer). The majority of these bugs are quality issues that we want fixing to increase the quality and stability of our codebase.
  • Rafal Cieslak and I went through and added API documentation for the daemon as well as the client API. This will make it much easier for developers to write clients and for people to participe in development of the daemon. I then built sphinx support (this support is included in the archive, and is temporarily online here, although we will be finding a more permanent base for the documentation soon.
  • I added filtering for My Trophies to make it easier to browse trophies by collection and by time (e.g. seeing which trophies you received this week).
  • Rafal Cieslak (based on discussions with James Tatum) has added caching to Ubuntu Community Accomplishments that speeds up the running of accomplishments checking by 50 – 75%. This provides more efficient use of network, battery, and remote server resources.
  • Matt Fischer has been working through various bugs in the Ubuntu Community Accomplishments and helping to review merge proposals from our community as it grows.
  • I went through the validation server and got it in shape and refined the full code base. I also wrote a Django-based admin interface to give the team better visibility when there are server issues so we can track bugs down.

In addition to this work, I just kicked off a discussion with the Canonical IS team to deploy the service in the Canonical data center which will assure better service provision for the validation service.

Visibility

In terms of visibility we have had a wonderful team working on making your accomplishments more visible. This work has included:

  • Janos Gyerik and Gabriel have been building what will eventually become trophies.ubuntu.com; a web-based gallery (based on a spec I put together) that you can optionally use to display your trophies. Janos and Gabriel have doing stunning work here.
  • Brandon Holtsclaw has been working on the CSS for the gallery and we will be providing mobile device and tablet support (see the spec) for the gallery.
  • s-fox also added social media support to the desktop viewer so when you get an accomplishment you can Tweet/Dent/Facebook it with a single click.

Growth

A core goal over the coming months is to get more folks interested in joining the project and getting involved. Fortunately there is something that anyone can do to contribute, be it programming, documentation, translations, support, or anything else. To help with this we have been doing the following:

  • I spent some time significantly improving the documentation for how someone joins the project. You can read about it here with guides for getting involved in programming, documentation, testing, translations, and support.
  • Next week Rafal Cieslak, Matt Fischer, and I will be running a series of video tutorials for how to get involved in Ubuntu Accomplishments. You can see the schedule by clicking here – there are sessions on the general project, the daemon, the viewer, writing new accomplishments, and writing documentation and translating the project.

Join Us!

We mentioned earlier, we are looking for volunteers to help with the project, and we would love to welcome you to come and join! You can find out how to help by clicking here. If you have any questions, don’t hesitate to ask in our IRC channel on #ubuntu-accomplishments on freenode and on our mailing list.

Also, next week we are doing some live video sessions designed for new contributors. The schedule is below:

Date

Time (UTC)

Session

Summary

Session Leader

Tues 7th Aug 2012

6pm

Introduction For Contributors

In this introductory session, Jono will provide a short history of the project, discuss how the system works, the different components, how accomplishments work, and other content that helps give you a grounding in how to contribute.

Jono Bacon

Tues 7th Aug 2012

7pm

How The Daemon Works

In this session, Rafal and Matt will explain how the daemon works, how the code is structured, how the client talks to the daemon, how Twisted is integrated, and how you can contribute and help to fix bugs and add features.

Rafal Cieslak / Matt Fischer

Tues 7th Aug 2012

8pm

How the Viewer Works

In this session, Rafal and Jono will explain how the GTK viewer works, how it talks to the daemon, the different views, how preferences are handled, how translations are supported, and how to contribute and fix bugs and add features to the viewer.

Rafal Cieslak / Jono Bacon

Wed 8th Aug 2012

6pm

Writing Your First Accomplishment

In this session Jono shows you how to create your first accomplishment that can be used as part of the Ubuntu Accomplishments system. The session will cover how to write the documentation, how to create the script, adding a test, ensuring everything works, and then how to contribute it back to the project.

Jono Bacon

Wed 8th Aug 2012

7pm

Contributing Accomplishment Documentation and Translations

In this session Jono will show how you can improve the documentation for the accomplishments that are part of the system, and how you can also translate the application and documentation into your own language. This is a fantastic opportunity for Ubuntu fans to contribute fantastic content!

Jono Bacon

Everyone is welcome to join these sessions, just go to this page at the times above, and feel free to ask as many questions as you like!

  • Gizero

    Wouldn’t this work just as well as a web application?