This is the second installment of my daily retrospectives on RubyConf 2017. There was a lot of great material produced on the first day and I suggest going back and reading my first day restrospective. Today I was reminded that one of the things I’ve enjoyed about the Ruby community is the diversity of people and perspectives on the language. The talks and speakers from today reflected that in a number of ways.
Please excuse any mistakes; this story is based on sparse notes and recollections and has not been thoroughly edited.
“The Impermanence of Software” (Andy Croll)
Andy Croll delivered an outstanding keynote to start the second day of RubyConf. This will likely enter my list of must watch conference talks. The emphasis in too much of our industry is on the code and not enough on the people we both build software for, but also the people we build software with. One of my favorite statements from the talk was this line:
“The only dents you will leave in the universe will be in other people. So, make them nice dents.”
It is too common to find software engineers who relish being abrasive and anti-social. It’s too easy for me to accept that kind of abusive behavior in myself. Andy’s presentation was encouraging and challenging in that it highlighted one of the great values of the Ruby community, the people in it. The symmetry with Matz’ opening keynote from the first day of RubyConf jumped out to me. Matz more heavily focussed on action that needs to come out of our community to keep it moving forward. Andy emphasized the why for both keeping our community vibrant and diverse, but also for how we ought to consider the people around us in all aspects of our life and work.
“Lending Privilege” (Anjuan Simmons)
Anjuan’s talk was one I was really looking forward to and it did not disappoint. As a heterosexual white man from a middle class family I have experienced the benefits of a stable family, a good education and few challenges to me pursuing what I want in life. Over the last several years I have wanted to find ways to leverage my position of privilege to the benefits of others and this talk got right to that point. Anjuan identified three ways that privilege can be lent and gave great practical advice for how to do this. The big take away from this talk for me was that lending privilege does not cost me anything, but it provides incredible value to others.
My favorite quote from this presentation connected so well with the ethos of the Ruby community: “We need to weaponize niceness … and put it to work.” As a community Rubyists have promoted the MINASWAN (Matz Is Nice And So We Are Nice) idea and Matz has offered his own refactoring of the idea to RINSWAN (Ruby Is Nice So We Are Nice). The notion of lending privilege to me seems like a natural and proper extension of both of these sentiments. I hope that the Ruby community can help lead on this extension of niceness. I plan on doing my best to do so.
“Writing Inclusively About Technology Topics” (Thursday Bram)
I enjoyed Thursday’s talk in a number of ways. One of the most helpful elements was that she prepared example style guides that were meant to supplement and form the basis for discussion around her presentation. At points she called on the audience to participate, and the style guide provided the common basis for that participation. This helped reinforce her point that style guides are useful tools in numerous settings.
I also really enjoyed getting to chat with Thursday in the hallway and get some insights for how to provide editorial support when seeking to encourage technical writings that are independent in their location of publication but where there is a value to unifying certain aspects of voice. She directed me towards an open source project called Hoodie that publishes both a style guide for their code as well as a style guide for their documentation that is backed by automated checks. I also look forward to reading “The Subversive Copy Editor,” which she recommended.
“High Performance GPU Computing with Ruby” (Prasun Anand)
This was the first really tech heavy talk I’ve been to at RubyConf. Not that there weren’t plenty available, but this was the first one I thought would have relevance to upcoming work I expect to do. Prasun did a great job presenting useful information about a very niche subject matter. There were a few points that I had difficulty following, but I walked away with a better appreciation for something I previously did not know Ruby had the capability to support.
The applications I am looking towards for the projects Prasun mentioned are some Machine Learning initiatives at Nav that I expect to be involved with. One thing I did note is that the ArrayFire bindings for Ruby seem like they could use some attention to make some of the class names for idiomatic and generally more pleasant. Hopefully, if this project is something I can leverage in my own work I can take that opportunity to give back to that project which Prasun has already put a lot of work into.
“Finding Responsibility” (Caleb Thompson)
This talk was rough on me presentationally. During the story telling there was a long period of a completely black slide being displayed. Caleb did a great job providing the context for the focus of the talk on the ethical dimension of software development, but I struggled at points to maintain proper attentiveness. The content that Caleb presented was valuable and raised questions that need to be addressed by the software development community as more and more work goes into Artificial Intelligence and other fields of endeavor that open ethically and morally challenging issues that were previously difficult to imagine.
Caleb offered two pieces of helpful advice for software developers. The first was to add a piece to the planning phase of projects to explore the worst possible uses for what is being envisioned. This seems like a good exercise to consider for numerous facets of a project. Given the industry I currently work in, I could easily explore the privacy implications of the data my systems collect and how it could be misused. The second bit of advice was to not accept requests at face value and probe the why of any request for work. This is an aspect of what I feel to be good engineering practice, but Caleb addressed in from the standpoint of helping to surface ethical and moral dilemmas. On the whole I really enjoyed this presentation’s substance, but I struggled with the form.
“Get Off The Tightrope” (Tom Stuart)
This talk was outstanding, and not just because it played to all my own biases. Actually, I can’t really judge this talk objectively because it played to a lot of my biases about how I feel software development should be done. Tom addressed the problem that faces many developers of taking on big tasks and then the kind of trouble those developers often encounter. I appreciated this talk for a somewhat minor sub-theme which was that developers are not special.
I hate hearing developers talk about Flow State. I think developers just want an excuse to zone out and ignore everyone and everything around them because they don’t feel like changing how they work to accommodate interruption. But, that was a sub-theme of this talk. The main crux of the talk was about some practical ways to avoid the ill effects of taking on tasks that are too big to be thought of as a single task, and those practical steps just happen to align with techniques that can also help reduce the need to chase Flow State.
I loved this idea: Interruptions and distractions can be opportunities for empathy and collaboration
The first thing Tom identified was to break work down into smaller units, this is something I see too few software developers do effectively. Too often we accept the suggestion of non-developers that “this should be an easy change/addition/whatever” and then treat a big ask as a reasonable unit of work. Tom offered Story Mapping as a technique to help address this. Tom also addressed version control hygiene, stepping away from problems to get perspective, Test Driven Development as well as note-taking and conversation to also address the problem of taking of work that is too big.
Today was another good day at RubyConf. The content on the whole has been really impressive and given me a lot to think about and to take back to my team. I am looking forward to the third and final day of the conference.