00:00:07.720
All right, everyone. Thank you for having me.
00:00:10.120
It’s been a really awesome conference. I’m so happy to have been chosen as a keynote speaker. It was amazing to kick off the conference with an incredible presentation by Matz on 30 years of Ruby history. It was a cozy presentation, and it was really inspiring to look back and be collectively proud of everything we’ve accomplished.
00:00:20.480
My talk today is about the future—dealing with uncertainty and hopefully thriving in it. The future can be a little scary, especially given all the changes in the industry. However, I hope to provide some ideas about how to make the most of this uncertainty. I promise that everyone in this room is in a good place to succeed moving forward and to contribute to this awesome community and programming language.
00:00:34.280
If you don't thrive in uncertainty, you're probably not a Ruby programmer. For example, a Java developer might feel overwhelmed by unpredictability, while a Ruby developer would say, 'Hold my beer while I monkey patch the compiler!' As for me, I’m the creator of DEV, our company that powers a website reaching millions of software developers around the world. We strive to be helpful and provide an online community for folks to read, write, and stay updated in our industry.
00:01:05.920
I’m visiting from New York, but I’m originally from Halifax, Nova Scotia, Canada. When I tell people where I'm from, they often ask if it’s near Vancouver. To which I respond, 'No, not at all.' When I was about eight or nine years old, I was the two-time mutton busting champion at the Atlantic Winter Fair. For those who don’t know, mutton busting is a sport where children ride sheep as long as they can. It might not be popular where you are, but I can assure you it’s also quite peculiar in Nova Scotia. I have no idea why my parents put me on sheep, but I suppose it made me who I am.
00:01:44.000
DEV is a website that hosts all sorts of awesome and valuable content, such as 'Is Ruby Dead?' and 'Is Ruby on Rails Dead?' There's a tendency for programmers to ask if a particular technology is still relevant, and thankfully there are more efficient ways to find the answers. For example, there’s the website isrubyddead.com, which clearly states that Ruby is not dead. However, this website was created in a different time—before ChatGPT and OpenAI.
00:02:04.920
Many things are changing in our industry today. This raises the question: If I can describe the software I want to write using natural language, what is the point of Ruby? I'm not here to answer this question definitively, but I think it's crucial for our community to reflect on it. Another question to consider is whether AI-generated code will be perfect. As intuitive code readability becomes increasingly important, we need to ask ourselves if we want AI to generate bytes of code or Ruby that we can introspect and ensure quality.
00:02:34.680
Will Matz decide that a new language is better than Ruby, leading us to become Tish developers? Or will robots take our jobs? I think the answer to that is no, but there’s a lot of reason to believe that things will evolve even faster than they have in the past. This growth requires us to understand our place in an evolving industry. Some believe that Ruby might fade away, while others feel it’s going to thrive more than ever. The reality is that predicting the future is complicated and often not worth the effort. What’s needed is a deep understanding of how we can adapt and thrive amidst uncertainty.
00:03:10.720
Here’s an interesting comic I really like from 2014. One character asks how long it would take to check if a picture was taken in a national park, which is a simple task. The response is a couple of hours. Then, when asked how long it would take to determine if a picture has a bird in it, the reply is five years. The comic illustrates that if you aren't an expert, it can be extremely difficult to predict if something is nearly impossible or fairly easy. This rapid change reflects how new technological advances can come unexpectedly.
00:03:46.520
The pacing of technological advancements can leave us feeling confident that we understand what is easy and what is challenging. But then suddenly, there’s a new platform, trend, or tool that shifts the entire landscape. How do professionals prepare to thrive in an industry that is constantly changing? How do we get promoted, maintain a reasonable work-life balance, and navigate these uncertainties? It’s tricky, but I aim to provide some solid ideas grounded in research.
00:04:13.280
The concepts I wish to discuss were illuminated in the book titled 'Range.' Parts of this book are very well-grounded in research while some claims may evolve over time. Nevertheless, many premises in this book give insight into how we can think about uncertainty and the future. The author talks about the difference between specialists and generalists. Specialists tend to thrive in kind environments with specific rules, whereas generalists tend to excel in wicked environments where problem-solving is complex.
00:04:41.920
Wicked environments are those where numerous variables influence outcomes. Programming has increasingly become a wicked environment as new platforms, languages, and technologies emerge daily. In this landscape, there are always new problems to solve, and adaptability is increasingly important.
00:04:58.560
How do generalists succeed in such wicked environments? They utilize cross-disciplinary insights, wherein knowledge from one domain can be applied consistently to another. Conversely, specialists may struggle when stepping outside their areas of expertise. Generalists leverage their diverse experiences to adapt and ultimately thrive in uncertain situations.
00:05:17.200
As Ruby developers, I believe we belong to this group of generalists. Our skills can be widely applied to new technologies emerging in our field. Effective abstract thinking, as discussed by Matz, is crucial in programming. Naming things matters and understanding how one experience can create metaphors for problem-solving in different contexts can elevate our work.
00:05:52.800
This leads us to the next key point: problem reformulation. Reframing an issue from a different perspective is critical for tackling challenges we’ve never encountered before. Grasping new technologies requires us to view problems uniquely.
00:06:18.480
Effective collaboration and communication are essential in wicked environments. It's not enough to approach a challenge simply by applying yourself; teamwork and outreach to others play a significant role in overcoming difficult tasks. No matter how specialized one is, the capacity to adapt to different problems can be compromised without effective collaboration.
00:06:46.880
Comfort with ambiguity is vital for thriving in uncertainty. Understanding and working within ambiguous situations are essential for making the most of our experiences. This, combined with resilience and continuous learning, is what will help us navigate everything that comes our way.
00:07:05.560
Looking ahead, we should recognize that the next few years will likely bring challenges we cannot immediately foresee. The job roles of tomorrow may differ significantly from today, and the next 30 years of Ruby will probably not resemble the last 30. However, if you embrace the confidence that you can tackle new challenges, relying on your skills across domains, I am optimistic that we will all thrive in the future of Ruby.
00:07:23.919
Thank you so much for coming to the conference and attending my talk. I hope everyone enjoys their time in Bangkok, and for those traveling, I wish you safe travels home.
00:07:58.560
Thank you!