Saying the quiet part out loud
“Saying the quiet part out loud” is a phrase I’ve just made up, to describe a method of building alignment on practices within a team. It’s the habit of stating why you are doing things a certain way, even when you would assume it’s obvious.
Cull your dependencies
Anyone writing code professionally in December 2021 will remember the “fun” of the Log4J vulnerability. For those that weren’t - this was a critical security error that allowed attackers to run any code they wanted on your servers. The root cause was a logging library, Log4J, that is used by most projects that are writting in Java.
It’s usually used to write code something like:
log.info("Process completed successfully");
which will then appear in your logs, allowing you to track your application’s behaviour. Pretty innocuous stuff.
Does the software industry learn?
“Institutional knowledge” - the information that a company collectively knows - is a familiar concept to anyone involved in hiring processes. When an individual leaves who has knowledge the organisation needs, companies will organise offboarding sessions to keep that knowledge within the institution. Maybe they’ll even try to hire someone with similar experience.
Lots of companies similarly try to optimise for “Institutional learning”, especially smaller firms. This makes a lot of sense - smaller companies don’t have the resources to buy in extra experience, so they focus on rapidly expanding the experience of their existing employees. It also fits really well with the agile philosophy of fast development cycles to maximise your knowledge about customers’ needs.
Should we welcome or fear the Metaverse?
Kit Wilson writes in The Spectator about Facebook’s new venture into the Metaverse, a concept that most of us probably hadn’t heard of until last week. To layout the roadmap for what our journey into this new digital reality might look like, Kit joins the podcast along with Tom Renner, a software engineer for NavVis. (12:55)
DORA? I barely know her!
Coming to grips with DevOps metrics
In my team we have been considering ways to monitor our own performance, and finding some ways to contextualise our ongoing process and quality improvements. Like many other teams, we’ve landed on the DORA metrics as a good way of doing this. These four key metrics are an easy way to understand what adjectives like “maintainable”, “reliable”, and “efficient” mean in practice when applied to software and teams, and the provide a way of comparing team performance across teams and over time.
Staying in one place doesn't mean standing still
Talk given at Codebar Festival.
If you wish to see my slides in their full glory, they are available on Slideshare.
Make yourself a happy place in your inbox - a mindfulness tip for your working day
Your work inbox is probably not a place that sparks joy. It’s full of people asking you to do things, complaints that something hasn’t been done, and 571 messages marked urgent.
In fact email is usually considered to be a hindrance, with many productivity guides recommending simply ignoring your email for large periods of the day, blocking out that time for focussed work. The consensus is that your work inbox is just a place that generates distractions, and contains never-ending to-do lists that nag away at you throughout the day.
Twitter network graphing with Gephi
Gephi is a piece of software for visualising graph networks. It’s a powerful tool, and to use it fully requires significant domain knowledge that I don’t possess, but fortunately it’s still fascinating to play around with as an amateur!
As a techie, to me the obvious networks to graph are those created by the big Social Networks - YouTube, Facebook, etc. It’s not hugely surprising to find that mostly these graphs mostly aren’t available for querying, but excitingly there is a plugin that allows you to stream in live data from Twitter.
XTC discusses Basecamp's Shape-Up
Last week I facilitated a session at XTC, where we discussed the new product development framework from Basecamp, Shape Up, led by Thomas Ankorn.
It was a really interesting discussion with people exploring the ideas openly, guided by questions posed by Thomas to get the conversation started.
I’ve summarised the points that came up in the discussion, reconstructed from memory and the collected post-its of scribbles at the end of the evening.
1. What problems does this solve?
We started by looking at the positives of the framework, trying to identify strengths that would help mitigate problems we have encountered in our own teams.
The Temple of Fail
DISCLAIMER: This was not my idea - I picked it up from Jane Nicholson at an XTC event, who was introduced to it by Jess Gilbert (who in turn, I am told, got it from someone else). This post is just explaining why I believe it can be a useful exercise, not any truly original thinking!
One of the things that is really important to me is that my team and I keep learning at work. As such, fostering a learning environment is kinda key. I think we do that pretty well at Haplo – we have hired nearly exclusively early-career developers to our tech team for several years now, and one of the key points most hires mention as to why they join is that they feel it’s a good place to learn quickly, with the requisite support early on in their career.
"Efficiency" is bad for your health, and your learning
I used to stress a lot about the “efficiency” of how I was using up all the minutes in my day. I’d to cram in as much as possible into time. eg. read on a 10 minute train, write code in the half hour before bed, etc.
While I stressed about it a lot, I never found that I did the “10x” things I read about that were supposed to emerge as a result of this extra “efficiency”. For example I have only finished one of the three side projects I started in 2016, despite promising myself that those wouldn’t take long.
Offline knowledge, buses, and note-taking
In a team having knowledge that lives only in your head is a terrible thing.
- Humans are forgetful
- Humans are creative, especially when problem-solving
- Computers are not creative
- Computers are not forgetful
So we should get the computers to remember things, and allow the humans to do the creative parts.
Writing software is a creative activity. You start with a blank text file and end up convincing people to give you their identity details in exchange for the ability to poke someone over Facebook. If that’s not creative I don’t know what is.