00:01:17.390
Thank you all for coming. My name is Richard Schneeman, and I'm excited to be here today to talk about why Sprockets needs saving. For those who haven't been around since May of 2011, Sprockets is the premier asset pipeline for Rails 3.1.
00:01:36.720
Sprockets was initially developed independently before it became an integral part of Rails. As a bit of background about myself, people call me various names, and I refer to myself as a 'Ruby hero.' Today, I work for Heroku, and I want to clarify that any likenesses to Disney characters are purely coincidental and intended as parody. I'm joking, of course, but I do hope to evoke some fun in this discussion!
00:02:14.550
From 2011 to 2016, Sprockets has had over 51 million downloads. In comparison, Rails itself has had 65 million downloads, which means Sprockets is also quite popular. Interestingly, a single developer has been responsible for 2027 commits, accounting for about 68% of all contributions. In contrast, another popular project, Rails, has about 5,000 commits made by another key developer, which represents only 0.9% of the project.
00:03:31.910
Imagine the impact if that one developer suddenly walked away. Just like that, Sprockets would be in a precarious position. As a community, we have to ask ourselves: should we abandon Sprockets? Many voices might express discontent and say Sprockets has its issues, but I would urge you to reflect on what those problems actually are. We can't just rewrite something without first understanding what we aim to improve. We still have the same requirements for working with assets, and I believe we are capable of preserving and improving Sprockets!
00:04:47.900
Handling assets with Sprockets has proven manageable so far. There are many nuances involved, but Sprockets comes equipped with a clear and established API. I would like to ask how many of you maintain code or have seen code before.
00:05:35.950
Losing maintainers is inevitable and can be unexpected. For those unfamiliar, one notable case is Jim Wyrick, the creator of Rake, who passed away suddenly in 2014. It was not anticipated, nor was there a transition plan in place, which dealt a heavy blow to the community. The impact of losing a maintainer can take various forms; we might go through denial, anger, or bargaining, struggling to find a way to cope with the loss.
00:06:25.860
One of the first critical rules is that a maintainer does not owe any explanation for their departure. It's a personal decision that can be influenced by many external factors. Conversations I attempted to have with the departing maintainer, Josh, were met with reluctance, which I respect. It's essential to appreciate the effort that has gone into a project, regardless of its current state.
00:07:55.980
Another important rule is to offer maintainers respect. Critiquing software is part of the process, but it should not devolve into demonizing the creator. Critiques should remain constructive, and as I plan on critiquing Sprockets, I aim to be constructive. My focus is on identifying issues and proposing solutions to make it better.
00:08:45.930
When Sprockets came into my hands, I was initially bewildered. It's vital to recognize that maintainers are not their code—or their khakis, for that matter. Josh dedicated significant time to Sprockets, working diligently and resolving many issues.
00:10:29.950
So, moving forward, how do we keep maintainers engaged longer? What is it that maintainer's desire? They want a supportive community ready to assist in both trivial and challenging tasks. While it may seem overwhelming, sustaining maintainers can often be about manageable actions, like providing documentation to help streamline the process.
00:11:39.540
When maintainers feel supported and respected, they are more likely to stick around. Maintaining thorough documentation is essential, as it creates an inviting environment for new contributors who may feel hesitant to engage otherwise. As a developer, you can offer feedback, which can also be productive.
00:12:43.880
If you can spend just five minutes to help, that adds up! Minor contributions matter. For example, if you find bugs, suggest improvements, or contribute to documentation, this helps maintainers while also benefiting the whole project.
00:14:31.960
If you can dedicate ten minutes, consider creating a repro or example application to clarify problems that arise. It can save hours, as clear test cases streamline the troubleshooting process. This encourages maintainers to focus on critical issues.
00:16:05.020
Initially, I wanted to discuss keeping maintainers longer and how to sustain this culture, but I realized the focus needs to involve everyone in the process, including helpers. Creatively fostering a culture of collaboration encourages everyone to pitch in to make the projects better.
00:18:47.620
Moving forward, realism suggests that maintainers, even those who have worked diligently, may eventually depart. Consequently, we need to plan a sustainable culture around these efforts, ensuring satisfied and engaged helpers remain a part of Sprockets.
00:20:40.510
As for documentation, it is essential to craft them with helpful guidance rather than cryptic messages that make understanding difficult. Ultimately, the documentation should meet users' specific needs in a clear and organized way, recognizing different accessibility needs.
00:22:36.400
Catering documents to various skills can strengthen the community. Recognizing that individuals have different needs and experiences allows the Sprockets community to be more accessible to all users.
00:23:56.169
Along with documentation, we must strive to improve code readability and structure to facilitate contributions. Maintainable code attracts helpers—clear organization and effective architecture help newcomers understand the project.
00:25:07.609
Contributors want respect and acknowledgment for their efforts. Creating a positive culture starts by appreciating contributions—offering recognition where it's due motivates others to be involved.
00:26:31.780
For those who pick projects that are previously abandoned due to a lack of maintainers, it's essential to find actionable tasks and start the process of rebuilding. Working on a small task, perhaps a bug fix, helps mold new contributors into confident maintainers.
00:27:46.710
Consistently checking in for documentation updates and supporting a culture of acceptance leads to longer-term engagement.
00:28:09.680
It is crucial to embrace a culture of humility, striving for excellence without being overly critical. Critiques should be about improving the project rather than speaking poorly about others. When issues arise, we can reach out constructively.
00:29:41.020
Ultimately, the life cycle of any project requires contributors to remember that no one is irreplaceable. The pieces of our collective history will continue to build upon each other's foundations. We can preserve our legacy by engaging positively and constructively.
00:30:32.640
As maintainers and helpers, each of us has the capacity to contribute meaningfully. It doesn't have to be grand gestures; forming connections with one another is enough to make a significant impact.
00:31:44.650
If you need suggestions for getting started, think back to one line of code or one critique—comprehensive products grow from countless incremental efforts.
00:32:34.280
In summary, it’s vital to ensure that while maintainers may come and go, we respect and appreciate their contributions. Let's save Sprockets together!