Skip to main content

Q&A: The challenges of software developers

(Image credit: Image source: Shutterstock/TechnoVectors)

How did you start your career in technology?

I first got interested in programming when affordable 8-bit home computers appeared back in the 1980s. From there, I taught myself to program BASIC, Pascal and assembler. After that I sold a few utilities and then I graduated to 16-bit machines. All of this inspired me to write about computer programming, so I ended up writing a monthly programming column for about 6 years. I then went to study at York University and achieved a masters’ in computer systems and software engineering, and worked on systems for the Space Station and Boeing 777 during the summer holidays.

What about software development is most interesting to you?

Today, it’s the application of machine learning and other AI techniques to solving tough problems far more effectively that I find truly fascinating. In software development, every single line of code has to be hand-crafted from scratch, and it’s clear that developers don’t enjoy that—and neither do business people. But it’s a hard problem to solve in an effective way: pattern matching and templating approaches can only go so far. That’s why I think the work we’re doing at Diffblue is exciting. Solving a tough problem using new AI approaches has the potential to unleash a whole new level of developer productivity and improve software velocity.

What notable challenges have you encountered in your career and how did you address it?

During the earlier years of my career, I was part of a product team for a large corporation that delivered IT, networking and cybersecurity solutions. I was working to reboot a part of its business where the company had failed to listen to and understand its customers’ challenges. The result was a declining 5 per cent market share. Learning what it took—organisationally and culturally, as well as technically—to put aside internal opinions and egos and rebuild the organisation and product line around actual customer needs was a great experience. The results were very rewarding when five years later we had a 50 per cent market share and strong profitability.

How important is finding people with the right skills to work in your organisation?

Hiring talent with the right skills is vital, but finding them is just the start. So many companies are not good at the process of hiring candidates who will be successful inside their organisation, and they pass on good candidates. The average job interview has a predictive value of 0.3—that is, 70 per cent of the time it’s not a good predictor of future job success. You can also see this in interviews where candidates are asked to do things like solve abstract brain teasers, which are unrelated to the day-to-day job and have zero predictive value. Businesses need to implement a more structured interviewing approach by asking behavioural questions related to the skills the company is seeking. It’s with this approach that employers will be able to see if the candidate has the right skills for the role to be successful in the business.

What are key challenges software developers are facing?

Software is more important than ever to organisations across a wider range of industries. We’re also reaching the end of “automate this paper process” as the primary value of software, and moving into more complex automated decision-making in order for organisations to move faster.

This challenge is exacerbated by existing (sometimes called legacy) code bases, often used to run core revenue-generating applications. One of the main issues is that making changes and adding new capabilities is time-consuming and error prone, and it’s hard to predict how a change in the code will impact the performance of the software application.

Where do you believe businesses should be focusing their software investment this year in your industry?

We know that demand for software developers outstrips Britain’s ability to produce them. And the sophistication required of those developers is increasing, because now they’re also expected to know how to apply techniques like machine learning.

The more that AI and code synthesis can augment development, the better chance organisations have to scale their software engineering practices. At Diffblue, we started with generating test code because writing it takes 30-40 per cent of developers’ time, and they don’t love doing it.

Automating this process allows developers to significantly cut down the time spent writing tests, so they can focus on the work that directly leads to business outcomes and supports product development.

What will the future of coding look like?

I see code synthesis as the next major coding tool revolution. I was getting started at the end of the “write everything in assembler” era, when it was felt by some that automated code generation by compilers wasn’t the way forward because they could hand-craft better code. Of course, the productivity gains from not having to hand-craft every line of assembler were so great that compiler technology became the norm. I think we’ll see the same evolution with code synthesis now that AI approaches offer new ways to automate complex code generation and eliminate drudgery.

Mathew Lodge, CEO, Diffblue