What is a software developer?
A developer – also known as a programmer, coder or software engineer – is an IT professional who uses programming languages to create computer software.
What do software developers do?
Developers write, test, debug and maintain applications. Developer roles can vary widely depending on the type of organisation. They are usually employed by either the technology companies that create off-the-shelf software or by end-user organisations – both in the public and private sectors – who develop bespoke applications. But coding, as we will see below, is just one important element of an increasingly broad role.
What skills do you need to become a software developer?
Developers need strong technical aptitude. Some programmer positions will require a degree in a relevant field such as computer science, information technology, mathematics or engineering. While education is important, the fast-evolving nature of software development means on-the-job experience will be the key to successful career development.
What programming languages do software developers use?
Software development is a constant work in progress. The 2020 Harvey Nash Tech Survey found that a third of developers believe their current skills will only be relevant for the next three years.
SEE: Hiring Kit: Python developer (TechRepublic Premium)
SlashData says the second largest population of 10.1 million developers are Python users, which is popular with machine-learning specialists, while there are now 9.4 million Java developers. These top-three programming languages are the same as developer analyst firm RedMonk's rankings, which are based on data from GitHub and Stack Overflow.
Other popular programming languages include C/C++, C#, PHP, Kotlin, Swift, Go, Ruby, Objective C, Rust and Lua. Language popularity can be cyclical. Take the recent re-emergence of Fortran in Tiobe's programming index at 20th position, up from 34th spot a year ago. Fortran emerged from IBM in the 1950s but remains popular in scientific computing.
- This old programming language is suddenly getting more popular again
- Python programming: We want to make the language twice as fast, says its creator
- Learn the principles of Python and Django for only $29.99
What makes a good software developer?
Rob Grimsey, director at recruiter Harvey Nash, says there are many attributes to a good developer – and inevitably 'good' means different things to different organisations.
"What everyone will look for as a base requirement, of course, is a high degree of technical capability, founded on solid coding principles and the ability to work well in a variety of development environments," he says.
However, there's a further dimension to being a good developer that goes beyond a strong grasp of coding languages. Grimsey says a good developer is part of a team, especially with the modern focus on Agile software development. Agile is a set of collaborative methods and practices for producing software code faster and more efficiently.
"Developers might be involved in a daily stand-up and other interactions. The ability to communicate, contribute ideas, and understand the wider business context of the organisation's requirements – all of these are crucial. Developers are having to play a more interactive role and help bring ideas to life," says Grimsey.
- What is Agile software development? Everything you need to know about delivering better code, faster
- The developer's dream? This company's tech workspace brings Agile development to life
- First it was Agile software development, now Agile management is remaking the workplace
What's the demand like for software developers?
The simple answer is high. Skills shortages were bad enough before the pandemic – and Harvey Nash reports demand continues to outstrip supply today, especially in software development, cybersecurity, and data. "There is high demand for developers and it seems to be getting higher all the time," confirms Grimsey.
Take job listings for PHP, which is a commonly used but not particularly loved programming language. The number of entry-level PHP developer roles has increased a massive 834% since January 2020, making it the fastest-growing tech job across the industry, according to Indeed's data.
When the first UK lockdown began in March, Harvey Nash saw a pause in recruitment for many kinds of roles – but not for developers. Grimsey say developers were essential in enabling businesses to go through rapid digital transformation. Companies used collaborative technologies to tap into a wider talent pool from around the globe. However, the battle for talent remains fierce.
"Businesses have realised as a result of COVID, and the new remote-working model, that they can recruit from a much wider geographic spread, which is positive. But even so, that doesn't solve the problem. If you're a good developer looking for work, you shouldn't be looking for very long," he says.
What's the demand like for software development training?
Once again, the answer is high. Computer programming and software development were the top choices for people looking to improve their employment opportunities in 2020, according to technology firm Red Hat, with almost one in 20 adults taking up coding or some form of software development training last year.
Expect demand to continue to rise as we leave lockdown. The new normal of work will bring a lot of changes, but one enduring theme will be upskilling and learning new programming language tricks, with many of the most popular courses – from specialists like Coursera, Udemy, Pluralsight and Udacity – available for free or with a subscription.
Industry experts suggest there is already evidence of software development skills spreading beyond the programming community. Warren Breakstone, managing director and chief product officer for data management solutions at S&P Global Market Intelligence, believes technical knowledge has become more widely accessible.
"The next generation of clients we have are coming out of school and they already know Python and R. Rather just knowing how to use Microsoft products, they're coming out with expertise and knowledge around these newer development methodologies, such as Python, which makes data, data analysis and data science far more accessible," he says.
- This old programming language is suddenly hot again. But its future is still far from certain
- Rust programming language: We want to take it into the mainstream, says Facebook
- Kotlin programming language: Here's what's inside the first big release of this year
How big a threat is low-code/no-code development to software developers?
The democratisation of software development knowledge isn't the only threat to established coders. Emerging technology might well help to fill part of the IT skills gap in the form of no-code/low-code development tools.
The tools cut, as much as possible, the hands-on knowledge required to build software. Tech analyst firm Forrester predicts the low-code market will grow 40% annually to top $21 billion by 2022, while fellow analyst Gartner forecasts low-code platforms will account for 65% of all app development by 2024.
However, it's important to state that the end of hands-on development is far from certain. Sophisticated applications will always require a professional programmer's skills. And there is some hope that no-code tools can free-up developers to work on some of those higher-level business engagement tasks that senior managers are so keen for coders to assume.
"Low-code won't kill the demand for developers but rather will mean that they need multiple skills," says Harvey Nash's Grimsey. "They'll be looked to as problem solvers with full-stack capabilities. So they won't only be involved in writing code for the core application build, but ultimately the full journey of a piece of software or application."
- Low-code and no-code is shifting the balance between business and technology professionals
- Low-code and no-code prepare enterprises for an 'unknowable future'
- How low-code development is supporting this growing business
What's the key to being a successful software developer?
Tarah Lourens, chief product and technology officer at property specialist Rightmove, is a former developer, so she understands the kinds of skills that will help talented software engineers stand out from the crowd. Like others above, she suggests coding is just a crucial jumping-off point for successful developers.
"I've always been passionate that the right mindset is less about the coding and more about what we are trying to apply this technology to," she says. "We need people who can find the right balance between building great code and delivering business outcomes. The more you can do that, the further you're going to go."
That's a sentiment that resonates with Boots CIO Rich Corbridge, who says that having an eye on innovation – and using your creative ideas to help solve business challenges – is likely to be a key marker for long-term software development success. That's certainly something he's seen during the coronavirus pandemic at Boots.
"Some of the best things that we've seen coming out in the past 12 months have been inspired by engineers sat around and going, 'What if we did this?' And that ranges from true coding of new stuff all the way through to the implementation of a tool like Adobe Audience Manager and considering 'what if we did something differently; what happens to the speed of the site or the ability to transact?'"
What roles can software developers move into?
The most obvious step is to senior programmer. As well as coding and testing, senior developers will start to work more closely with the business to identify their business requirements from software. This kind of engagement leads some developers into business analyst and possibly enterprise architect roles, where the emphasis is on investigating and developing an overall application strategy for the business.
Developers who get a taste for leading others can step into team leadership roles. Those who want to go further up the career ladder still can explore project management roles, where their experience of developing software can be used to help lead specific technology initiatives. What's more, the increasing use of Agile software development principles across the business means experienced developers with good engagement skills are likely to be in high demand.
- What is an IT project manager? Everything you need to know about project management and where it goes next
- What is an IT manager? Everything you need to know, from IT manager salaries to how the job is changing
How can software developers step up into more senior positions?
The key to stepping up is going beyond coding. Modern developers need to think about how their knowledge can help the business create value from technology. Boots' Corbridge says his organisation tasks its senior developers with making sure the business gets the most from its vendor partners, such as Cognizant, TCS and IBM.
"We tend to have more of the lead engineer role leading those partners in what they do," he explains. "Our skill set is around being able to touch and see what's going on across the development of their products. People who have the capability to be close to the business and understand what the business needs, and where the product is going to keep us up to date."
Making the most of partners is not always a straightforward task. Like so many other modern organisations, Boots is keen to use Agile software development techniques. Corbridge says it's his senior developers' role to ensure that the software that his team and its partners produce can be adapted flexibly as business requirements change.
"If we're doing fixed-price deliverables in an Agile world, the two things don't make easy bedfellows. So trying to manage any of our partners to a fixed-time contract – but against an agile burn-rate framework, keeping on top of where that's going and how that's working – has been a big lead engineer-type role in the past 12 months or so," he says.
- What is a Chief Technology Officer? Everything you need to know about the CTO
- What is a CIO? Everything you need to know about the Chief Information Officer explained
- What is Agile leadership? How this flexible management style is changing how teams work
- Digital transformation: This is why CIOs need to stay brave and keep on innovating
What's the pay for a software developer?
Glassdoor suggests the average pay for a developer in the UK is around £40,000, although rates and pay vary significantly with experience, skill and geography. Skill-training platform CodinGame suggests developers in the US are likely to command the biggest salary, with an average software engineer grossing $95,744 per year.
Coding specialist Stack Overflow reports that Scala is the programming language associated with the highest pay in the US, with an average salary of $150,000. Other languages with a salary of at least $120,000 include Go, Objective-C, Kotlin, Perl, Ruby, Rust, C, Swift, Haskell, Assembly, Bash/Shell/PowerShell, C++, Java, Python, and TypeScript.
What's the future of the software developer?
Despite ongoing evolution in coding techniques and the rise of no-code development, the role of software developer is not under threat – but it is changing. Harvey Nash's Grimsey says the role is becoming more consultative with more stakeholder-facing emphasis.
"It's a shift that's already begun – the role will be about a whole lot more than writing lines of code, with many complementary skills required," he says. "Developers may get more involved in discussing the brief with their client, fleshing it out and iterating ideas."
Rightmove's Lourens also recognises this shift. She says successful software engineering is no longer about what languages you know and is more about how developers can apply their mindset and aptitudes to the challenges the business faces.
"Things are moving so fast now that at the time you're assessing somebody on a language, it's already changed – there's a new version. I think over time, successful software engineering will become more and more about somebody's mindset first and then about the specific technical skills they've got," she says.
"I think that should open up the industry, too. For so long, success in the technology industry has been about what exposure you've had and what systems you've built in what language, which immediately closes down the opportunities for people. So, from a diversity point of view, I think the change in mindset is also a potential enabler."