I have a tendency towards developing in the open, so naturally the work is all open-source and published as I work on it. And I’ve been noting the incremental steps forward on this Twitter thread.
One of the other things I’ve been doing more of during lockdown is watching, and subscribing to, people’s work on YouTube. Which has led to me thinking about sharing some of my work in the same way.
It was, and is, all very experimental and rough-round-the-edges, as you’d expect. I ended up spending the first hour-and-a-half explaining the project and what I’ve done so far, with diversions off into my thinking around some of the decisions about data and how precise it isn’t, and the different false paths chosen along the way.
The second half, and the last hour in particular, was when we actually got into anything approaching new work on the project. I think in the future that’s more indicative of how the sessions will (/should) run.
Although it results in a long video, I think there’s a lot of value in sharing the full and exact process of how software is made. It dispells the mystique around the work and shows that this stuff doesn’t just fall fully-formed and perfect from the mind of an uber-coder; there are mis-steps and paths that seem promising but that you later abandon and time when, as a more experienced developer, you just have to fall back on your process and practice and trust that it will lead you forward. Narrating that as you go seems to help to surface some of the tacit knowledge that’s hard to capture in writing about the process.
Most of how I set things up to live code was taken from Suz Hinton’s fantastic, detailed blog post: My Twitch Live Coding Setup. I’d come across OBS Studio before, but the idea about different scenes to let you easily toggle between configurations, and the chat window over to the side to capture any interaction (and show live viewers the lag), etc. is all stolen wholesale from her.
One big difference in my set-up was how I captured the webcam. (Despite being a terrible introvert) I’m interested in how we can develop the collaborative side of development. How we move away from the lone hero narrative and towards a more realistic view of the world.
So rather than livestream just me doing the work, I started a video call for the “development team” and livestreamed that.
I recently joined the meet.coop co-operative, which provides an instance of the open-source videoconferencing platform Big Blue Button. I set up a room for the live-streaming and then captured a portion of that window in OBS Studio, in place of the webcam. When I was the only one there, it mostly looked like a webcam feed, but when Ross joined in, both of us were visible on the stream.
The last ten minutes of the video show that in action (although watching it back now, I need to improve the audio levels for next time, so the remote developers aren’t barely audible!), as Ross was working out how to bootstrap his own development environment whilst I was working on the map tiles, and then we did some pairing to debug him pushing his improvements to the project documentation up to Github.
If you’re interested you can watch it back here…
There are lots of questions it’s thrown up (how long is the right length? Are there are ways to quickly produce a “highlights” video? When is a good time to run it?) and improvements to be made to the process and tech.
However, it was a fun experiment, and I’m going to do some more. As the saying goes, remember to like and subscribe if you want to see more. If you want join the “development team” in a future session, then let me know.