This is a guest post for the Computer Weekly Developer Network written by Joe Brockmeier in his position as head of community at cloud database company Percona.
Known for his love of blogging, databases, developer marketing, community management and open source community advocacy, Brockmeier writes as follows…
Every software team should want to provide a pleasant and productive developer experience for their staff.
After all, developer salaries can be significant – StackOverflow found developers in the UK with average salaries from $71,689.50 (£56,500) for front-end developers through to $91,311 (£73,000) for mobile developers.
Making an organisation’s developers more efficient with their time is therefore good sense economically.
Defining what makes DX ‘good’ can be hard, but the ultimate goal should be to help developers achieve ‘flow’, where they can fully concentrate on code and solving problems.
The biggest enemy of flow is friction.
Therefore, a good approach to improving DX is to ask, “What creates the least amount of friction for developers in this environment?” More often than not, the key is using open source.
Developers prefer open source software where they have choice and autonomy over the tools they use. For example, in a survey we ran this year, 81 percent of developers said that flexibility of choice was why they preferred open source databases. Open source, coupled with the support of vendors, shifts the UXP towards the support of community and away from a single controlling entity.
How does open source improve DX?
One of the traditional arguments for using open source is that it’s available for free. Well yes, you can get open source projects for zero cost. However, that is not the reason why it improves DX. So what makes open source a winner, if not cost?
First, open source reduces friction all the way around. Rather than having to procure products and wait for those resources to be available, developers can easily spin up instances of any open source project to work with when they want them. For instance, if you provide a developer environment, you can help developers self-provision a MySQL, PostgreSQL or other open source database without worrying about seat limits or licensing hassles. Developers don’t need to be DBAs in order to work more efficiently and they don’t need to break their flow in order to get the resources they need.
If your devs are doing things locally with Docker or similar tools, even better. A quick ‘docker pull’ and they can have a local database instance in a few minutes.
Another major advantage open source has here is ubiquity. Doesn’t matter if you’re on public cloud or on-prem, bare metal, Red Hat, Debian, Ubuntu, AWS Linux, Azure, or any number of other operating systems and providers. You’ll find your favourite open source database of choice and likely a vendor that will support it.
But the best reason to choose an open source database? Extensibility. Let me illustrate that by looking at PostgreSQL.
Extending DX with PostgreSQL
PostgreSQL is one of the best examples of good developer experience. It’s mature, it’s performant, it’s vendor-neutral, it’s flexible, and it’s continually increasing in popularity.
Alongside the core database, PostgreSQL has a community that has put together plugins and extensions that add to the core functionality and are easier to maintain. This rich ecosystem of extensions lets you add functionality like new data types, storage engines, functions, or support for language runtimes. That’s how, for example, the popular geospatial data support is added with PostGIS. By taking advantage of the work that the community has put together, developers can get on and innovate faster while also being sure that their back-end is reliable.
This means PostgreSQL can meet just about any need you might have working with relational data. If it can’t, or you want to move beyond relational data, there’s likely to be an extension for that. Instead of having to juggle multiple databases, which can be a huge cause of friction, you can add on to PostgreSQL. Examples here include JSON and document database support.
You’ll also, of course, find a wealth of developer tools that are also open source for working with PostgreSQL. From Visual Studio to Vim, you’ll find tools to smooth the process of working with and writing code for PostgreSQL.
In short, if you want to reduce friction for developers and provide that ideal DX environment, start with open source.