00:00:07.879
Okay, we have a variety of topics today. I’ll go ahead and start with the first question, which is really about building community.
00:00:14.240
So, my question is: what are some effective ways to support junior developers in the Ruby community?
00:00:20.039
When I was thinking about this question, I thought maybe we could split this up into two parts. One is how to support junior developers who are already on your team writing Ruby.
00:00:31.720
The second is how do you bring more developers—people who might not yet be in the Ruby community—into the Ruby community as junior developers?
00:00:45.600
Let's see who looks excited to answer. Let’s start with Selena.
00:00:51.800
Sure, no problem! Let’s start with juniors on your team. The best thing you can do for juniors on your team is pair programming.
00:01:02.640
For anyone who was at RubyConf Thailand last year, you’ll know that I’m a huge fan of pair programming. It is the best way to accelerate your juniors.
00:01:09.600
Pair programming helps them grow and learn new skills. I think that is the best thing we can do for them—give them as much time as possible.
00:01:16.799
Thank you! I remember that pair programming talk. I think it’s available on YouTube, and it’s quite interesting to watch, so I definitely recommend it.
00:01:24.280
Ellie, what do you think?
00:01:30.040
To be clear, I’ve run two associate developer programs to upskill junior developers. I agree that pair programming is essential. You also need to set them up for success, which means properly onboarding them.
00:01:44.799
Support their training as they start. This could involve a set of programs you develop or simply having people to pair program with them.
00:01:50.960
Develop some materials that can help bring them on board. Give them tickets that fit their skills, and remember that you don’t need only seniors to support juniors. Mid-level developers are just as capable, as they haven’t been so far removed from being juniors.
00:02:09.959
They still remember what it’s like and can answer questions effectively. Pair them with a buddy who they can approach with problems.
00:02:16.000
Thanks, Ellie. Are there any consistent obstacles you see junior programmers running into when setting them up for success? Are there any consistent problems we should be aware of?
00:02:30.800
Yes, setting expectations is crucial. Juniors often try hard to be valuable and contribute to the team, but it’s important to communicate that they need to focus on their education and learning.
00:02:43.800
Also, if they are blocked, they should be encouraged to ask for help. Many times they get stuck and do not communicate that.
00:02:56.640
Thanks, Jemma. Just to build on that, modeling behavior is something I think about actively. We were all once juniors, new to programming, and, especially, new to Ruby.
00:03:29.360
It’s easy to forget that as you become more experienced. The number one thing I try to model is admitting when I don’t know something and asking questions.
00:03:34.640
Junior developers often feel they need to know everything. The pressure to impress can prevent them from seeking help when they truly need it.
00:03:47.560
Modeling the behavior of asking for help and admitting when you don’t know something can greatly encourage juniors to feel comfortable doing the same.
00:03:54.079
I also believe remote work has created challenges for junior developers. If possible, encourage getting back to the office. While the trend seems permanent, being in the same space allows for serendipity and mentoring.
00:04:22.880
One approach is to ensure junior developers are given manageable tasks. They should have some easy tasks and others that stretch them just beyond their current skills, requiring them to ask for help.
00:04:37.960
Encouraging inter-team communication is key. We often hold Zoom calls with other teams. I encourage juniors to initiate communication and start architectural discussions.
00:04:59.440
If they can articulate their thoughts to others, they will develop better concepts of what they are building.
00:05:23.120
I want to add to what Jemma and Brad said about creating a learning environment. It’s essential to have a space where juniors feel comfortable learning and can be pushed just enough without overwhelming them.
00:05:49.160
Communication is crucial, and supporting juniors in asking questions and understanding the 'why' behind tasks can foster deeper learning.
00:06:07.720
Additionally, implementing code previews can prevent issues. Discussing options before moving forward can help guide juniors to make better decisions.
00:06:22.360
Once they submit a pull request, it’s often too late. If they have a chance to discuss their approach beforehand, revision becomes much smoother.
00:06:47.919
That's a good point! I sometimes get the impression that developers submitting a pull request feel it’s like submitting homework; they’re nervous about being graded.
00:07:07.479
Selena, do you have something to add?
00:07:24.160
Yes, I want to emphasize that fostering a culture of open communication is vital. Juniors need to feel comfortable saying when they're struggling.
00:07:35.680
This goes back to the broader company culture. An environment where vulnerability and asking questions are encouraged is essential. If the culture promotes openness, it'll help in dealing with juniors.
00:08:05.640
I also want to address the paradox of remote work, as you mentioned, Brad. People love working remotely, yet they enjoy being together. I'm curious how you've navigated this in your organizations.
00:08:42.560
I often bug my manager for more off-site meetings so we can all travel and meet up. It’s expensive, and management is hesitant, but being in the same place really helps.
00:09:10.440
At Fresho in Australia, we transitioned to fully remote engineering. Before, we were all in the office. It was enjoyable and provided a lot of interactions.
00:09:34.160
Despite being remote, we have implemented 100% pair programming, allowing for high collaboration. All our engineers work in the same time zone.
00:09:55.279
We’ve leveraged tools that enable remote pairing, ensuring no one feels isolated during sessions. This collaborative environment requires cameras on to facilitate communication.
00:10:19.360
We attempt to gather in person about four times a year, focusing primarily on collaboration, teamwork, and bonding exercises.
00:10:42.680
I think it's important to differentiate between types of work that are best suited for remote and in-person settings. Strategy and brainstorming are better done together physically.
00:11:04.080
Remote work can foster focus on coding tasks or pair programming. In contrast, in-person gatherings are ideal for project planning and big-picture discussions.
00:11:29.760
The in-person interactions foster connections that are hard to establish online. However, accommodating various needs, such as those of families or neurodivergent individuals, must be kept in mind.
00:11:52.160
It is also necessary to create opportunities for remote workers to connect with each other beyond work discussions.
00:12:00.720
Let's move on to the next question. I want to talk about how to bring more developers into the Ruby community. What strategies can we employ?
00:12:27.600
From my experience in the Ruby community in Australia 10-12 years ago, we hosted Rails Camps that raised awareness of inclusivity within the community.
00:13:03.880
At one Rails Camp, I was the only woman among 125 attendees. This led to community discussions on how to bring more women into Ruby.
00:13:20.760
Initiatives such as Dev Bootcamps and Rails Girls workshops helped train women in Ruby. We also worked to establish a community culture that was welcoming to all.
00:13:38.320
Ensuring that we attract a diverse community is critical as we bring more developers into Ruby. This diversity should reflect broader demographics beyond those currently represented.
00:13:56.360
I founded the WRB initiative to improve the retention of developers from diverse backgrounds. Inclusive communities and events play a vital role in encouraging engagement beyond just job involvement.
00:14:17.960
Role models are important. When people see others like them in the community, it makes it easier to engage.
00:14:34.959
Thank you for your insights. Let's move on to our next topic: AI. As we’re in 2023, how do you see generative AI affecting the future of programming, especially in Ruby?
00:14:55.160
AI is already saving us time and money. For example, using GitHub Copilot has increased productivity by 30%. It’s significantly helped our team.
00:15:20.400
Programming, however, still feels too complicated. Many of us waste hours on simple tasks that could be streamlined, indicating AI's potential to make things easier.
00:15:42.000
I'm curious if programming languages will evolve to be more compatible with AI technologies. For example, languages that are more explicit in syntax, like Haskell, may gain popularity over Ruby.
00:16:06.520
We need to consider how to adapt Ruby to ensure it is enticing for AI companies while improving its usability.
00:16:22.000
As developers, can we leverage AI to better organize our programming processes without compromising the learning experience?
00:16:39.680
The ease of using AI tools can lead to a superficial understanding of programming concepts among junior developers.
00:16:57.040
It's essential to ensure that as we embrace AI, we are also fostering foundational knowledge in programming among new developers.
00:17:16.560
As AI evolves and becomes more integral to programming, we have to carefully balance its usage with a solid understanding of coding principles.
00:17:34.480
There are concerns that this reliance on AI may take away from the core skills necessary for deeper programming knowledge.
00:17:47.440
While AI can generate working software, understanding the underlying logic and nuances in programming is critical for effective coding.
00:18:05.000
The future of Ruby could be influenced significantly by advancements in AI technologies and how they can be adapted for use within the Ruby language.
00:18:22.000
With cloud services increasingly shaping our programming environments, we need to consider how Ruby adapts to stay relevant in the evolving landscape.
00:18:42.000
AI can provide a higher level of abstraction, but can we maintain the essence of real programming skills while embracing this high-level approach?
00:19:00.000
While AI can alleviate some burdens from developers, a deeper understanding of systems and architecture remains essential.
00:19:19.760
As we navigate this new landscape, we need to uphold the balance between increased ease from AI tools and the foundational knowledge that underpins effective programming.
00:19:39.760
How can we ensure that the next generation of developers grasps the core principles instead of simply relying on tools to get by?
00:19:56.360
Moving on, we should address the question of burnout among developers, especially as workloads increase and responsibilities expand.
00:20:20.560
To avoid burnout, developers need to maintain a balance. It’s essential to have activities outside of work that allow for relaxation and recreation.
00:20:36.360
Taking part in sports or hobbies can provide a necessary break and refresh the focus for better productivity.
00:20:55.280
With modern expectations, it’s common for developers to feel overwhelmed by the scope of tasks they handle. I advise focusing on one task at a time to avoid this.
00:21:13.760
Communication with management is critical in setting boundaries and prioritizing mental wellbeing.
00:21:27.520
The company culture must support work-life balance; otherwise, the weight of increasing demands can lead to burnout.
00:21:43.120
In remote settings, maintaining clear boundaries between work and personal time is crucial for mental health.
00:22:03.760
Getting into a healthy routine and respecting those boundaries will help sustain a positive work environment.
00:22:18.560
Today’s discussion on burnout aligns with the ongoing need for developers to recognize their own limits and respect their well-being.
00:22:36.560
It’s essential to identify symptoms of burnout early on and proactively address contributing factors.
00:22:56.000
As we wrap up, many attendees are excited about the speakers and engaging with this large conference.
00:23:14.240
For those interested in speaking at Ruby conferences, what tips or advice do you have?
00:23:33.720
I have numerous tips to share. First, start simple. Do smaller talks initially. Consider presenting at local meetups or within your organization as practice.
00:23:51.360
Engage with topics you’re passionate about and emphasize key takeaways. Concentrating on your core message is essential.
00:24:06.360
Practice makes a huge difference—rehearse multiple times. Live demos can be exciting, but be cautious, especially for your first talk.
00:24:20.320
Peer presentations can provide support, so consider collaborating with a fellow speaker to build confidence.
00:24:34.920
If you live in Thailand, be sure to check out the Bangkok Ruby Meetup for chances to practice and speak.
00:24:48.920
When applying for conferences, focus on crafting a strong abstract that clearly outlines your topic and its relevance for both beginners and experts.
00:25:10.600
Articulate your topic succinctly, highlight its novelty, and explain why attendees should join your session. Organizers appreciate clarity.
00:25:27.600
Writing strong proposals can be challenging, so utilize available resources like writing workshops or online guides.
00:25:44.920
Focus on topics you are knowledgeable about or passionate about; share your experiences and ensure they are well communicated.
00:26:03.600
Don't hesitate to apply! Many attendees seek beginner-friendly content. Your insights matter, no matter your experience level.
00:26:17.520
Everyone has something valuable to offer, and being a speaker can be rewarding and empowering for you.
00:26:31.040
One last point: as you prepare to present, know that there will always be someone in the audience who can benefit from what you share.
00:26:54.960
Your knowledge is impactful, so don’t underestimate what you can contribute.
00:27:10.080
Thank you all for your valuable contributions. Let's wrap up this insightful panel discussion.
00:27:33.520
The end.