After a few beers and several hours of conversation (or was it several beers and a few hours of conversation?), Guilherme Siquinelli coined the term that gives this post its title.
And the term makes perfect sense. In recent years, the discipline of UX—User Experience—has proven to be crucial, from app design to e-commerce and banking systems. Making a system easy and intuitive for users is a major step toward success.
But we often forget that the first users of any system are the developers and designers who create it and will continue maintaining and evolving it for a long time. So, we also need to consider their experience.
With that in mind, a few key topics come to mind:
Testing
If you don’t encourage your team to write tests because you think it slows down delivery, you’re completely wrong. Writing tests—ideally before the functionality itself (TDD!)—helps developers think through edge cases and complex scenarios. Nothing is more frustrating than modifying a project with no tests, without the confidence that the software can evolve without breaking. Tests act as living documentation of the system and significantly improve team quality.
Automation
Developers are creative people, despite public perception. We don’t enjoy repetitive, tedious tasks. Automating processes allows us to focus on building algorithms, solving problems, and creating new features. Writing scripts and automation tools is part of every development team’s job.
Up-to-Date Tools
Programming languages, platforms, architectures, methodologies, and tools are constantly evolving. Developers who stay up to date tend to use the most efficient and modern solutions available. Of course, it's important to avoid unstable or trendy tools just for the sake of novelty, but completely blocking innovation can significantly reduce developer performance and enthusiasm.
Documentation
Companies often create FAQs, wikis, videos, and blog posts for their users, but the same effort should be made for the development team. Providing time, tools, and environments for proper documentation improves project evolution and helps onboard new developers more effectively.
APIs
Sometimes we forget that the "I" in API stands for "Interface." Just as we carefully design user interfaces—considering colors, fonts, layouts, etc.—we should put the same effort into our APIs. Whether they’re for internal teams or third parties, it’s essential to design URIs and data formats that are logical and facilitate development. As Guilherme Blanco once said:
API is a way to communicate w/ your app/platform/etc. SDK is when you create such a shitty API that requires a lib for peep to use it.
https://twitter.com/guilhermeblanco/status/740971604465856512
Open Source
Most developers learned—and continue learning—thanks to open-source projects. From programming languages to frameworks and databases, open source is a fundamental part of who we are. Encouraging open-source contributions boosts team morale, fosters knowledge-sharing, and serves as a great way to promote a company or product. If the team identifies something that can be open-sourced without harming the business, it can be an excellent source of recognition and publicity.
These are just a few points we’ve come up with, but just like UX, DX is a broad discipline that deserves attention and investment within companies.
What do you think? Do you see any other crucial aspects in this process? Do you disagree with anything? We’d love to hear your thoughts on the topic.
This post was co-written with Guilherme, who deserves full credit for the term DX—and the beers that led to the discussion. 😊