The designer’s perspective: What makes a great software developer?
From the perspective of a designer, what makes a software developer great? Our designer Ville shares his opinions when it comes to great developers in the context of digital services.
A couple of months ago we posted a blog post with the title “The developer’s perspective: What makes a great UI/UX designer?”. In that post, our developers Mika and Pirkka nailed down four traits of a good designer.
Now it’s time to switch roles: From the perspective of a designer, what makes a software developer great? Our designer Ville shares his opinions when it comes to great developers in the context of digital services:
A good software developer works as a part of a team
My first point is maybe 100% clear to everyone, but I’m going to say it anyway!
I would say that a good software developer understands that they are not the only ones building the service, even though they write the actual code. Building a great service is always a team effort including design, marketing, communications, business understanding, good content, and so on. Simply put, a good developer understands that a good digital service is much more than just code.
In a way, it’s all about respecting the expertise of other team members and acknowledging their role and contribution. A simple example: if there’s some weird stuff in the user interface prototypes, a good software developer will discuss the issue with the team instead of implementing their own quick fixes – which could create an inconsistent user experience.
A good software developer knows what the team is building, and why
I love to work with developers who are interested in the big picture of the service, not just their own field of expertise. I value developers who are interested in the business objectives and who understand the change the team aims to create.
Ok, you don’t have to know every single thing and detail about the business at hand, but I think you have to understand the very basics at least. How can you add value to a project if you don’t know its business context at all?
A good software developer understands that details matter
Sometimes it might feel pointless to discuss whether the margin between certain elements is 8 or 24 pixels. But there are also moments when things like that do matter.
When it comes to digital services, it’s true that the end-user value has to be at the core of it all. That’s the prerequisite to everything else: It doesn’t matter if the service has the coolest user interface on the planet if people don’t have any reason to interact with it.
That being said, good services deliver their value with style - with a certain bravado. There is a big gap between “just using something” and creating memorable user experiences, and details like pleasantly sized elements, micro-interactions, and animations make all the difference. They are not just eye candy; they deliver a message.
So, a good developer understands that the end-user value might be the heart of a digital service, but the details are its soul.
A good software developer has great communication skills
I broke “good communication skills” down into two different traits: communicating what you need and the ability to explain why something doesn’t work.
First, communicating what you need. As a designer, I’m not that familiar with all the details and processes of writing code. There may be times when I don’t know what the software developer needs from me next and that can lead to unnecessary delays and confusion. But with a good developer that doesn’t happen! A good developer can clearly communicate what they need from me today, tomorrow, and next week. And things run smoothly!
Second, an ability to explain why something doesn’t work. It might very well be that I have made a stupid user interface decision, or understood something incorrectly. It happens! And when it does happen, it’s nice to solve the issue openly and in a constructive tone. “Wow, this dropdown menu sucks” isn’t constructive but “Using the dropdown element here might be difficult for the following reasons...” is.
So, be constructive!
But, if you happen to be a tremendous software developer (or designer) and you enjoyed this post, drop us a line today to see if we should maybe work together.