A couple weeks ago, we took a trip to Denver, Colorado for our AppCenter sprint. The team got in on a Wednesday night and hacked on AppCenter from Thursday (the 16th) through Monday (the 20th). We accomplished a lot over the five days and are happy to share our experience and progress with you!

Day 0 (Wednesday)

Wednesday was our traveling day. Everyone arrived at various times throughout the day, starting with Nathan. He and Cassidy started the day by doing a grocery run, and loading it all in the AirBnB. Cody and Blake arrived a few hours later (after Cody mustered enough courage to get on the train), but soon enough they met up with the rest of the gang. Felipe and Dan arrived later at night, and we all did the best we could do after a long day of traveling:

Day 1 (Thursday)

Thursday kicked off with a battle against breakfast. Between scavenging for pans and cooking utensils, Dan and Felipe managed to make eggs, hash browns, and sausage for the team to chow down on before getting started.

The team quickly decided that migrating AppCenter to GitHub would allow us to work much more quickly, but in order to do that we needed to do some cleanup on Launchpad. The first order of business was reviewing and merging outstanding branches into AppCenter. We knew that during the sprint we’d introduce changes that would need further polishing, so we also made a new stable release of AppCenter that included those fixes and translation updates. More details about that in our March updates post.

After we’d adjusted for jet lag, we mosied over to System76 and continued our work. We converted AppCenter’s bzr branch into a git branch, set up a new project on GitHub, and pushed. Outstanding bug reports were imported into GitHub issues, and translations moved to Weblate. For actually building the AppCenter package, we have an auto importer running on Launchpad. From the perspective of delivering unstable AppCenter updates to our Daily PPA, nothing has changed.

From there, we split up. Blake, Cassidy, and Dan took over the whiteboard room and the rest of the team set up shop in a nearby corner of the office to get coding. Before the sprint, Dan had prototyped our pay-what-you-want widget and the Stripe payment dialog. This allowed Felipe and Nathan to really hit the ground running and dive into accessing Stripe API with LibSoup. Meanwhile, in the whiteboard room, we discussed the goals of the home page and some of the common pitfalls we’ve experienced with other app store home page designs. We talked a lot about increasing discoverability and maintaining a high rate of churn. We talked about designs that would be visually interesting and engaging, but ensuring that the barrier for developers to use them would be low. One thing we quickly discovered was that Dan is incapable of sketching anything smaller than half of the whiteboard, which led to a lot of erasing and redrawing by Cassidy. By the end of the day, design team had kicked out some tidy wireframes and listed the attributes and behaviors of the various homepage widgets, desktop team had successfully generated test charges, and we ran into and addressed a few concerns that came up during development like email receipts and the feedback process when a charge fails.