Refactoring

Summarized using AI

The End of Fun

Sarah Mei • March 07, 2013 • Earth

The video titled "The End of Fun" features Sarah Mei, a Ruby developer at Pivotal Labs, who addresses a critical aspect of the Ruby community at the Ruby on Ales 2013 conference. In her talk, Mei discusses the evolution of the Ruby programming community, which has seen remarkable growth and success, transitioning from a small, creative environment to a more corporate landscape.

Key Points Discussed:

  • The Success of Ruby:

    • Ruby, now 20 years old, has matured from a fringe hobbyist language to a mainstream programming language.
    • Successful Ruby applications are no longer small; they involve large codebases and teams.
  • Fear of Losing Fun in Growth:

    • As companies and projects grow, there is a fear that the fun of programming may diminish. Mei points out that many developers fear that corporate growth will kill the creative and social dynamics of smaller teams.
    • This concern is echoed by experiences shared at conferences from developers employed in larger corporations like HP and IBM.
  • The Dichotomy of Developer Cultures:

    • Mei explains a common divide within the developer community: the established company versus the startup culture, presenting potential biases against one another due to their different operational focuses.
    • She urges against letting anecdotes and stereotypes shape these perceptions, advocating for a data-driven analysis of creativity.
  • Research on Creativity:

    • Drawing from psychological studies, Mei emphasizes that creativity is not a trait but a learned behavior involving two modes of thinking: closed (goal-focused) and open (broad exploration).
    • Software development must balance both modes to foster creativity effectively.
  • Importance of the Right Processes:

    • Proper processes in software development, like the red-green-refactor cycle, facilitate creativity at every development stage.
    • Emphasizing both structure and creativity, Mei suggests introducing novelty to keep developer engagement and innovation high.
  • Encouragement to Enjoy Coding:

    • In conclusion, Mei appeals to the audience to ensure that coding remains an enjoyable endeavor, regardless of corporate constraints, and encourages fostering environments that prioritize creativity and fun.

Sarah Mei's talk ultimately highlights the shifting dynamics within the Ruby community, advocating for a balance between growth and maintaining the playful, creative culture that has defined it. She emphasizes that having fun and being creative is essential for successful software development, encouraging developers to embrace new ideas and approaches in their work.

The End of Fun
Sarah Mei • March 07, 2013 • Earth

I hate to break it to you, guys, but Ruby is almost old enough to drink. What started out as a small community full of fun, silliness, and connection has been growing. Our small codebases are now large. Our small *companies* are now large. And the large companies have finally figured out that they want in, too.

So maybe it's time to start tackling Real Problems and Real Solutions in the world of Real Innovation. Maybe it's time for the community to grow up, stop playing around, and get Serious™.

But...that's not who we are. Our community thrives on creativity, play, and luck. And those things aren't just a weird perk like not having to wear shoes in the office - creativity, play, and luck, when present, actually produce better software. As we grow our projects and our teams and invade the corporate cube farm, there are some things we can lay aside, and there are others we must hold on to as if our very identity depended on them.

Because it does.

Help us caption & translate this video!

http://amara.org/v/FGax/

Ruby on Ales 2013

