Apparently the YOW Conference is a big thing, it started in Denmark as the Java and Object Orientation Conference – JAOO pronounced “YOW”, was brought to Australia in 2007 and has been going on over east every year since then; Perth companies regularly send developers there to learn stuff.
YOW coming to Perth is therefore “A Good Thing”. People who’ve been to the eastern version say that the Perth version is smaller and more local; two days instead of three, two tracks instead of three, and less international speakers, but a great start. Considering it was planned in a ridiculously short time, it’s been a great success, and hopefully the first of a long series of annual conferences.
I’ve been coding for years in a variety of small businesses and very few large enterprises. My understanding of large-scale enterprise development projects is a sort of bemused confusion about why everything is so complex. So a lot of the basic understanding behind some of the talks was missing for me. For example there was an entire talk about intermittent test failure, which was interesting, but the speaker was talking from a large-team point of view where it was a hard task to get developers to stop submitting code that broke tests and keep the build green. I didn’t really understand that: in my development practice if I break a test then I fix it, otherwise why am I writing these tests?
Startup product development is about getting shit done fast (and we often accept that it is shit because we need it done fast). But there’s some discipline we do stick to, usually, things that we accept we need to do – like good unit testing with decent coverage so we know when we break stuff, like branching version control so we can go back to when it wasn’t broken, things like that. We don’t need the whole nine yards of large-team development practice, but we do need to pick and choose bits of it so we don’t mess up too bad.
YOW was like that. There was lots of content that really didn’t apply to startup coding, but listening to the talks gave insight into things that I should be doing better. Software development is both a craft and an art, and the craft part is improved by hearing how other people use the same tools in different ways, or their experience with new tools. It won’t help you get new customers, but it might help keep your existing customers if the product actually works as expected. The things I heard at YOW can help with that.
I missed the pub networking, which I’m sure was half the experience, and unusual because I rarely miss a chance to drink beer in the company of my fellow geeks. But mixing with the folks during lunch breaks was educational; there’s a huge range of backgrounds and skill sets here, with a common interest in software development practice. The buzz all seemed to be about Micro Services Architecture (it was a rare conversation that didn’t mention this at least once) and Functional Programming. I’m reminded of when Object Orientation became mainstream in the 90’s; suddenly everyone was talking about object models and the really cool kids were building three-tier architectures with CORBA. Apparently now the cool kids are building Micro Service Architectures with Haskell. Surprisingly Go was barely mentioned, obviously that was so last year or something.
Highlights for me:
- Rob Moore’s talk on Pull Requests – an excellent talk on a good subject with clear take-home useful advice
- Erwin Van Der Koogh’s talk on Docker – I’ve been watching Docker since it launched (as has the entire development world) and seeing it in practice was great. It didn’t go that deep into the practice, but as a beginner’s intro to Docker it was great.
- Dave Thomas’s Old Guy Rant. This was pure gold – a guy who’s been at the heart of software development for decades ripping apart some of the “best practice” bullshit and slaying some sacred cows. Apparently there were a few robust exchanges of opinion in the pub afterwards because of this talk.
Things I’m going to do more of because I attended YOW West:
- Integrate Docker into my deployment process
- Investigate Table-Driven Design – I’m sure I’ve done this in the past but apparently forgot it all
- Some basic software design instead of relying on agile iteration to automagically evolve it
- Use more Pull Requests next time I’m working with a team on a project
- Feel smug that I’m using Postgres and not MongoDB in my project – there was considerable evidence for the NoSQL Backlash here
Things I’m going to do less of because I attended YOW West:
- Worry that I’m using the wrong framework
- Feel inadequate about my testing practice
- Manual deployments
- Consider automating Acceptance testing
YOW was useful, educational, entertaining and a positive experience. Would I attend if I had to pay for it? Probably; I think it would be worth it in terms of improved productivity and practice over the year.
So let’s hope next year is bigger and better and has WiFi! Yow! West