This year as in many years past I was fortunate enough to be able to attend the annual Vancouver Polyglot Unconference. For those unaware, this event (now in it's 6th year!) is a chance for technicians, programmers, engineers, and others working in the tech industry in Vancouver & surrounding areas to get together "for a day of spontaneous sharing, teaching and learning".
This year's event, like others in the past was a great opportunity to learn and share from others struggling with the challenges of modern software development. I thought I'd write a bit about some of the highlights for me from the event.
General Themes In Pitches
Being an unconference, the format of the event is to have attendees "pitch" ideas for discussions at the start of the day, then people vote on the topics they'd be interested in seeing throughout the day, and then the organizers facilitate those discussions by scheduling them into particular rooms, etc. I often find it interesting to listen to the pitches to see what commonalities there are from different folks working in the industry.
This year I was quite surprised to see the "human" side of development come up in many of the suggested topics. Many pitched talks related to hiring & interviewing, team effectiveness, mentoring & training juniors, progressing to becoming a senior developer, diversity, and how software development is becoming increasingly complex. From a tech standpoint, I heard React mentioned a lot, as were microservices and container orchestration technologies (Kubernetes, Mesos, etc).
Something I was particularly taken aback by was the sheer variety and breadth of topics suggested. This is generally true at this event, but it seemed particularly diverse to me this year than in prior years.
JS State of the Union
Chris Nicola kicked off the first session I attended with the JS "State of the Union" discussion which has happened in prior years at the unconference. Unsurprisingly React was a technology mentioned a fair bit in this session, as was Vue.js.
I'm not a front-end guy, so this was definitely not my forte, but themes I took away from this session was the continued explosion of the sheer number of JS frameworks out there. I didn't stick around for the entire session, instead following the law of two feet to switch to....
SOLID is wrong
This session (pitched by Anthony Tsui) was interesting and rather lively. The context: earlier this year Dan North (of BDD Fame) did a talk & slide deck on why SOLID principles are wrong. Rather a controversial stance given how many "classic" well known software developers (Uncle Bob Martin in particular) have long argued how SOLID principles are a key development design practice. The slide deck from Dan North is at: https://speakerdeck.com/tastapod/why-every-element-of-solid-is-wrong
The session itself featured some lively debate around the arguments made by Dan. A theme I walked away with was the classic argument of expediency vs resiliency, i.e. do I build for right now or design for an unknown & unpredictable future.
For me, this session was the highlight of the day. Saem (unfortunately I do not know his last name) facilitated the session by first doing a presentation (with slides) outlining some of the lessons & techniques that are grounded in real research that he's adopted with mentoring and managing junior developers. Lots of fascinating discussion around active recall, modes of thinking, how to optimize learning, the importance of clear, well-written problem statements, techniques for both helping juniors recognize when they're stuck and how to get unstuck, and how to set clear expectations & check-ins around those. Really fascinating stuff, and I found myself (as someone who's had to manage a few co-ops) finding parallels between moments I've experienced and ideas mentioned. I plan on adopting some of the suggestions made in my work with junior/co-op developers I manage.
Steps to Be A Senior Developer
This session was interesting as well. I think unfortunately the original intent of the session ("I'm not a senior but I want to be one, how do I get there?") got a bit sidetracked. Much of the discussion ended up around how to get hired as a senior dev, and less around how to progress to be a senior dev. I'm not sure I walked away with many clear ideas that expanded upon what I already think makes a senior developer a senior (ability to be self-reliant, resiliency, maturity, ability to mentor, etc).
Complexity of Modern Software Development
This session was pitched as as "I'm going to convince you that software development complexity is getting out of control", and (perhaps unsurprisingly) the discussion ended up rotating around sources of complexity in modern development. Some of the topics discussed were the "ooh shiny" syndrome vs adopting technology based on need, the distinction between inherent vs accidental complexity, solving problems at the wrong level of abstraction, and the sheer explosion of choices we have around competing technologies as being a source of complexity.
An interesting analogy I heard during the session that I hadn't thought of before but seems quite apt was the idea of open source software as an externality (in the sense of economics) and the implications that makes. Interesting stuff.
Stupid Questions about diversity
Last session of the day for me was one facilitated by Holly Burton who created a space for people to ask "stupid questions" around diversity. This was truly interesting, lots of discussion around stats & research around diversity. Much of the discussion ended up focussed on gender diversity (i.e. male/female equality).
Some of the eye-opening moments of the session included discussion around how there's a "PTSD effect" happening around "bro culture" at tech firms and the implications around how you present your company in things like job postings. For example (and this had never occurred to me before), but advertising things like "we play ping pong", or "we have nerf battles all the time", or "beer fridays!" can and often do turn female developers off of applying to a firm.
Another gender difference I hadn't considered: the importance of being clear on what is actually required for a job posting. Women are far more likely to self-select themselves out of applying for a position when they don't exactly meet the stated requirements, so having "wish lists" rather than "real requirements" tends to end up with the result being that many women who are qualified to do a job not applying for it. Really interesting stuff that I'm hoping I'll be able to apply in postings my current employer produces.
All-in-all Polyglot was a great event again, I find it like a 1-day compressed window into the pulse of modern software development. For me personally, I find it useful to go to the event simply to help keep current.
Some of the themes that stood out to me were around the challenges with hiring & career progression (as someone who is very interested in the human side of development I really liked seeing this), as well as the increasing complexity of software development. Things are getting harder, which almost seems unintuitive as we have more, better, tools available at our disposals as developers.
In any case, I can't wait until next year when I go to the event again. Kudos to the organizers for putting on such a great event year after year.