00:00:20.400 Good morning. How many people have visited the bar already? Thank you! You're my people. I am really happy to be here. My name is Sarah Mei, and I'm a Ruby developer at Pivotal Labs in San Francisco. I've wanted to come to this conference since it started a few years ago, and this year, thanks to Kobe, I finally made it. My job today is to ensure that you have absolutely no fun at this conference.
00:00:50.000 So let me start by asking how many people have fun when they're writing their Ruby code? Okay, thank you. I was really afraid that it was going to be one of those mornings where everyone is asleep. I do too. I love Ruby. What I love about it is the language itself. The Ruby language is amazing, and it's now 20 years old.
00:01:21.360 Ruby's from Japan, of course, and the legal drinking age in Japan is 20. So you should congratulate the Ruby team because their language can finally have a beer. But what I love about Ruby, maybe even more than the language itself, is the community around Ruby. I love hanging out with you all.
00:01:41.439 I've been in a lot of developer communities over my career, and I've never been in one where people were more creative, more fun, or more social. People here have so many interests besides code and so many interesting projects to work on. But my friends, we have a problem. Our problem looks like this: wild success. Ruby has been amazingly successful.
00:02:11.520 We've gone from a fringe hobbyist language to maybe even a mainstream language in just a couple of years. Many things that used to be small have gotten bigger. In the last year, we've started seeing numerous conference talks, blogs, and even books centered around the theme of what happens when your Rails app grows up.
00:02:45.599 We've been talking about Rails engines, software architecture, and object design. These discussions are crucial. They're less important in a small codebase but crucial in a large one. Even DHH, as much as he dislikes overdesign, is engaging on these topics because we're all facing these growing pains.
00:03:10.959 Remember when Twitter was just 12 people? That was a long time ago. They're not the only ones. Many companies that use Ruby have scaled significantly. They've grown, gone public, or been acquired. As Rubyists, we're working on not just larger code bases but also larger teams.
00:03:43.840 The issue is that the really big companies have started to recognize that they want to be part of this too. I've talked to people at conferences from HP, IBM, GE, and all of these companies are adding Ruby to their portfolios. I've heard variations of the same story from many people over the past year.
00:04:15.840 The basic idea is that there's a developer who wants to build something cool and have fun, so they work at a small company with a few others. But as that small company grows larger, these developers fear that their company's growth will suck the fun out of their jobs and out of programming.
00:04:59.040 Having worked for a big company myself, I know this fear is legitimate. With the influx of people into our community who already work at big companies and many of us becoming part of big companies, I've witnessed some interesting fear-mongering.
00:05:18.880 There are blog posts claiming that there are two sides: as a developer, you are either on one side or the other. If you're an established company person, you prefer process and focus on what you build. Conversely, if you're a startup person, you're creative but may be viewed as a bit immature.
00:06:00.160 Different people use different headers when discussing this, but the fundamental point is that individuals can fall into one of these categories based on their experiences. Yet, I want to drop something new into this conversation: science. These categorizations are generalizations based on personal experiences, but anecdotes don't sum up to conclusive data.
00:07:00.640 So I want to analyze some data, starting with creativity. Who is creative and how does one achieve creativity? Psychologists at Berkeley conducted fascinating work in the 1970s looking at creative individuals compared to those deemed non-creative.
00:07:47.760 They discovered that intelligence, age, gender, ethnicity, and other characteristics did not matter significantly between creative and non-creative individuals. What they found were differences in behavior and habits, indicating that creativity is not an innate quality, but rather a mode of operation.
00:09:01.680 Creativity involves switching between two modes of thinking: closed mode, which focuses on specific goals and getting tasks done, and open mode, which allows for broader, more exploratory thinking. Knowing how to switch effectively between these modes can lead to novel and creative outcomes.
00:10:49.760 However, it’s clear that both modes are necessary for software development. A technical leader’s goal should not be to hire people who fit specific archetypes but to allow individuals to exercise both modes of thinking as necessary.
00:12:25.200 What does being creative have to do with software development? Some think of programming as mainly mechanical, yet the iterative processes of writing tests, iterating on code, and refactoring bring significant creative aspects to our work.
00:13:12.760 When coding, we engage in different phases. During the testing phase, we're focused narrowly on code functionality. In contrast, during refactoring, we can step back and think more broadly about concerns such as code structure and clarity.
00:14:42.080 Additionally, everything we do in these phases influences our thinking modes. The red-green-refactor cycle is an effective method for transitioning between closed and open modes, creating space for creative thinking at every stage.
00:15:33.920 To enhance creativity further, it is essential to introduce novelty into our daily routines. This could mean exploring different technologies, working with diverse teams, or trying out new programming languages, which can all help foster an environment conducive to creativity.
00:17:18.239 You can also consciously seek some variety in your life, as it can help shake up your thought processes and lead to more innovative solutions. Observing other fields, such as dance or humor, can illuminate the creativity involved in our own work.
00:22:03.440 Ultimately, process, when done correctly, enables creativity in software development. It’s essential to cultivate routines that allow developers the creative space to explore and innovate in their work.
00:25:04.000 Finally, it’s not just about having the right process. Introducing enough novelty into your culture is your responsibility as well. So whether it’s trying new technologies, engaging with different teams, or simply being open to new ideas, it’s essential to bring creativity into what we do.
00:25:35.039 Please, have fun! Writing code should be enjoyable regardless of where you work, be it a corporate or startup environment. Ensure that you create the right structure to foster fun and creativity.
00:29:21.200 Thank you very much, and I hope you enjoy the rest of the conference!
Explore all talks recorded at Ruby on Ales 2013
+15