First Auckland Code Retreat
Auckland Code Retreat
It was a great event - and I offer a big thanks to Ian, Corey and the sponsors, as well as the gracious hosts at the Bizdojo makerspace who diligently made coffee and kept us well fed.
The whole day was great, and I think a comment from a fellow attendee Josh Robb in the closing circle rang very true with me as well, in that I came away pleasantly surprised at how much relevance the sessions had to the day to day work I do. Every time we commenced a new session, with some different constraints, I found myself thinking of code I've written in the past where the same challenges were faced, or problems such as primitive obsession perhaps led me away from discovering a far more suitable abstraction or approach to solving a problem.
Through the day I got to pair with people mostly in .Net (C#) - as well as with a scala developer (though we paired using Java) - and a good mix of developers at different experience levels (at one point I even found myself having to give a very brief crash-course in Lambda's to my pair who I guess was probably stuck working with older versions of Visual Studio/legacy code bases).
I think one thing that surprised (but also, not really... ) was how 'comfortable' I've got in the last 7 years, since I started working from home.
I'm not talking comfortable i.e. lazy / set in my ways - the last 7 years I've spent working from various home-office's have probably been some of the busiest times of my life, with lots of challenging tasks. And I certainly keep myself busy talking to other developers, sharing experiences and trying to learn from others.
But what I mean is comfortable in my working environment...
Over the years I have slowly reduced my tech life down to:
- A fast Desktop PC.
- Lots of screen space (3 x 30" monitors + sometimes some additional smaller screens)
- A good full-sized keyboard (currently using a daskeyboard, though the previous Logitched G15 I had was also good for other reasons).
- Full size mouse (or a mouse at all).
- Coding largely in isolation.
- Using a laptop probably once every couple of months.
- Largely working on brown fields projects.
So when it came to pairing on laptops throughout the day (and deleting my code every 45 minutes) I found:
- My muscle memory for different laptop keyboard layouts was non-existent.
- I really struggled with laptop keyboard cramping/typing accuracy
- My Mac keyboard knowledge is very poor - and same goes for my knowledge of Elicpse shortcut keys.
- I struggle to work around Visual Studio without ReSharper, and my ReSharper keyboard short cuts are somewhat non-standard.
- I struggle with a single screen (I generally work with test + code side-by-side on one large screen, and the test runner on another).
- I wasted time setting up test frameworks etc. unnecessarily (A force of habit coming from my brown-fields background) - when I could just have easily written a single-line Assert method that throws an exception and been done with it - and had a few extra minutes to focus on the actual problem.
- I wasn't great an articulating my ideas to other developers necessarily
This all lent itself towards a feeling of general uneasiness. But the good, motivating kind, if you catch my drift. The up-side of the code-retreat session is that deleting your code after 45 minutes makes it easier to forget the uneasiness and clear your mind ready for the next session.
Well I think I came away overall with a stronger desire to start pairing with people more often. The 45 minute session format really surprised me - it may not be long enough to necessarily solve the problem, but it's a great length of time to learn something / hone your craft around a particular constraint.
And it's certainly pushed me into trying and see if I can fit at least 1 session of pair-programming into my weekly routine if at all possible.
One Idea I have is perhaps pairing with somebody either immediately before or after the Architecture Chat that's run every second Thursday... so if anyone is in town and keen for a quick hour of pair-programming, let me know and perhaps we can catch up :)