On 12th November last year I received an email via PaperCall with the following words which grabbed my attention:
Congratulations Keith Pitty!
We are really excited to let you know that your talk, “What were they thinking?”, has been selected for RubyConf AU 2019.
Can you please confirm that you will be able to bring yourself and your talk by visiting the link below?
I immediately felt a mixture of excitement and panic. Having submitted a proposal at the last minute I was now faced with the prospect of converting my abstract into a 20 minute talk that did it justice and provided value to the audience.
I accepted the challenge and earlier this month presented at RubyConf AU in Melbourne!
The genesis of my talk was many years of thinking about experiences I have had with codebases. Legacy code that hasn’t been loved can result in painful experiences for future developers, frustration for users not to mention expensive consequences for owners.
Thanks to John Carney for this photo of me presenting.
Software is liable to decay over time unless it is nurtured. Such nurturing should include such things as refactoring to improve internal design, which implies automated testing, sufficient up-front design to increase the likelihood of a successful outcome, healthy peer review, a well documented git history and load testing.
All of this requires discipline. Sometimes it also requires negotiation with stakeholders.
An aspect that can involve both discipline and negotiation with stakeholders is planning and carrying out maintenance such as installing security patches and keeping software on which your applications depend up to date.
Whilst attention to the detail of planned maintenance is something that many developers can do well, negotiating with business owners to give it sufficient priority is a different challenge altogether.
Before delving into the challenges to communicate better, I touched on a couple of more philosophical topics which I considered relevant to the topic. Firstly I referred to what is sometimes described as “continuous flow”. I then suggested that it was time to reflect on how a mature consideration of the Agile approach could better serve us.
In my experience it can be difficult to persuade some business owners of the vital importance of the sort of activities that are essential to keep legacy codebase in a healthy state so that it survives in a form that enables it to support evolving needs.
The challenge to practice becoming more persuasive comprised a large part of the second half of my talk.
Once I had given my talk I was delighted at the positive feedback I received in person, whether it was from other speakers, former colleagues or new Ruby acquaintances. By the way, there were many inspiring talks at the conference so if you weren’t there I encourage you to watch them.
When I looked at Twitter I was humbled to see lovely feedback such as the following from Mel.
I’m keen to hear further reactions, especially from those who weren’t able to be in Melbourne for the conference. We were so lucky that the organisers engaged Next Day Video who in fact made the videos of the talks available on the same day!
So, if you’d like to get in touch and give me your take on my talk, please feel free to do so either via this site or Twitter.
Finally, a big thank you to all who made my experience at RubyConf AU 2019 so rewarding: those who selected the talk, my family for listening to me practice, the organisers, the lovely MCs, the audience and especially those who were kind and thoughtful enough to discuss my talk with me afterwards.