Saturday, September 30, 2017

SwanseaCon and My First Conference Talk Ever

Let me share some of my adventures at and around SwanseaCon 2017 where I had the honor to give my first conference talk ever.

Before SwanseaCon, or: Off to Swansea!

February this year I was invited by Viv Richards to submit papers for SwanseaCon. SwanseaCon? To be honest, I've never heard of it before. During my research I found that it's an "Agile Development and Software Craftsmanship" conference in South Wales. I was honored to be asked to submit to a developer conference! Judging from the past years, it sounded really interesting - so I did submit. Only a few weeks later, Viv came back to me with the great news that I've been selected! That was the beginning of a great adventure to the north of Europe.

When planning my trip from Munich to Swansea, I decided to fly to Cardiff directly, which would mean to travel a few days earlier on Friday evening. This decision proved really valuable! First of all, I was excited enough already about the conference and my upcoming first talk without the
additional time pressure.
After arriving in Wales, the way from Cardiff airport to Swansea was not completely obvious for me, despite previous research on the internet. However, it was made easy for me as I met some great people on my way, traveling to Swansea together. The next day, I enjoyed a lovely sunny Saturday to discover not only Swansea's city center, but also the nice district Mumbles with Oystermouth Castle and some great ice cream at Joey's. Really recommended!
On Sunday my plan was to practice my talk again and maybe do some final adjustments, but well, the nature of plans is that things can easily go differently than we planned. In my case, I discovered that the travel adapter I brought with me did flawlessly charge my mobile phone, but didn't fit to my laptop cable! My bad. I had prepared well to avoid such incidents, but this one I had not tested out before. Lesson learned for the next travel to a country with a different socket type. So I asked at the hotel if they have any adapter available - and yay! They could provide one that fitted my cable. But: My laptop did not charge. :( So instead of practicing my talk or relaxing, I ran around Swansea to find any other travel adapter which might possibly fit my laptop cable. Lucky me - the fourth adapter finally fit AND charged my laptop. Phew! Well, I knew that Viv would have gladly supported me, but I was eager to try solve my self-induced problem myself before bothering him as I knew he had a lot to prepare for the conference.

On Sunday evening I had the chance to meet up with some early arrivals for the conference. That meant Viv himself (a pleasure to finally meet him!), Richard Bradshaw (whom I met in his tutorial at Agile Testing Days 2016 already), Carly Dyson (whom I only briefly knew from Twitter and had spoken at Nordic Testing Days) and Georgina McFadyen (whom I had not yet met and who was about to do her second conference talk at SwanseaCon). A lovely group to start with! As an introvert I was happy to get to know some friendly faces upfront to the conference, which instantly made me feel so much more relaxed. Ready for the conference to start!

During SwanseaCon

Conference Day 1 - Diving In

The conference took place at Liberty Stadium in Swansea. A nice venue! We were greeted with tea, coffee and cookies. The two session rooms were quite large and showed a friendly cabaret setup, having people group around round tables. All the sessions I attended were really great, each session in its own way. However, in the following I will only list my personal highlights of each day.
  • Let the conference begin! After a warm welcome and some introductory words by Viv, Sander Hoogendoorn kicked it off with his opening keynote "It's a small world after all". A great talk about how quickly time is changing and how everything is becoming smaller and faster. I especially loved the idea of "continuous culture".
  • In her talk "Don't Diss the Discipline", Georgina McFadyen shared her stories about how her company changed from waterfall to agile, and from being professional software developers who did their job, to software craftsmen who really cared about the product they were creating, about its quality and its value to the ones using it. Awesome experience report, I really loved her stories and presentation!
  • Seb Rose of Cucumber shared "10 things you need to know about BDD, Cucumber and SpecFlow". There were several misconceptions to be addressed and clarified! Though not everything was new to me, he did a well-rounded talk covering many essential topics around BDD and the core concepts or benefits of it. Great job!
The first day ended with some snacks and drinks, a nice socializing and networking opportunity to share and discuss our thoughts about what we heard with other people. Right afterwards several attendees decided to join a special meetup in town, where several of the conference speakers or attendees had the chance to give a lightning talk about any topic; prepared or unprepared. It was simply awesome! Many valuable insights given in short time. Nice way to close a conference day.

Conference Day 2 - My First Talk and Other Highlights

My talk was scheduled first in the morning, so I had the task to kick off the second day. In the beginning, not so many people had entered the room yet, but they grew more and more over time. And they were a lovely audience! In retrospect, when reviewing the received feedback and reflecting on what could be improved, I have to admit that it went really well, especially for my first conference talk ever. The dress rehearsals at my company and at local meetups really paid off (also regarding my level of nervousness). I forgot to mention some points (as always) and noticed some things I should work on (like me posture). But overall I cannot complain, it was a great experience! By the way, my slides are now publicly available.
The rest of the morning I attended further great sessions, but found myself not being able to focus on them as they would have deserved it. I got distracted by thoughts about this scary thing I've just done - public speaking, at a conference. I still catch myself wondering if this story really became true after all.

After a while, my focus was back; just in time to enjoy the following most awesome talks.
  • We had the honor to listen to professor Dave Snowden from Bangor University, the creator of the Cynefin framework. He gave his very insightful talk "Making Agile safe again: resisting the Borg" without any slides - just once using a whiteboard. Really impressive!
  • Afterwards, I heavily enjoyed columnist and author Kevlin Henney's talk about "Turning Development Outside–In". Such a great and entertaining presenter! He took us on a lively history of how development processes evolved and how we have to look closely for whom we are doing all the things we do and why.
  • Another talk I really enjoyed was "The Domain-Driven Coding Architect" by Nick Tune. Great storytelling of his lessons learned while finding out how to properly (!) read the DDD book written by Eric Evans! :D
  • The conference was concluded by Sallyann Freudenberg and her talk "The trouble with culture", talking about neurodiversity and how teams benefit from it. What an awesome closing keynote about a really important topic everyone should learn about! And definitely lots of food for thought.

