Jiva Technology

It’s all about the trees.

Going back a few years I spent a lot of time in the far north of Scotland. The Caithness region can be a little wild and windy, but it has a dramatic natural beauty that’s reinforced by the almost complete absence of trees. I thought the lack of trees was a natural thing, but it turns out I was wrong. Caithness used to have trees (romantically called the Caledonian Forest) but a combination of small changes in the climate and the arrival of agriculture and humans around 4,000 years ago put paid to both the trees and the bears, lynx and other animals that lived there.

Fast forward to the present day and we worry about the destruction of Amazonian rainforest, its unique biodiversity and the impact the loss of trees will have on global warming. But what is happening in the Amazon today is what happened in Britain (albeit on a smaller scale) several thousand years ago. And what’s important is that to a certain extent, its a reversible process. Just as we can chop down trees, we can plant new ones. The Committee on Climate Change has reported that the UK will need to plant 1.5 bn trees to meet the goal of net zero carbon production by 2050. At a time of climate pessimism, that sounds like a lot, but the UK was once almost entirely shrouded in forest. Returning swathes of the countryside to its former state in combination with rewinding that can have astonishing effects in a relatively short period. There work of Sebastio Salgado and the Instituto Terra show just what might be possible in even the most damaged landscape. Which is why the Department of Environment initiative to offer grants to plant 130,000 new trees is a brilliant initiative and hopefully the start of something big. The magazine entrepreneur Felix Dennis left an amazing legacy with the Heart of England Forest that plants over 300 acres of new trees per year.

The point is that whilst its easy to become despondent about climate destruction, its also easy to miss the things that are being done and need our support. Major news outlets very rarely concentrate on the good news stories because bad news sells. But the good news stories need our help because that’s the only way that they can expand and make more of a difference. Tackling the greatest issue of our time is not just about electric cars and renewable energy, its about taking the carbon out of the atmosphere thats already there and the best technology we have at our disposal at the moment is the mighty tree. Natures capture capture technology.

What makes a good software engineer?

With so much software being produced these days, it seems as if no product can be released without a dash of software added to the mix. We’ve hired many software developers over the years: everything from junior developers straight from university to grizzled veterans who can still spell Cobol. But surprisingly, it’s only recently that I can remember a conversation where we talked about what actually makes one software developer better than another. That isn’t to say that cv’s and skills aren’t heavily scrutinised, tricky interview questions devised and code tests demanded in abundance. But somehow, amongst all of this, there was an unwritten agreement that a developer with a neat code test, the right skills and a passable interview was good to go. It should matter, because good developers are considerably more productive than average developers. Some argue up to 30 times more productive, which sounds a little outrageous, but we get the gist.

Oddly enough there seems to be universal agreement that specific expertise is overrated, so that huge list of skills and products mastered doesn’t mean a huge amount. A decent developer can pick something up quickly even if they haven’t used it before. Which makes me think that a good developer should be quick to learn. The reality is that new stuff is coming out all the time, so the shelf life for all those skills is fairly short.

Some folks will add in general skills like, “good communicator, hard worker and team player” but if we employ the eternally useful Law of the Ridiculous Reverse, who ever wanted to hire a bad communicator, a lazy tyke and a rubbish team player? And in any case, aren’t those qualities that you’d look for in any new hire? So do they really make a difference in the specific case of software developers? Probably not. There is an argument to be made about one particular generic attribute, which is time management. In theory, we should all care about time management, although the advent of social media has perhaps made goofing-off irresistibly attractive. But there is something different about managing time in a software development project. There’s a cadence associated with agile sprints that feels a little like the rising and falling of the tide; with the inevitable mad dash at the end to get final development, bugs squashed and code pushed in time. Time management needs to include an ability to change gears when needed. To work incredibly intensely at times and feel okay about lessening the pace at others (no one can work at pace indefinitely). So maybe there is such a thing as developer time management, which could be the reason why GTDs are so popular in the developer community.

So we haven’t really got that far: good at time management or changing gears and a quick learn doesn’t feel like an exhaustive list. But there is one skill which seems to very prevalent amongst the best developers I’ve come across. Call it problem solving, critical reasoning or whatever you like, the best software engineers share this with the best engineers of all disciplines. Its the ability to understand a problem at more than a superficial level, to understand what is the core of the problem, the difficult nut to crack and to sketch out solutions that may not be from the standard recipe book. The greatest engineers in history … I’m talking to you Isambard Kingdom Brunel … were exemplars of this trait. Of course a major part of this is an ability to empathise with the end user, with the person whose job has to be supported or automated or otherwise coded. Its understanding that its not just about the process, but the way that human beings interact with the process and adopt it, or not. Which in turn suggests a curiosity about the problem and the people that is too often absent in projects that I’ve seen in the past.

So perhaps we have an answer to the question, “what makes a good software developer?” A quick learn who has good time management skills and critical reasoning skills; is curious, empathises with end users and a decent time manager. So far, so easy. Now how do we design an interview process to test all of that.


Regus House
1 Friary

Temple Quay
United Kingdom