Programming Philosophy

Summarized using AI

Opening Keynote

David Heinemeier Hansson • April 03, 2019 • Minneapolis, MN

In the opening keynote of RailsConf 2019, David Heinemeier Hansson addresses the evolution of the tech community, emphasizing the importance of fresh perspectives brought by newcomers. He reflects on his early experiences and the genesis of Ruby on Rails, underscoring the balance between ignorance and knowledge in software development. Hansson advocates for a mindset shift away from viewing open-source contributions as transactional, emphasizing intrinsic motivations such as autonomy, mastery, and purpose.

Key points discussed include:
- The Growth of the Community: There is a healthy influx of new individuals in the programming community, suggesting the industry is evolving positively.
- Ignorance as Power: Hansson discusses how naivety allows for innovative thinking, while also recognizing the pitfalls of ignorance that new entrants may encounter, leading to repeating the mistakes of the past.
- Reading as a Different Approach: This year, Hansson opts to read his talk, inspired by prior presentations and the benefit of considered communication.
- Open-Source Dynamics: He critiques the prevailing view of open-source development as reliant on a sense of debt or transactions. Hansson asserts that the belief in scarcity within software contributions is flawed and harmful.
- Purpose and Meaning in Work: Drawing from psychology, he explores how a loss of purpose correlates with dissatisfaction in the tech industry, and emphasizes the importance of both self-actualization and self-transcendence.
- The MIT License: Hansson portrays the MIT license as a paradigm of altruism, contrasting it against the more restrictive GPL, which he believes fosters a culture of fear and obligation.
- Personal Responsibility for Meaning: Encouraging developers to find personal truths and purpose, he advocates for a jubilee, a release from obligations, urging contributors to engage with the community out of joy rather than duty.

In conclusion, Hansson calls for a celebration of open-source contributions without the burden of transactional expectations. He urges the audience to foster genuine collaboration driven by intrinsic motivation, thus cultivating a more meaningful and expansive community.

Opening Keynote
David Heinemeier Hansson • April 03, 2019 • Minneapolis, MN

RailsConf 2019 - Opening Keynote by David Heinemeier Hansson

_______________________________________________________________________________________________

Cloud 66 - Pain Free Rails Deployments
Cloud 66 for Rails acts like your in-house DevOps team to build, deploy and maintain your Rails applications on any cloud or server.

Get $100 Cloud 66 Free Credits with the code: RailsConf-19
($100 Cloud 66 Free Credits, for the new user only, valid till 31st December 2019)

Link to the website: https://cloud66.com/rails?utm_source=-&utm_medium=-&utm_campaign=RailsConf19
Link to sign up: https://app.cloud66.com/users/sign_in?utm_source=-&utm_medium=-&utm_campaign=RailsConf19
_______________________________________________________________________________________________
#railsconf #confreaks

RailsConf 2019

