Jiva 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.

Why its time for a post-oil economy

There was a time when I thought that governments in general and government ministers in particular actually new what they were doing. The events of the past few years have firmly dispelled that notion. Its not surprising really, these are very complicated jobs with a lot of ambiguous information and politics just doesn’t really do complexity and shoes of grey.

When I ask friends about the most important things they think need to be addressed; those things rarely show up on the front page of the newspapers for urgent government action. Too often, they require tiny improvements over a long period of time; the benefits will accrue to the future and not to now – what sane politician would want to do that.

But there does seem to be one area where important area where everyday concerns can coincide with big politics and that’s climate change. People are looking for action; they’re looking to take action. We’ve lived in an oil based economy now for over 100 years, the job of building a new post-oil economy should be the job of everyone, not just the younger generations. In the US, Alexandria Ocasio-Cortez has championed the Green New Deal, a reference to the New Deal policies that lifted the US out of the Great Depression, but to me, this is something far simpler. We have the wealth and the expertise and the desire to build an entirely new economy that relies to a far lesser extent on fossil fuels. Ramez Nam’s piece on decarbonising America provides a great overview of the challenge we face in everything from farming to construction and from transport to public policy. This is not a partisan political issue, there is agreement across age groups and political persuasions that something has to be done and the time to do it is now. Sleep walking into catastrophe was never a good idea, but the recent school strike and Extinction Rebellion protests show just how strongly people feel about the issue.

At the moment, the talk is negative, about avoiding bad things, but the reality is that upbeat leadership towards a de-carbonised world is a good thing for everyone. Its positive, its good for the economy and its good for the one world that sustains the life we live. It will be fascinating to see how this unfolds, but its hard to believe that the necessary leadership is not going to emerge in the near future. Its not hard to imagine a conversation in twenty or thirty years time where people wonder how anyone thought it was a good idea to light a fire under the bonnet of car to provide motion. You did what?

Something we never think about.

Amongst all the excitement of developing and rolling out a new product and entering a market, the focus falls squarely on attracting early customers, making them as excited as you are about the product and adding features that will bring in the next wave of enthusiastic early adopters. It’s all about delighting the early advocates and generating the buzz required to build early momentum. As someone once said to me, the first 1,000 users are the hardest.

And it’s true … to a certain extent. Because those early days are hard, you need the energy and commitment to believe the product and market into existence. Caution and concern are not all that helpful. But an outstanding blog post by Sahil Lavingia reminded me of a problem that I see more and more. One that lurks over the horizon ready to trap the unwary.

During that early phase of product release and user traction, you pay very little attention to what happens when you’ve attracted all the users you’re going to attract for your product. What happens when you sign up the 1,501st customer in a core market of 1,501 users? Like a rocket that has insufficient fuel or stages to reach escape velocity, you continue for a while and then slowly start falling back to earth. Lavingia is refreshingly honest about his experience and he performs a service to fellow entrepreneurs in talking about a topic that, well, most entrepreneurs don’t talk about. Loss aversion kicks in, no one wants to let go and some very hard decisions have to be made. It reminds me of all those micro messaging services, like Pownce, that emerged in response to the launch of Twitter. Most gave up early without the traction needed to keep going, but in the back of the mind, there’s always the story of Slack or Paypal to keep you going. Billion dollar successes that rose from failing projects.

It’s something to think about when you’re starting your new project. Being crushingly honest about exactly who will see value in what you’re doing in a detailed way, rather than a vague and generalised fashion. Focusing on the value of how that values delivered helps size the market in an honest way. It’s possible to build decent, profitable companies in small markets. But not in micro markets. Best to know that before you start. Just another thing to consider, alongside technology execution, marketing strategy, funding, competition, recruitment. Who’d be an entrepreneur?

 

The scramble for a quality education

As education continues its journey from being a good thing in itself to being primarily viewed as the gateway to well paid employment, the scramble for entry to high quality institutions has intensified to the point where bribery and corruption has now become commonplace.

Perhaps its merely one step further in an arms race where parents pour money into camps, tutoring, books, websites and other educational resources. But somehow everyone agrees that the recent allegations of cheating and bribery to gain access to prestige US universities crosses a very important line. It’s not throwing resources at the problem of improving student performance; its accepting poor performance and getting prize anyway.

Parents are stressed and under pressure, worrying that their children will be consigned to the slow lane no matter their capabilities if they don’t get into the right school or the right college. Unsurprisingly, that stress is being transmitted to the kids themselves. The fight for places ends up as a fight being waged by 5 year olds, 7 year olds and 17 year olds.

We cannot allow this situation to continue. We need to find a more flexible approach to reduce the stress levels and frustration that have built up over the last ten years. We cannot allow the best resources to be cornered by those with the most money. And it’s not simply a question of fairness, its a question about economic performance in a knowledge-based economy and the ability to solve the big problems in our societies.

Flexibility inevitably needs to thoughts about technology. It simply has to be the case that with intelligent application, technology can make a major impact on the availability and quality of teaching for people at all ages, not just at school and university. So far, we’ve been making baby steps in that direction. Perhaps it’s time to turn them into giant strides.

Contact

Regus House
1 Friary

Temple Quay
Bristol
BS1 6EA
United Kingdom