After SwanseaCon Is Before SwanseaCon?

After the second day, most people went home directly. I took this chance to review the #SwanseaCon twitter stream, see what people shared about the talks I missed. So many great sessions! Even for a two-track conference it was really hard to choose between all those great speakers and topics. A pity that not all sessions had been recorded, but sometimes it's also the charm of a conference that you had to be there to experience them. Only there you can feel the whole atmosphere - and especially connect with people. You can't do that when watching a recording alone at home. I did connect with several people at this conference and am already curious what they will be up to next.

The trouble or sad news: This might have been the last SwanseaCon. Believe it or not, Viv does all that work on his own. The organization was awesome and his support outstanding, in any way. He engaged family and friends to help and everything went so smoothly and professionally. Still: There's lots of money included when you organize a community conference by your own. A conference which supports speakers with travel and accommodation costs, but still comes with very affordable prices for attendees. If no one buys a ticket - you basically lost a lot of money. As attendance on this third edition of SwanseaCon was worse than last years, and there's so much work and blood and sweat and money in it - he understandably considers not repeating it. Especially as this man volunteers with so many other great things for the local community already, while working a full-time job and having a family with soon to be five kids! All my respect goes to him.

What I loved about this special conference was the speaker and topic selection itself. Because in the end, it's all about the people. I you have a chance to come to Swansea, I really recommend this event. Would love to return to this wonderful conference where so many great people met to learn together.
"Having attended a fair few technical conferences, it felt refreshing and important to be part of something a little softer. Software development is about community, communication and culture, and SwanseaCon scored top marks on all three." - Thomas GuestSwanseaCon 2017

Monday, September 18, 2017

A Long Story Cut Short - The Importance of Pausing to Think

Today was the day. My team released a huge epic introducing major changes in our application. Normally, we release many changes during our daily release slot. However, this release was unusual in itself, and it taught us a bunch of important lessons.

We started working on the epic on July, 11. As we had discussed the topic several times before, the whole team felt that we had a shared understanding and were ready to go for it. During the first two weeks only one developer focused on the topic, and gained first insights on how complex it actually was. He raised the issues he was facing and called for support, especially as delivering this epic was our highest priority. We decided to have the whole team step in and share the work load. We still highly underestimated how far this would go - or rather, how far we would let this go.

The whole team, meaning five developers, our product owner, our agile coach, and me as tester delved into the topic. And together, we gave birth to a monster. With every little change the whole solution got more and more confusing. It was incredibly hard to figure out what was expected and what was unexpected behavior, and especially how we would ever be able to understand our implementation in the future again. And by "future" I mean half an hour later. Everybody was having a hard time. Nobody was happy with what we did. The amount of curses increased rapidly. We all felt we would soon go insane. One teammate even suffered from nightmares and sleepless nights. We are really not proud of this tragedy, but this should give you a pretty good idea of what was going on.

Desperately, we discussed again and again if there would not possibly be any other way to fulfill the business need but also enable ourselves to keep our application maintainable, extendable, and last but not least testable. However, our discussions turned in circles. So we pressed on with implementing the epic, eager to get to a minimum viable version for which our product owner would let our users access our test system to get their feedback.

The fun fact - or rather really sad truth: As soon as we were ready to start the user acceptance test, one developer took the time to create a completely new prototype, based on a totally different assumption. And after only half a day, on August 30, he was ready to share his new approach with the team, to have them challenge it and find flaws in his thinking. We were stunned by his simple approach. We raised some questions, but couldn't find any reason why not to go with it. By only doing one thing differently, everything else became a lot less complex. Comprehensible. Consistent. Doable. With way less effort and way less changes in our application. What he did? He threw a convention over board which everybody had considered as a fixed precondition. You know, as soon as you have to handle x, everybody strongly recommends to do y to avoid problems. We had never challenged this assumption we had in our heads, all of us had accepted it as a given. But in the middle of implementation, it turned out that this convention made everything really bad for us. Neglecting the convention instead was fitting way better in our context, from business perspective as well as technical point of view.

Shame on us that we had to go such a long and winding road of learning how not to do it. Nobody had put pressure on us but ourselves, not our product owner, not our agile coach, not our stakeholders. We ourselves were driven by the thought that we have to get this done and finished as soon as possible, making us pressing forward without taking time to actually think and experiment early. The team even "temporarily" discarded our rule to stop starting and start finishing, meaning that all developers continued to start working on new topics before former ones had been completed. Unsurprisingly, this created lots of bottlenecks and context switching, making the whole situation even worse. And as soon as one of us felt we have a bit of time to breathe again - he found the clean solution.

To cut a long story short: within a few minutes of discussion, we wholeheartedly threw away our first implementation on which we had worked for nearly two months by common consent, in favor of this new and easy approach which we in the end fully implemented within about one week. After going through all this, we couldn't but ask ourselves in retrospect how this could have happened and why by all means it took us so long to challenge our assumptions, learn, experiment, and see the solution. But in the end we did learn the following.

Conventions are recommendations but not carved in stone; they might not apply or be a good fit in your context. Think outside the box (that you might have created for yourselves) and experiment early with different approaches. Don't get so busy that you cannot pause, breathe, and think. And last but not least: Don't be afraid to kill your baby, especially if it turns out to be a monster.

Bonus read: By coincidence or not, when thinking about publishing this story I came across the post On Real Options and Speculative Investments by Liz Keogh which nicely reflects many facets of our story. Besides the fact that I really relate to the core messages, it's a highly recommended read.