00:00:04.860
Taking it to my talk, I'm honored to be here. I know some of you might be a little bit tired, so I appreciate you making the effort to come in.
00:00:11.460
I left a little bit early, but I noticed that some of you are quite the dancers! I did not know that about our community. That's pretty cool; you're out here looking like the Finnish Prime Minister dancing around. Great stuff—well done!
00:00:29.279
I'm Adarsh Pandit, I'm from California in the United States, and today I'm going to talk about the technical and organizational infrastructure of our Ruby community. Specifically, I will cover critical projects in the Ruby world, how they work, who supports them, and so forth.
00:00:43.320
Many people this week have referenced Ruby and Rails thriving for one hundred years, and I will share my thoughts on how we might accomplish that.
00:00:56.460
I'm so excited to be here in Finland. This is my first time visiting, and it's such a beautiful city! It's really easy to get around, and the food is delicious. It's been a great experience. I also like how it’s a bit of a contradiction; it's supposed to be the happiest place on Earth yet has the angriest music.
00:01:25.080
Today’s goals for our talk are threefold. First, we are going to learn more about the Ruby infrastructure systems that many of us depend on, some of us daily.
00:01:31.200
In this talk, I am going to expand the definition of infrastructure to include some elements that you might not necessarily think of; not just servers, code, and network capabilities, but also the critical components that hold all of us together as a community.
00:01:51.479
Second, I hope to inspire you to get involved with the Ruby community and Ruby infrastructure, or at the very least, encourage you to persuade your organizations to become contributors to our community.
00:02:10.679
Third, I will discuss bicycles and their relationship with our topic.
00:02:16.800
Why are we covering this material? We rely on so many things without understanding how they work, who works on them, or what keeps them functioning.
00:02:29.340
We especially don’t think about the people doing the work or how these projects are run. This presents a paradox: we don’t need to care about what happens when we run 'bundle' or 'bundle exec' to load our packages during development.
00:02:41.400
When the infrastructure is done properly, it feels invisible—it’s like it has always been there and always will be. However, everything comes to a screeching halt when things like that don’t work.
00:02:57.840
If you remember anything from my talk, I’d want to emphasize that someone has to build and maintain the infrastructure of our community, and that someone might be you. Furthermore, someone has to pay for building and maintaining our infrastructure, and that may also be you or your company.
00:03:16.319
A little bit about my work life: I have been a Ruby developer since 2011 and a consultant. I have served as a director with Ruby Central and Ruby Together for six years.
00:03:30.840
Ruby Central, some of you may have heard of it, is a non-profit that supports Ruby infrastructure. We organize RubyConf and RailsConf every year, pandemic notwithstanding, and we also pay for much of our shared open-source infrastructure, including Bundler and RubyGems.
00:03:48.959
We support several other smaller projects, but those are the main ones we focus on. I want to put in a quick plug here for RubyConf and RubyConf Mini, both of which are happening in a few weeks. They will be super cool and a lot of fun, so get your tickets now!
00:04:06.840
The reason we are doing two RubyComps is that many of our attendees cannot travel to Texas due to safety concerns. Gemma, who gave a great talk yesterday and is sitting here in the front row, has done a tremendous amount of work to organize another way for those folks to be part of the RubyConf experience, so definitely look those up, and if you can attend, it would be great to see you there.
00:04:26.340
A bit about my non-work life: I love bicycles. At the beginning of the pandemic, I started cycling, and it has developed into a deep affection for the activity. Like many parents, I was homeschooling my two small kids, and I quickly realized I needed an outlet for my mental health.
00:04:44.940
I bought a road bike to exercise, get outside, and enjoy a socially distanced environment. I became really into it and now ride a few thousand kilometers every year.
00:05:05.580
This is a picture of me riding on a charity ride from San Francisco to Los Angeles, approximately 500 miles, or I think 800 kilometers. I ride for fun, but I also take my kids to school.
00:05:21.660
This is a photo of my kids on an e-bike specifically designed for that purpose. My wife took this photo on the day of my younger one's first day of kindergarten. This is a special time for us.
00:05:33.840
When riding around on a bicycle with my kids, safety becomes the foremost thought. I think a lot about how the world around us could be safer for our children.
00:05:45.840
Since I started taking my kids to school by bike, I have become increasingly aware of the road infrastructure in our town, which is Oakland, California.
00:05:57.960
Today, I am going to talk about infrastructure from two perspectives. Excuse me for a moment.
00:06:11.280
I plan to connect two important areas that are crucial; for me and for all of you in the room—bicycle infrastructure and Ruby infrastructure. I hope to aid our understanding of what leads to good infrastructure and how it can improve our lives.
00:06:30.360
The way I view things regarding infrastructure is radically impacted by a book titled 'Thinking in Systems' by Donella Meadows.
00:06:41.760
To clarify, I am not an expert on systems thinking; I’m sure many of you know much more about it than I do. I’d love to talk and learn from you afterward.
00:06:57.900
However, I learned a great deal from this book. Although she wrote this book in the 90s, she unfortunately died in 2001. Her colleagues edited her manuscript and published it in 2008.
00:07:10.259
The central concept is that system behaviors are not caused by external events, but rather are intrinsic to the system itself. The purpose of a system is what it does; it’s defined by its behavior.
00:07:34.680
When we encounter unexpected outcomes in the world, we might often say the system is broken.
00:07:41.040
In the United States, some people say the election systems are broken, or in my town, I frequently say the transit systems are broken. However, no system is truly broken—it performs its function as designed, even if we might not like the outcomes.
00:07:53.580
If a system isn’t doing what we expect, we must understand it, get involved, and redesign it. I plan to discuss systems extensively, so let's define the term quickly for clarity.
00:08:11.280
For me, a system is a collection of components that interact with one another to form a whole. This definition is intentionally broad because there are many kinds of systems.
00:08:24.600
For example, at this conference, we have an AV system allowing you to see my slides and hear my voice; there's a heating system keeping us warm.
00:08:33.180
Lunch systems organized by the event coordinators help ensure we get appropriate food, and coffee delivery systems keep you awake during this talk—thank you for that! Of course, computer programs are complex systems as well.
00:08:49.680
This is Olu, I think I'm pronouncing that correctly—if I'm not, I apologize. Olu is a town about 600 kilometers north of us in central Finland, home to about 200,000 people.
00:09:00.180
Temperatures there reach below freezing for six months of the year, even during the day. It is also considered the winter cycling capital of the world.
00:09:10.080
Their bike and pedestrian paths are part of a network of almost 900 kilometers and are shared between cyclists and pedestrians. However, when it snows, the painted signs on those paths become invisible, leading to collisions.
00:09:20.640
To solve this safety issue, city planners constructed innovative lamp structures that project signage onto the snow, helping ensure everyone understands their designated space.
00:09:30.000
They also collect the snow, mix it with gravel, and compact it to create a firm roadway. I should note that winters in Finland are particularly dark, so this setup works well for most of the day.
00:09:38.220
For example, in January, there are only about four hours of daylight between 10 a.m. and 2 p.m. Despite the freezing conditions, 22 percent of all trips in this town are made by bicycle.
00:09:50.100
This shows how an efficient transportation system allows people of all ages to cycle even during harsh weather. This is a school in the same town with 1,200 students; on this particular day, the high was minus 17 degrees Celsius, or 1 degree Fahrenheit.
00:10:06.000
On that day, 1,000 children rode their bikes to school, over 80% of the students. Imagine all the systems in place that made safe cycling for all these children possible!
00:10:17.160
This was designed to enable children to safely ride their bikes to school despite the weather.
00:10:31.860
Next, let's look at Tom Perry, another town in Finland, where a street was redesigned between 1998 and 2022. Let's analyze some differences between these two photos.
00:10:44.160
On the left, we see a lot of cars, while the right shows various modes of transport at work. This area is before the redesign.
00:10:54.840
In the reimagined area, we can see trams and tram tracks, fewer cars, more bicycles, and pedestrians. People are walking around—this denotes plenty of options for transit.
00:11:03.120
The purpose of the system, in my view, is to move people along roadways as safely as possible.
00:11:16.680
On Wednesday morning, I took a bike tour led by my guide, Yari, who used to be a bike messenger. Here on the left, we can see the line of parked cars acting as a barrier between moving traffic and the bike path.
00:11:27.840
This setup builds fault tolerance into the system. Drivers don’t have an option but to avoid harm to cyclists. It's also a beautiful autumn day in Helsinki!
00:11:41.580
This is Camino Pablo Road near my house in California, which I ride regularly. Until my visit to Finland, I had never thought twice about it. Here, the bike lane is a narrow strip of pavement delineated by cracked white paint.
00:11:55.920
The lane merges off to the side, forming an off-ramp from a three-way overpass above. Cars come off quickly and continue at high speeds as they merge onto this road.
00:12:09.240
This setup, unfortunately, presents a significant danger for cyclists. However, this system is not broken—it functions correctly, allowing cars to go fast as designed.
00:12:17.160
Interestingly, while researching this topic, I encountered a meme that resembled this very road I ride. This experience was humbling for me.
00:12:34.860
What are the outcomes of these two systems? In Finland, investment in transportation—including transit cycling and car infrastructure—has completely eliminated pedestrian and cyclist deaths. In 2019, for the first time, no pedestrians or cyclists died as a result of traffic accidents.
00:12:51.480
Meanwhile, the U.S. tolerates 850 bicycle deaths and 47,000 injuries annually; those are 2019 figures, and the numbers have likely increased. We also allow 6,000 pedestrian deaths, along with 76,000 injuries, and over 40,000 driver deaths—most of which result from collisions with other drivers.
00:13:07.680
The purpose of Finland's transportation system is not just about providing access, but also about eliminating deaths and getting people safely where they want to go.
00:13:23.880
In contrast, the U.S. systems result in these alarming figures. What accounts for the differences between the two? How did Finland achieve such dramatically different outcomes?
00:13:32.640
For the past 50 years, every fatal crash has led to the formation of a multi-disciplinary accident assessment panel. These panels are funded through revenue from auto insurance premiums.
00:13:41.880
Their membership includes experts from traffic planning, human behavior, law enforcement, and healthcare. Following each investigation, a public report detailing their findings and recommendations is released.
00:14:05.640
Helsinki officials note that their findings frequently lead to policy changes, such as altering road geometry or changing traffic light configurations. Essentially, after each crash, a new group investigates the root causes.
00:14:16.100
This collaboration involves many disciplines to attack the problem from different angles, funded by the auto users who are the primary cause of the issues. Most importantly, the learning from these investigations results in systemic changes.
00:14:28.260
In contrast, in the U.S., we do conduct multi-disciplinary investigations for airplane crashes, but not for car crashes. There is little priority for making streets safer for drivers or pedestrians.
00:14:42.840
The government tends to blame the drivers; in 2013, a chart was released indicating that 94% of crashes are the drivers' fault. This system does little to address how dangerous cars can be; it deflects focus onto the people driving instead of acknowledging poor road design.
00:14:55.260
So, what leads to the better streets and safer systems in Finland? In my view, the difference is governance.
00:15:07.140
Governance involves how a system is managed: the committees, reports, meetings, documentation, onboarding, research, and so forth. While it may sound boring, that mundane work is crucial—it saves lives.
00:15:23.040
Now, as to why we are discussing cycling design in a Ruby conference, I believe that similar principles supporting Finland’s cycling infrastructure can also help our programming community flourish.
00:15:30.720
Things like transparency, documentation, competent advisory boards, and setting clear goals are all parts of governance. They create accountability and participation that lead to durable systems.
00:15:44.520
Now, let’s look at the essential parts of the Ruby world and ask about governance.
00:15:53.520
There are several essential parts to Ruby World, including the Ruby language itself, Rails and other frameworks, gems and libraries, community events (like conferences and meetups), and the learning world, consisting of tutorials, videos, and books.
00:16:02.220
I would suggest these six elements form the core components that make Ruby World what it is. If you remove any piece, writing software with Ruby becomes much harder, less productive, and less enjoyable.
00:16:13.500
Let’s consider how these areas are governed—I'm interested in three key areas: who is doing the work, how decisions are made, and who pays for the work.
00:16:21.420
Before I go on, I must mention that this talk has more questions than answers. I'm hoping we can inspire discussions about project health and improvement.
00:16:29.580
I also expect to be corrected politely if necessary. Some answers here may be unclear, but that's alright—there's plenty of work to be done collaboratively.
00:16:40.740
I've intentionally left out several projects, and I’m not erasing anyone. It’s just that 30 minutes feels much shorter than you'd think.
00:16:49.260
When I ask for transparency, it's not to call anyone out or imply negative intentions; rather, I believe transparency fosters accountability and encourages participation.
00:17:01.540
My goal is to get us to that 100-year mark, as Mats emphasized in his keynote. I want the Ruby community to last a long time.
00:17:09.180
Let's begin with MRI Ruby. Who does the work here?
00:17:18.580
While Mats is mentioned, the official core team isn’t listed clearly on the Ruby language website. Many of us have a sense of who makes up the core team based on GitHub contributor activity.
00:17:27.720
There isn't definitive information available about that team, which could be beneficial to see documented.
00:17:33.640
Decisions in Ruby are usually made through public conversations in the bug tracker, where anyone can read along.
00:17:43.860
Minutes are recorded and stored in a repository, showing that while Mats is the ultimate decision-maker, there is a process in place for these discussions.
00:17:53.280
The governance model often referred to as the BDFL model means "Benevolent Dictator for Life," though Mats has hinted he may retire.
00:18:02.160
How is governance structured in MRI overall? I find it reasonably effective given the consistent, steady progress in the language over the years.
00:18:14.520
Ruby 3 is significantly improved over Ruby 2. A succession plan might be necessary for risk mitigation, but overall, the governance appears to be functioning well.
00:18:25.800
Additionally, I believe the original mission of Ruby, which is programmer happiness, has favorably influenced the decision-making process, guiding the goals and values of the project.
00:18:34.440
While it would be great to have all this information clearly articulated on the website, everything seems to be running quite well for now.
00:18:43.740
Regarding who pays for Ruby development, it's unclear. There are many half-answers readily available online.
00:18:56.760
As mentioned in the keynote, Mats should enumerate the number of organizations or companies supporting Ruby, but such information could also be organized on the website.
00:19:06.180
Let’s look at Rails: who does the work there?
00:19:10.440
The Rails team has done well in documenting the contributors and decision-makers involved in the project, with a clearly defined hierarchy consisting of core teams, committers, and the issues team.
00:19:20.160
New contributors are welcomed, and there’s a guide outlining the process to get involved.
00:19:30.240
There has been a recent push toward establishing formal governance within Rails, which is a positive development.
00:19:39.660
A blog post titled "Rails Governance" was released last year, noting the changes.
00:19:49.560
Another big step was taken when core team member Eileen asked for greater transparency and improved governance during her talk at RailsConf.
00:19:58.440
So how are decisions made within Rails? A movement towards establishing formal governance is underway, with a focus on making contributions easier for new people.
00:20:08.040
Companies are stepping up, often paying for developers to work on Rails, though these contributions are still too dependent on personal financing.
00:20:15.780
It seems organizations currently assess their investment in projects like Rails based on community benefit.
00:20:23.460
Despite this support, we should contemplate putting protections in place to ensure financial contributions don't unduly influence development.
00:20:31.680
It's crucial to have these conversations before problems arise, and I am hopeful that as governance in Rails progresses, these issues will be addressed.
00:20:37.860
Now, let’s discuss Bundler, our package management system. Since Halloween is approaching, let me share a spooky tale.
00:20:46.740
Please recall that in January 2013, RubyGems was hacked. Do any of you remember this incident?
00:20:53.460
The attack stemmed from a gem cleverly named 'exploit' that exploited a YAML execution vulnerability. The code looked for configuration files containing secret keys and sent them to a pastebin site.
00:21:03.840
This action exposed all the passwords for the RubyGems server. The maintainers quickly shut down the site to protect everyone while attempting to restore a secure version.
00:21:10.320
The result was that RubyGems went down, halting all Ruby development worldwide. This outage lasted around two or three days.
00:21:20.640
The people maintaining RubyGems did what they could to rectify the situation, but one of the key failure points became apparent.
00:21:27.960
Back in 2013, being a maintainer was merely a hobby; they were volunteering their time and did not have incentives or resources.
00:21:34.680
The exploitation had even been reported days before it occurred, but no one had time or energy to address it due to other obligations.
00:21:41.520
In 2013, many large companies were profiting from Ruby and Rails infrastructure, while our infrastructure was mostly volunteer-run. It's astonishing this issue had not happened sooner.
00:21:49.440
The system didn't break. It limped along due to neglect—it performed as designed because there wasn't the proper support for its maintenance.
00:22:05.460
So what happened afterwards? Ruby Together was established to facilitate funding for essential projects like these. While it was not flawless, its formation prevented outages similar to the one in 2013.
00:22:16.020
In my opinion, it has been largely successful, and I’ve been a board member since the early days.
00:22:25.620
Though it has been better than not existing, it is important to consider ongoing governance.
00:22:34.920
Now, focusing back on Bundler, who does the work? The maintainers on the site are responsible for making decisions.
00:22:44.640
The project functions through GitHub issues, where a consensus model similar to other projects is used. Approximately 60 to 70% of funding comes from Ruby Central, with the remaining portion made up of volunteer effort.
00:23:00.240
Now shifting to our libraries and gems, the picture becomes fuzzier. Many developers are maintaining their gems on a volunteer basis.
00:23:05.520
Decision-making mainly happens among individual maintainers or their small teams, who might collaborate part-time.
00:23:12.000
Generally, there isn’t a solidified way for people to get enough financing to maintain their libraries full-time.
00:23:21.600
Patreon and GitHub Sponsors work well but aren't frequently utilized.
00:23:28.920
Community projects serve as the connective tissue for Ruby infrastructure, though the funding for community initiatives is often limited.
00:23:37.740
This makes governance an interesting question for the Ruby community.
00:23:40.620
I won't delve into further details about this broad category, but community events like conferences, meetups, newsletters, and podcasts all help bind us together.
00:23:52.440
And learning, which encompasses tutorials, books, and Q&A sites, helps facilitate knowledge transfer, although typically too small to warrant formal governance.
00:24:03.000
We should focus on implementing governance practices into our work, as establishing a structure invites regular meetings, note-taking, and future-oriented thinking.
00:24:09.600
These ideas may initially seem mundane, but they are a crucial step toward healthier projects in the future.
00:24:20.040
My message today is simple: we are part of a remarkable programming community, and I believe that everyone present today agrees with that sentiment.
00:24:30.840
Our community consists of varied systems that are critical to sustaining a healthy programming environment. My goal was to highlight those systems while encouraging you to think about how we can keep them healthy.
00:24:41.880
So I ask you to reflect on your roles within these systems, as well as your company’s involvement. Perhaps I am mistaken in asserting that governance is necessary, but if you disagree, get involved and demonstrate your vision for the right path forward.
00:25:12.840
Mats mentioned during his keynote that open engagement is crucial for the survival of Ruby, which is now a mature ecosystem. Although many projects are stable and perhaps even boring, it's worthwhile to consider how we could improve. Real progress depends on our shared contributions.
00:25:43.680
To summarize my thoughts, infrastructure is quite dull but absolutely essential. We should all be mindful of what makes Ruby World remarkable and help where we can; strong governance can bolster that infrastructure.
00:26:02.520
As we engage in conversations about enhancing our community, remember Dr. Meadows' words: the scarcest resource is not oil, metals, clean air, capital, or labor—it is our willingness to listen to each other, learn from one another, and seek the truth rather than assert our correctness.
00:26:16.140
I hope I have contributed a bit of that here today. Thank you very much!
00:26:41.879
So please give a huge hand to them! None of this is possible without their labor. Also, thanks to the sponsors; none of this happens without their support.
00:26:57.040
And of course, thank you to all of you for being here and listening. I truly appreciate it.
00:27:10.140
Hi Josh, thank you so much! I’m not going to let you go just yet.
00:27:16.920
While listening to your talk, I found it quite eye-opening. We had a brief discussion earlier about how Finnish infrastructure functions, particularly relating to biking.
00:27:23.640
Coming from Helsinki, which does not receive as much snow or cold as places further north, one tends to take for granted that children bike to school every day.
00:27:37.360
Only when someone points it out, as you have, do you realize how interestingly functional that is.
00:27:47.000
You also made a great point regarding the accident assessment panel. In Finland, after every accident, a serious official typically comes forward to explain their findings.
00:27:57.480
This contrasts with the way officials in many places behave. I just had to look up the book you mentioned, 'Thinking in Systems,' which has received rave reviews on Amazon. Can you tell us more about why we should read it?
00:28:14.520
That is a tough question. I think that reading the book changes how I perceive the world. Like I mentioned, this room is filled with various systems that we often overlook.
00:28:32.160
They are all interconnected—the AV system, the electrical system, the architectural system—each is dependent on several others. It’s like learning to see the underlying framework.
00:28:49.140
Moreover, it highlights how fragile these systems can be; when failures occur, we often assume that the cause is simple.
00:28:56.880
However, the truth is that many factors interact, leading to the breakdown. There was an interesting history behind this building—we’re sitting in a space built in 1908 by early labor unions.
00:29:05.760
It's incredible to consider the systems that converged to create our environment.
00:29:18.240
Regarding governance, which other communities do you admire most?
00:29:24.600
I had originally omitted this from my talk for brevity, but I aimed to learn from how other communities are structured.
00:29:34.560
I found Rust to have a strong governance framework. Rust’s homepage offers a governance menu that outlines how they develop their processes.
00:29:41.420
Their RFC process is well defined, and they maintain a roadmap to clarify upcoming changes. This level of transparency sets an excellent precedent.
00:29:57.060
Additionally, the transition in Python governance also stands out to me. When Guido van Rossum unexpectedly resigned, the core team reacted quickly.
00:30:04.560
They established a steering council to implement a new governance structure, utilizing their PEP system to propose and discuss changes and create a consensus.
00:30:14.640
I think the way they navigated that transition turned out quite well.
00:30:24.300
What about the governance of Ruby language specifications? What can be done to ensure their usability among other implementations?
00:30:31.200
That's an excellent question! I believe strong communication among teams is essential. It would be beneficial for teams working on other Ruby implementations, like Truffle Ruby, to interact with the MRI team.
00:30:43.560
Lastly, in terms of financial support, what are some of the best avenues for companies to support Bundler and other essential tools?
00:30:58.440
Ruby Together operates under Ruby Central, and we have received unsolicited financial support from various organizations.
00:31:07.860
Organizations, including Shopify, have stepped up to support significant endeavors in improving things like security, resulting in valuable community contributions.
00:31:17.880
Moreover, we’re currently figuring out how to ensure a solid governance structure to manage incoming support and sponsorship.
00:31:24.360
Ruby Central has shown significant progression in capacity building; moving forward, we would be eager to connect with organizations interested in backing our efforts.
00:31:36.420
I can confidently say that these collaborative funding efforts will greatly benefit everyone involved, and I’m optimistic about the community moving forward.
00:31:49.320
Your storytelling is remarkable! I love how you connected cycling systems in Finland with Ruby's infrastructure challenges.