00:00:21.109 It’s really exciting to be here as I've now been at RailsConf for, I think, 12 or 13 years. It’s wonderful to see so many new people here. This community isn’t just growing old together; there are a lot of fresh faces and many newcomers entering the industry right now. I believe the industry really needs that. This is a unique time for us to do things differently and to think differently.
00:00:50.300 A lot of that doing differently and thinking differently needs to come from people who are showing up here for the first time or who have just entered the industry. When I first showed up in the industry, I attended my first conference in 2001. I met the creator of Ruby, Matz, and a bunch of other people and was excited, but I had no real understanding of where I was, why I was there, or what was going on. I was just learning to program, and about two years later, Rails was born. Rails was born in part because I was one of those people who showed up knowing nothing. I had a very little understanding of the history of computer science in general. I thought, 'Okay, I’m just going to try and do the things that I think are right,' and that approach led to something different. Rails wasn't like the other frameworks.
00:02:18.330 I think that difference comes from the ignorance of youth—whether that youth is in terms of age, experience, or simply being new to a community. When you show up as someone who is green, unaware of what you’re not supposed to do, or what you’re not supposed to start or question, that situation is incredibly powerful. However, there’s a flipside to that, which I'll discuss later. Not knowing anything is not always the best scenario either; there’s a trade-off to it. This ignorance sometimes leads you to encounter the same problems that others before you faced or to fall into traps that many have already walked into.
00:03:02.890 So there's a delicate balance here—on one hand, it’s wonderful to know nothing; on the other hand, that can be hampering. I’ll try to weave this thread through my talk this morning. Actually, let me confess something: this isn’t much of a confession, but this is not just a talk; it's a reading. I wrote my entire talk out, which I've done in the past in sketches, and then I went on stage and tried to freestyle based on what came to mind at the moment when I saw the slides before me. This year, I wanted to try something different by actually reading my talk.
00:03:41.500 But don't worry, there will be pictures too. One of the things that motivated me to think about reading is I read a lot these days. I read several books every night. One of them is 'Llama Llama Red Pajama'—I don't read that one as often anymore since I kind of got tired of it—but I read books every night and I really enjoy it. Not only because it’s fun to read, but also because you engage with something that has been considered.
00:04:07.090 In the past, when I walked up on stage, I may have had rough ideas about the connections I wanted to make, but 'considered' may be a bit of an overstatement at times. This time, I wanted to read something that I had considered for more than just the three seconds of my synapses firing before I said something. I also wanted to do a bit of a reenactment. This is Giles Paquette, who in 2003 did a dramatic reading of a blog post I wrote called 'Rails as Omakase.' I encourage you to look it up after this talk. Just go on YouTube and search for 'Rails as Omakase,' and it will be the first thing that pops up. Giles is a great dramatic reader.
00:04:52.180 I used to think that I wanted to try to imitate and mock myself in that YouTube video. Additionally, this is a picture of Aaron Patterson—most people probably don’t know who he is, but they do know who Tenderlove is. This is Tenderlove giving a talk at Code Genius in 2015. The way I ended up there was through the YouTube recommendation algorithm. I went to Giles's video, and then they recommended other people, leading me to Tenderlove. He was the first recommendation from the algorithm. The way he introduced his talk was by saying, 'This is not a soft talk; this is a technical talk.' And I thought, 'Wow, this is really pathetic because my talk is the opposite of that. This talk is not a technical talk; it is a soft talk.' However, I think we've moved beyond that way to address things.
00:05:55.270 I don't believe any of the topics I’ve examined are soft or easy in any way. In fact, it has taken me far longer to learn and appreciate these concepts than it has to appreciate the intricacies of programming. This talk is about how to find yourself—or at least how I found myself in open-source and in this community. The wonderful thing about conferences is that you don't just hear the same things repeated 50 times. People show up with different ideas and different approaches, and that’s how it should be.
00:06:59.800 So, with that final warning: even though this is a reading, and I have indeed considered these words, this is not a final manuscript. I have not labored over this for years; I labored over this for weeks—actually, about a year. I usually start thinking and planning what I want to talk about at RailsConf about a year in advance, jotting everything down in my notes app on my phone.
00:08:07.099 Two weeks before the conference, like a child on Christmas, I giggle when I open it and think about what I mused over this year and what I want to explore. That is to say, there aren't any new ideas in this talk. It’s a set of connections between existing ideas that I will try to present, which is a fitting description of my life's work. I don’t have a lot of new ideas; instead, I make connections between existing ones.
00:08:52.050 Like my code, the code that I release is not finished. It needs patches, and I’m sure it has bugs, so keep that in mind. This doesn’t cover all the cases either, so I present this partly as a warning and partly as a disclaimer. I want to point out that this isn't a universal truth I’m presenting; it will not apply to everyone and will not apply in all situations. The main thing it applies to is me, and you're free to extrapolate as you see fit.
00:09:52.960 Now, let's begin with David Graeber's book 'Debt: The First 5,000 Years.' Graeber explores the fascinating history of debt, money, and economies. He starts by debunking the common myth that, prior to coinage, everyone was trapped in an inefficient mode of barter.
00:10:06.050 If you had a chicken to give and wanted sugar from Gandalf, but Gandalf was a vegetarian, you would first need to trade your chicken to Frodo for barley to finally get to Gandalf for sugar. What a terrible state of society! This is how most economists, from Adam Smith onward, have described the inefficient barter economies prior to the advent of coinage. This narrative is a great sales pitch for modern commerce, but it's mostly built on sand. Communities prior to the advent of coinage didn’t strive to settle their trades on the spot. They relied on a much more egalitarian, long-running concept of reciprocity.
00:11:15.180 It’s much closer to the Communist slogan of 'from each according to his ability, to each according to his needs' rather than the quid pro quo paradigm we take for granted in our market-based society. The problem, as seen through modern eyes, with early pre-money egalitarian societies was partly that they didn't scale. Have you heard that one before? They relied on community bonds to enforce a collective sense of what was good for the group, backed by effective corrective measures such as family obligations and honor. Getting ostracized was always looming in the background.
00:12:24.490 These social structures are much easier to maintain at the level of a tribe than at the level of a city or nation-state. Why? Largely because of the freeloader problem—the fear that if we don’t feel like we have direct family bonds that keep our shared faith together, society will fill up with moochers and leeches, those who exploit others to do all the hard work while enjoying the fruits of that labor.
00:13:11.190 This fear remains central in modern societies. Witness the ongoing political appeal of highlighting the excesses of welfare kings and queens or the dangers posed by immigration. This is a fear rooted in the freeloader problem, based on the notion of scarce resources in need of protection. There just isn’t enough to go around; the party is already full. Humankind does indeed have some reasonable historical scars, which have impeded it from forgetting the Malthusian specter—the idea that there is a hard limit on how many people a society can support before it runs out of resources and everyone suffers.
00:14:29.809 These scars were formed through millennia of virtually non-existent productivity growth, which kept the human race constrained by the threats of not enough food, famines, plagues, and other life challenges lived at the threshold of subsistence. Against this historical backdrop, it’s not surprising that the paradigm of scarcity and the fear of freeloaders are deeply embedded in the human psyche, coloring most forms of interaction and collaboration, even when doing so may be outdated.
00:15:32.640 When I was entering the industry in the mid to late 90s, it felt like we were witnessing a peak battle between proprietary and free software. This war was embodied at the proprietary end by Bill Gates and Microsoft, the ultimate proprietary extractors; and at the free-software end by Richard Stallman and the Free Software Foundation, the ultimate software freedom fighters. Both Gates and Stallman built their life’s work on the back of copyright law. One had the right to extract vast amounts of money from his proprietary software monopoly; the other had the right to extract contributions and distribution concessions from users of his open-source software.
00:16:44.900 These rights stem from a libertarian ideal of ultimate personal freedom, reinforced by strong property rights enforced by state apparatus through contracts and courts. The fact that these arch enemies share some common ideological grounds should not be surprising. Both were American men born in the 1950s who attended Ivy League universities and came of age during the oil crisis—this was during the birth of the personal computer.
00:17:47.569 You might find this comparison a stretch or even offensive, and I’m sympathetic to that; I don’t equate the two men's contributions in terms of virtue or vice. I think it’s more interesting how Gates and Stallman anchored their worldviews in a scarcity paradigm, embracing a common fear of freeloaders, and leaned on software licenses as contracts to counter that fear.
00:18:57.000 Gates feared that users would take his software without paying him, while Stallman was afraid that users would extend his software without making contributions. Both believed that the distribution of software was a transactional exchange, bound by certain explicit debt obligations that required settlement.
00:20:02.690 Neither Gates nor Stallman were unique in their zeal to control the terms under which their software was used or distributed. Most of the software world falls into this category, sharing a similar mistrust of users. It is regarded as completely natural to consider some level of debt obligation when it comes to using software. In fact, while I wear my capitalist hat as co-owner of the software company Basecamp, I too fall into that category.
00:20:58.310 But when I wear my Rails conductor's cap, it’s a different story. Here, the whole premise of strong property rights and debt obligations begins to look skewed. We commonly reach for the tragedy of the commons to articulate why licensing contracts and a sense of explicit debt obligations are necessary.
00:22:06.580 The tragedy of the commons tells us that individual users will act independently in seeking their maximum self-interest. So if there’s nothing to pull in their native drives, we’ll end up in a barren pasture where people just take and take without feeling obliged to give back. I think this is a complete conceptual misappropriation of open-source software development, one that has been detrimental to our understanding of what we do as open-source writers. The magic of software is that there is virtually no marginal cost—that's the economic reality that both Gates used to build Microsoft’s empire and what allowed Stallman to offer his free software without obligations.
00:23:32.200 If free loaders are free, there is no practical scarcity to worry about. Once you accept that, you have to reevaluate other assumptions we’ve started to make in the broader open-source community—like the idea that open-source software isn’t sustainable unless we find a new way to force users to give back. If we fail to compel users to donate or pay, we risk burning out the people who contribute their free labor. We are effectively at the cusp of a Malthusian crisis—too many takers, too few and poorly compensated makers.
00:24:43.050 Never mind how actual famines are so rare they lead to only a few examples revisited in this debate. For example, OpenSSL was a famine that was rapidly alleviated as soon as the effects became apparent. Unlike Thomas Malthus, who had actual devastating famines to reference, much of our discussion of free labor perspectives in open source narrowly defines creation and collaboration through the same lenses of marketplace evaluations as proprietary software.
00:25:52.260 That is, by choosing to use a certain open-source package, you accrue real debts to the software’s makers—whether you like it or not. You are obligated to settle that debt over time, whether that means one-off donations or continuous subscriptions. This approach resembles an Oracle licensing agreement, where your contributions are supposed to scale with your usage.
00:27:11.470 Ironically, the same reality of zero marginal costs—foundational for beautiful commercial software empires—is the one that allows us to reject this market-based framing of collaboration. I’m not arguing there’s something fundamentally wrong with developing open-source software on market-based terms; I’m suggesting that it isn’t a necessary condition for sustainability.
00:28:23.000 There are large successful projects, and many smaller ones, like Ruby on Rails, that have thrived by rejecting a market-based approach and show no signs of impending Malthusian doom.
00:28:29.950 In fact, when I look at the literally billions in business derived from this thing I started, I don’t see that with envy. Instead, I feel a sense of what a wonderful world it is that I put something into existence that continues to benefit a tremendous number of people—yes, creating a significant amount of business, from the grateful twenty billion dollar business of Shopify to the less thankful twenty billion dollar business of Twitter.
00:29:36.490 If my perspective on my work with Rails were skewed by this aggrieved notion of free labor, both companies would seem like failures—like freeloaders getting away with it without paying their dues just because no money exchanged hands. I might cut Shopify some slack due to the contributions they’ve graciously shared with the community, but I would certainly regard Twitter with contempt. Not only did Twitter never contribute materially back to the Rails framework, but they blamed Rails for difficulties due to their architectural decisions. What an ungrateful bunch!
00:30:48.420 As a Christian, I might say, 'Turn the other cheek,' and as an aspiring Stoic, I think of Rails in the words of Marcus Aurelius— it doesn’t hurt me unless I interpret it as being harmful to me. I can choose not to. Neither Shopify, nor Twitter, nor any individual has the power to cause any tragedy to our Rails Commons. In Rails, there is no tragedy; there will be no tragedy.
00:31:54.890 Rails is a celebration of an idealistic Commons—a realm where honey and milk flow eternally and are unaffected by how many people are partaking. This isn’t a universal truth I’m asserting; it is just one possible experience and an enduring truth of the work and the community surrounding Rails.
00:32:44.150 It’s worth noting that this utopian paradise, where the tragedy of the commons has no influence, does require some mental self-defense or at least some protective measures. It’s relatively easy to handle the indifference of a company like Twitter, as I initially had no expectations of gratitude from them, nor did anyone ever overtly demand I fix their problems or apologize for not doing so.
00:33:55.390 It’s a bit different when people do express that, which they often do—or at least they did. While it’s less common now, I still witness it frequently. Here’s how I approached mental self-defense in the early days—back in 2005. This is the V1 firewall I built to guard against 'benderitis.' This is from the first Rails Conference in Canada, and it conveys a succinct message: if I’m to release others from the obligation of indebtedness for using Rails, I must also be released from others expecting me to feel indebted to them for using Rails.
00:35:01.210 You might assume that kind of release is obvious, but marketplace norms can be hard to shake off—they seep into our subconsciousness. There are many open-source users who think of themselves less as recipients of a gift and more like customers with warranty claims. They feel they’ve given makers of open-source software a great honor just by choosing to use their work. This reflects a society that idolizes consumerism above all else—a natural extension of the 'customer is always right' sentiment, which fuels the adversarial buyer-seller relationship. In many open-source communities, they actively encourage this type of thinking and behavior. They are so overly grateful for anyone’s attention or use that they place themselves in a subservient position, saying, 'Whatever you need to do to make the sale!'
00:36:40.840 Now, I accept this might seem a tad strange coming from me. I’ve used numerous commercial marketing tactics during the early days of Rails—I can’t deny that there was selling going on. However, it wasn’t for purely commercial purposes; rather, I lament to say it was more ideological. Perhaps a better term would be proselytizing. I was promoting an ideology, a paradigm, and a worldview.
00:37:17.330 It might seem a subtle distinction, but I do regret that this approach led others down a commercial path without that distinction in place. Today, a significant part of the open-source world is marketed in these transactional terms. Everything looks polished—there’s your video, your sleek marketing page, and of course, your shiny logo. It’s increasingly difficult to differentiate between an open-source package and a commercial one.
00:38:18.550 I used to think it was an unequivocal win for open-source to adopt the commercial playbook in order to compete for attention with commercial alternatives. Now, I consider it at best a mixed blessing. If you show up with the attitude of a salesman, it’s disingenuous to be surprised if people think they’re buying a product.
00:39:37.850 One way to swing the pendulum back to the days before the commercialization of open-source isn't by embracing projects like Red Hat, but rather by revisiting the foundational documents. This is the MIT License information—it was conceived decades ago in just 20 lines of light legalese, with just six delivering the radical punch: do whatever you like, just don’t sue. The MIT License is often lumped together with other open-source licenses due to various compatibilities with licenses like GPL.
00:40:44.329 However, I consider the MIT License, under which Rails is distributed, to be as different from copyleft licenses like GPL as it is from proprietary software. The MIT License is largely the anti-license—a utopian socialized program that embraces the lack of marginal costs for software. It’s a clear rejection of the strong property rights approach taken by both Gates and Stallman on their respective ends of the libertarian political spectrum.
00:41:54.950 It embodies the language of giving without expecting anything in return—sincere charity without strings attached. It’s neither commercial nor reciprocal. With all due respect, I see it as a pure projection of altruism. It's both interesting and amusing to reflect on the MIT License from this perspective.
00:42:50.720 I remember feeling compelled by a sense of duty towards the software community when I started Rails, a deep desire to give back, resulting from the grace of open-source that allowed me to engage as a contributor. This felt wonderful precisely because there was no sword hanging over my head—no one was pressuring me to contribute. This made it an act of volition rather than duty—a truly authentic choice. To me, that’s freedom—the freedom to pursue self-actualization.
00:44:14.220 I was able to craft something of my own, the best I could manage—not as free labor, but as a genuine labor of love. To be clear, that’s something of greater value than money or reciprocal gestures for me. I acknowledge that this perspective stems from privilege, but it also comes from experience on both sides of the money-centric narrative while working on Rails.
00:45:37.660 When I began working on Rails in 2003, Jason Fried—my then-boss and current business partner at Basecamp—paid me $25 an hour. That was certainly a decent wage, especially compared to the $15 an hour I earned when we began collaborating in 2001. I was attending Copenhagen Business School at that time. I didn't have affluent parents, but I was supported by an effective welfare state that recognized the value of educating its young population.
00:46:58.630 Thus, I benefitted from Danish privileges—shared by another five million people and many more in similar settings globally. Nonetheless, this was my income, and I dedicated a substantial amount of my spare time to developing Rails, which Jason wasn’t directly compensating me for. I was working on Rails not to curry favor with my employer or as a calculated career strategy. In fact, I did not see it as an investment at all. I was not expecting any rewards then or in the future. My involvement was not a market-driven project.
00:48:04.960 Instead, it aligned with the three components of motivation summarized by Daniel Pink in his book Drive: autonomy, mastery, and purpose. Autonomy allowed me to pursue challenges I found interesting, in an order that pleased me and in a style that appealed to me. Mastery became my pursuit for its own sake: learning the intricacies of the beautiful, shining language Ruby, having my mind blown by metaprogramming.
00:49:22.810 Further, I was inspired by a two-fold purpose: using Ruby to build something tangible, and even more critically, building something that would enable others to experience the same joy I had found along this journey. That last bit hints at what Abraham Maslow described as self-transcendence in his earlier work before the standard pyramid of needs was established.
00:50:33.760 It recognizes that the greatest achievement of identity or selfhood lies in going beyond and above oneself. This echoes sentiments expressed throughout history. For example, Mr. Rogers famously said during a commencement speech in 2002 that deep down, we know what matters in life extends beyond achieving victory for ourselves; what truly matters is helping others to also win. There’s a deep satisfaction that comes from producing work that is genuinely useful to others.
00:51:50.020 I don’t mean that in a transactional sense, where you feel good because you sold someone a useful product and felt satisfied with the exchange; I mean the absence of any required transactions altogether. What makes Maslow’s insight particularly captivating is how his pyramid of needs provides a roadmap to achieving this.
00:53:09.130 It clarifies why we struggle to win for ourselves or help others win—we often get caught at the base levels of the pyramid, either in our lives or in our minds. I understand if you think this talk sounding like some religious hope or new-age nonsense might be unpalatable; I would have likely reacted that way in 2003 when I first started working on Rails.
00:53:34.810 But the beauty of Ruby, and Matz's vision, reflects timeless conclusions reached by figures like Maslow and Mr. Rogers. Matz speaks in approachable terms: 'The goal of Ruby is to make programmers happy.' He began creating a programming language that would make him happy, and as a side effect, it has made countless programmers around the globe happy. He hopes Ruby helps every programmer worldwide to become productive, enjoy programming, and ultimately, to be happy.
00:54:53.920 It’s fascinating that he describes this transition from self-actualization (making himself happy) to self-transcendence (making many others happy). Similarly, it’s interesting to note how Japan’s current phenomenon, the KonMari method, teaches that the things you surround yourself with should spark joy. If they don’t, you should appreciate them for what they were and send them on their way.
00:55:56.180 This view significantly contrasts with Western ideas, where tools are seen solely as means to accomplish tasks, devoid of any emotional touch. The mindset in the West is often situated around practical rationalization—this extends to the ways we speak about software in extremely mechanical terms. In contrast, Matz’s humanistic approach centralizes human experience. He places all our flaws and impulses at the forefront while positioning the machine as secondary.
00:56:57.900 His aim is to make Ruby feel natural, not simple, in a way that resonates with life—this aligns him with a rich tradition that values emotional depth beyond mere functionality or rationality. As Fyodor Dostoevsky articulated, 'Gentlemen, reason is an excellent thing; there's no disputing that, but reason is just that—reason.' He points out that reason only satisfies part of our human experience.
00:58:06.950 Accepting human nature means allowing space for both reason and emotion in our daily lives and work. Yet, failing to do so cultivates discontent and angst among many programmers. They can feel trapped in an enlightenment prison of pure rationality, indulging only in that fractional aspect that is our rational side. This issue isn’t exclusive to programming; it afflicts much of Western society, stemming mainly from our roots in mathematics and physics.
00:59:06.550 Science is often the predominant lens through which software development is viewed, yet it only represents a fraction of the overall process. When we turn to science in evaluating software development, we encounter objective truths—certainly, with sorting algorithms, we can establish which is more efficient based on different parameters. However, extending this quest for objective truth to the rest of software development leads us astray.
01:00:26.900 Static versus dynamic typing, for instance, has remained a fiercely contested issue across decades. In some ways, the heated debate mirrors that of different programming paradigms. Despite extensive empirical data collected and analyzed over the years, we find ourselves no closer to declaring a universal winner for either dynamic or static typing. That in itself should highlight how we are using the wrong scale to weigh our choices.
01:01:04.130 If science cannot guide us in mastering software development, then what or who can? Danish philosopher Søren Kierkegaard might answer in his paradox of personal truths—the idea that the conclusion to grappling with the unknowable is committing to our personal beliefs. These truths guide our work and lives and are choices we make, based not on universal facts.
01:01:28.820 This exploration leads us to the idea that there is no predefined meaning to life; you are here in this world with no ordained purpose. This realization can be burdensome yet liberating. You get to decide, and this acceptance is seldom easy; many try to escape from the burden of freedom. We desperately seek guidance or direction from others, leading us to see trends in what's popular, measuring 'hotness' through things like Google searches.
01:02:09.180 The search for external validation only reinforces feelings of resignation that stem from a lack of clarity—an internal criticism that we’re not qualified to make authentic choices. Eventually, if we persistently model ourselves on inadequate paradigms, it may stifle our growth. I don't want to oversimplify, but you can argue that Rails has thrived, transforming opinions of its hotness, while I, in my naivete, chased after trends and endorsements.
01:03:05.870 Look at how that popularity influenced many authentic choices at the time: I don’t know, but I'm sure many weren’t genuine. I think it’s easier now to authentically choose Rails than it was a decade ago. In Viktor Frankl’s 'Man’s Search for Meaning,' he illustrates the resilience of humanity witnessed in extreme circumstances.
01:04:12.610 He shares how those with a greater sense of purpose endure harsh conditions. Death often follows when one loses purpose. Frankl’s belief is that many struggles stem from a loss of meaning. To address depression or anxiety, one must rediscover meaning and purpose.
01:05:21.340 I believe many in software development grapple with mental health issues due to a lack of meaning in their work. They experience internal conflict when they think solely in financial or transactional terms. Many tech startups emphasize how serious their missions are, perhaps to offset the sense of lost purpose many of us experience.
01:06:39.230 For example, Dropbox showcases its mission as unleashing the world’s creative energy. In reality, Dropbox simply hosts files and syncs them across devices. While I appreciate the service and pay for it, it does not significantly contribute to my creative endeavors. We must realize that we often complain about meaning in our work; striving for something more fulfills our lives.
01:07:54.490 The expectation that we distill life's meaning through our entire job reflects the hustle culture we currently face. We sacrifice so much for our careers that it leaves little room for building a supportive life. This restriction often leads to reducing work to a decade of grind, putting everything on a single commitment—risking dissatisfaction even if that initial endeavor succeeds.
01:08:50.950 For example, Brian Acton, co-founder of WhatsApp, achieved an impressive financial success when he sold his company for $19 billion. However, looking back, he expressed that he felt he had compromised users’ privacy to achieve that benefit, grappling with daily consequences of that decision. As I reflect back on my decades in this industry, I remember the instances of personal and professional slumps stemming from a lack of meaning.
01:09:52.720 One such period was with an enterprise Java firm back in 2001. I was not writing any of the Java; I was in charge of HTML, JavaScript, and JSP development. However, I kept feeling overwhelmed by the number of hoops we jumped through to sell something as simple as community software to large institutions—a product equivalent to PHPBB, for example. My role felt so insignificant, leading to burnout from a lack of purpose.
01:11:00.300 The second main instance of struggle was around 2009, while working at Basecamp. After six years of developing features, I felt unneeded during that time, ultimately lacking a sense of accomplishment. My motivation waned as I faced the challenges of adapting to a new country and culture while struggling to forge deep connections. Despite ample opportunities to engage, nothing kept me motivated.
01:12:09.590 While I continuously pushed my brain through Rails, the experience soothed my spirit. In that context, working on open-source—free from marketplace pressures—was invigorating. Thankfully, the slump didn’t last, as renewing focus on projects like 'Rework' and a new Rails version reignited my passion.
01:13:20.500 I found a renewed purpose where my unique talents in writing both essays and code made a meaningful impact. This showcases that what might seem like a limited pool of productivity can expand or contract based on your perspective and mood.
01:14:18.020 A downturn in one life area often leads other aspects of life to diminish likewise; an increase may boost others too. Since Frankl's work, there is evidence we can cultivate meaning—whether by altering circumstances or perceptions. Creating meaning within our lives fosters a self-sustaining cycle.
01:15:04.930 However, open-source projects can also create a void where joy becomes a burden. My point is that while open source can inspire meaning, it can readily morph into a grind of free labor, diminishing your sense of purpose. This brings us back to Maslow’s pyramid of needs: concerns of basic needs must precede self-actualization.
01:16:36.420 When contributors witness their work lose connection to self-actualization, esteem, or love, obtaining self-transcendence becomes increasingly unscalable. Instead, one may revert to maintaining mere safety and survival. Contributors may be drained of ideas that resonate personally, causing them to believe the customer is always right or that open-source must fulfill their financial needs.
01:17:38.750 It’s important to acknowledge that it’s surprisingly easy to feel like you’re engaging only in free labor. That recognition can lead to deep dissatisfaction—realizing that contributions feel transactional, devoid of joy. It’s challenging to sustain an open-source software approach without a clear vision amid competing expectations.
01:18:50.080 Let us begin our discussion about sustainable open-source development. The word 'sustainable' may mislead; its first association relates to preserving a beautiful meadow from overgrazing by commoners. At first glance, sustainability denotes the concept of scarcity.
01:19:51.350 This misconception makes it tough to refute preconceived notions when analyzing open-source development—evolving from Stallman’s GPL narrative of fearing that someone may misuse software. I don’t want to convince people towards a pessimistic perspective of programming. I want to foster fun, collaborative environments in open source.
01:21:24.050 Parents of children know how challenging it is to persuade them to do something they don’t want to do. You might achieve short term compliance, but it’s not a lasting or creative resolution. A relationship based on forced compliance often produces dissatisfaction and resentment.
01:22:38.450 I want to compare the GPL to a manager who extracts contributions from collaborators with hostility. That’s not a constructive approach. Instead, by working with the MIT License, a healthier framework for collaboration is established—a mutual relationship that amplifies creativity.
01:23:51.020 I’ve spent two decades involved in open-source projects, and my personal truth is to resist treating my work as a series of transactional exchanges. Embracing this truth has enormously enriched my life markably. I invite you to consider doing the same. Reject the emphasis on utility by asking yourself, 'What do they bring to me?' Turn your perspective towards appreciating the intrinsic value of contributions.
01:24:57.970 Viewing open-source, through the lens of the MIT license, can liberate us from evaluating our worth through a cash economy standard. Instead, it encourages seeking self-actualization in ways where resources aren’t bound by company contracts. This framework empowers our quest for autonomy and purpose as we pursue self-transcendence through genuine contributions.
01:26:18.400 To conclude, I’d like to borrow from the historic tradition of debt relief—the Jubilee. I hereby declare a jubilee for all. Do not feel constrained by any perceived debt or obligation to the Rails community today.
01:27:31.490 Let no one call upon you to ever feel compelled to repay that vanquished debt. Contribute to the Rails community because it brings meaning to your life, because writing Ruby sparks joy. If it doesn’t bring you joy, don’t participate. It’s okay. You are complete, and we are equally square. This is the greatest tablet of Dramamine for the nausea of an otherwise market-soaked life, along with an open invitation to collaboratively develop software together. Thank you very much!
Explore all talks recorded at RailsConf 2019
+102