00:00:20.480
Okay, good afternoon! I know you're probably feeling a bit drunk and a bit tired at this time, and that's okay. Speaking of drinks, I forgot to bring one for myself, so if I could get a hard cider, that would be really awesome. By the end of this talk, I should be more drunk than I am now!
00:00:49.120
All right, so today I'll be talking about open source war stories in the context of Spree Commerce. I'm a maintainer of Spree Commerce, one of the main e-commerce platforms, and I deal with all the user issues, the posts, all the GitHub posts, and whatnot. Open source war stories might seem like I'm battling against the users, like it's Allies versus Axis, but that's not actually the case. My goal is not to win the war; it's to make people happy through the open source work that I do.
00:01:08.720
I want them to be happy when they use Spree. I want to see them happy when they use forms. How happy do I want them to be? Well, I want them to be as happy as a kid who got a Nintendo 64 for Christmas. This kid screamed with joy, and I want to see that same happiness in users who hold Spree in their hands.
00:01:24.320
When I see posts or emails coming through my email client on my iPhone, and I see comments like, 'Wow, this is great! Thank you so much!', this fuels my passion for continuing to work on this open source project. Now, I'm going to share a graph because everyone loves graphs. Here is a graph of all the posts in the Spree user community from January 2010 to January 2013.
00:01:57.760
What you'll notice from this graph is the trend line. It might be a bit hard to see, but the trend line is actually going slightly downward. You would expect that if Spree was getting more popular, the trend line would be going upwards, but that's not the case.
00:02:06.560
You'll also notice a couple of points where the Spree user posts drop off. This is because during the summer months, specifically from July to December, people aren't using Spree. They're focused on their e-commerce platforms, and if they change anything, they risk breaking everything right before Christmas. However, come January, they return with their e-commerce needs, looking for ways to improve, and that's when we start seeing activity again.
00:02:34.840
For instance, in February 2010, 2011, and 2012, we see a pattern in the number of posts. The February posts for 2013, however, showed a significant spike. The previous trend had gone upward, indicating growing interest in Spree. A lot of people have started seeing Spree as a viable option for their e-commerce solutions. This is extraordinary to me because before I started maintaining Spree, there were only 690 open issues on GitHub, but after I took over, we received another 1940 issues created.
00:03:53.680
You can interpret this data in one of two ways. One interpretation is that Spree is getting more popular, and therefore, more users are running into issues. The second interpretation is that I'm just a fancy person who keeps messing things up. Fortunately, we're getting more comments over time, which is a good sign, as it means Spree is becoming increasingly popular.
00:04:17.440
Managing an open source project that is 99.9% positive is quite rewarding, as users generally follow the contributing guidelines. They raise problems constructively, providing detailed information that helps me assist them better. However, there was one issue, numbered 1247, that caught my attention when a user posted about deploying Spree and encountering an undefined method error. After four hours, he closed the issue, stating he found a command that fixed it, which I didn't even have time to look at. When another user later reported the same issue, I was stressed and looking for information. After some back and forth, I ultimately managed to reproduce it and fix it quickly.
00:05:23.680
This experience taught me that if you encounter an angry user who's frustrated about their problems, it's essential to act quickly to calm them down. You want to extinguish their anger as soon as possible to avoid a bigger explosion of negativity. This is the point of my work; I want to make these users happy as fast as I can, because anger can spread quickly if not addressed.
00:06:13.120
I reached out to a company on Twitter to find out more about a user who was posting complaints, and it turned out their account was managed by a contractor. It became apparent that he was likely someone who was paid poorly to maintain a Spree store, which explained his frustration.
00:06:32.639
As it happened, I wasn't able to get through various stories during my talk. Last year, Tyler had posted a piece on why people should not learn Rails, discussing some problems he perceived in the community. I responded to his post, emphasizing that this was not representative of the larger Rails community, as there are many contributors striving to improve it.
00:07:03.920
In revisiting the Spree project, I found some issues around the construction of the platform that needed addressing. One of the changes was in refactoring authentication. Previously, Spree had its concept of users separate from a host application's users. We decided to pull out the authentication component to a separate gem to facilitate this process. Users can now define how their current user should operate within their application without interference from Spree, creating a more customizable experience.
00:08:16.480
Another vital task was improving our JSON API. Before, our JSON responses were often inconsistent—sometimes returning text rather than JSON. To solve this, we started modeling our API responses after the GitHub API, which has excellent documentation. We utilized various tools like the Ransack gem to scope products and Kaminari for pagination.
00:09:17.680
The API structure ultimately enables us to return an account total and pagination alongside the products themselves. This consistency and structure have greatly enhanced user interaction with our API, allowing users to perform actions efficiently. One more significant improvement was focusing on multi-currency support, allowing users to set prices according to their local settings rather than forcing one single currency. This was a huge win for what we are targeting, enhancing the overall usability of Spree.
00:11:00.480
As Spree has grown, we've faced challenges managing the increased complexity. The open source project is continually evolving, and as we receive contributions, we strive for high-quality input. One of the things we've addressed is improving our documentation, especially for contributors. Good documentation fosters engagement and helps those unfamiliar with Spree get on board, enabling them to contribute efficiently.
00:11:35.600
Furthermore, we've implemented a continuous integration system using TeamCity, which allows us to manage builds and maintain confidence that our public-facing projects are stable. Before we adopted TeamCity, issues with broken builds could circulate widely, causing user frustration. Now, when a push is made, TeamCity verifies that everything is green before distributing updates.
00:12:10.480
By improving our workflow and adopting better practices, we're not only able to scale our efforts but also to manage user feedback more effectively. Our open-source community thrives because it centers around happy users and contributors who feel empowered to improve the platform.
00:12:26.640
Overall, my experiences managing the Spree project have taught me the value of user happiness and engagement in the open-source community. As we continue to evolve, both in contribution levels and the complexity of the project, we aim to ensure our users and contributors feel valued and supported.
00:12:54.640
Thank you for your time, and if you have any questions at all, I'd be happy to answer them!