Last week I was invited to Malta with other core app developers to attend a App Developer Sprint. Six community core app developers attended the event myself (Andrew Hayzen), Adnane Belmadiaf, Riccardo Padovani, Kunal Parmarl, Nekhelesh Ramananthan and Victor Thompson, we joined a large group of Canonical employees who work on the Client side of Ubuntu Touch.
What is a sprint you may ask? A sprint is a term usually used within Scrum or Agile development, it is a “timeboxed” effort that is restricted to a specific duration that has been decided in advance and is normally between one week and one month, although two weeks is typical. Each sprint is started by a planning meeting, where the tasks for the sprint are identified and an estimated commitment for the sprint goal is made, and ended by a sprint review meeting, where the progress is reviewed and lessons for the next sprint are identified. 
Our sprint started by firstly going through the open bugs for the Ubuntu Touch Core Apps ensuring that each bug had at least an importance level set and that fix released bugs were marked correctly. From this list of bugs we were then able to create a list of blockers, these are bugs which are stopping progress of new features or the app developing. These bugs can then be prioritised so that the app is blocked for the shortest period possible. Next we decided which parts of the app we wanted to focus on throughout the sprint and what we wanted to achieve. Finally at the end of the sprint we had a core apps management feedback meeting, in which we fed back what has and hasn’t worked within the development so far within the core apps.
Throughout the sprint me and Victor had a primary focus of making the migration of the music-app to mediascanner2 complete. This involved migrating all the listviews to use mediascanner2 models rather than being based off a localstorage representation of the media and then rewriting most of the autopilot tests to take into account the changes in structure. This was completed on the last day once all the autopilot tests were passing and is now ready for merge into trunk.
In between working on the mediascanner2 migration we were able to look at other aspects and designs for the music-app. We now have working code for migrating sheets to use page stacks, actions on a swipe of a listitem (rather than an expander), search action button in the header and prototype migration of local storage to U1DB. Hopefully these changes will land on your devices in the near future.
Face to face & Socialising
As most of the communication with other application developers in the community and Canonical is performed using IRC, mailing lists or Google Hangouts, none of us have ever physically met. By actually meeting someone in person we were able to put a IRC nickname to a face, this made each person I had been talking to on IRC actually feel ‘real’ and not just text appearing on the screen from an unknown source. Now when I communicate with them over IRC I can imagine the real person at the other end and how they may react to what was said, whereas before it was difficult to figure out their personality.
Being face to face also us to socialise together, which lead to us dining and drinking together. This caused networking with other members which enabled for me to meet new people or people I worked with on previous projects without knowing.
Ubuntu Community Team
This allowed me to socialise with the amazing community team made up of Alan Pope (popey) who manages the core apps team and who we go to when we want to rant about blockers or need to ask who to poke to resolve bugs. I’m sure popey enjoys my rants and pings frequently throughout the week (and weekend). Although I still wonder how many subdomains popey has on his site as he appears to have one for any purpose.
Michael Hall is our documentation expert who manages developer.ubuntu.com this site provides quick and easy access to any documentation for the Ubuntu SDK. I, and many others, have spent many hours reading through the docs trying to find the correct way to build our apps, so I thank Michael for collecting all of this information into one place for easy reading.
David Planella is our translation expert, he manages the mammoth task of ensuring that all the core apps are translatable into many many many languages. This task is of great importance due to Ubuntu being used in emerging markets such as China. He is also the one to blame for me being involved with the core apps team as he originally invited me to join the music-app-dev team.
Daniel Holbach is responsible for organising app development school and introducing people to Ubuntu development. Before the sprint I had not talked to Daniel much and had only seen him via Hangouts at vUDS. I was pleasantly greeted with funny and honest guy, I hope to increase my communication with him in the future.
Nicholas Skaggs is ‘the autopilot guy’ who we all go to and complain when our tests aren’t passing/working, usually because of our own poor knowledge of autopilot. But he never complains of our poor knowledge and is always there to help us improve both our own knowledge and our test suite, he was even around to help us after hours in the lobby (as shown in the image below). I hope to improve my autopilot knowledge in the future so that I have to ping Nicholas less and he has more time to work on autopilot itself.
Jono Bacon. is the community manager, and who many people see as the ‘face of Ubuntu’. This is partly due to his web presence with weekly Q&As but is also due to his genuine and hilarious character. I’m glad I was able to meet him in person before his departure from Canonical, as even though we had only just met we could talk as if we had known each other for a long period of time. I would like to take this opportunity to thank Jono for everything he has done for Ubuntu and wish him luck in the future with XPRIZE.
Blockers & Feedback
By being at the sprint with other developers allowed us to have face to face discussions with other developers over issues and blockers that we have hit. This allowed us to quickly show the problem rather than attempting to explain the issue over IRC. I was able to discuss issues which had been found in migrating from local storage to U1DB and hopefully these issues will be resolved in the near future so we can complete the migration.
We were also able to provide feedback to other components and projects that we use within the core apps. Firstly we provided feedback to SDK team in any issues we had found so far while developing with it, Nekhelesh Ramananthan provided extensive feedback with a long list of points to raise! Secondly we provided feedback to the autopilot team, who do a great job of making tools that help us ensure our apps don’t regress. I look forward to the feedback being integrated into the next version of autopilot. Lastly we had a discussion about the core apps management and how we work as teams on the projects, hopefully we should improvements in this area soon.
Lastly and most importantly thank you Canonical for providing this amazing opportunity to me and the other community contributors. All of the Canonical staff were the most welcoming and open community of people I have met, even when with other teams I was still greeted with open arms. This made the whole experience not feel like a work trip with employees who were only there because they had to be, but something special more like a family or a group of friends seeing each other. This is what makes Ubuntu and Canonical so special and why the community is still an integral part of Ubuntu.
- Sprint definition (http://en.wikipedia.org/wiki/Scrum_%28software_development%29#Sprint). Accessed 27 May 2014