The value of communication in advanced software development
Do developers need soft skills?
It may look like a trick question with no clear yes or no answer, but we have a plain and firm stance on that.
We believe that being a fluent communicator, an excellent team player, and a generally likeable person won't make a bad programmer good, but it can make a decent programmer outstanding. But how exactly? What traits should devs have in order to be effective and successful?
1. Excellent interpersonal skills (listen, talk, and be willing to take the floor)
Nothing sums this up as perfectly as a quote from Cat's Cradle, an iconic novel by the late, great Kurt Vonnegut.
Dr Hoenikker used to say that any scientist who couldn’t explain to an eight-year-old what he was doing was a charlatan.
To put it simply, it's great to have top-notch coding skills, but the ability to convey ideas into words, provide feedback, listen carefully, and explain, makes everyday work much more efficient. Fluent communication greatly improves the understanding of the project for all participants, helps to avoid mistakes and assures everyone is on the same page, which ultimately saves loads of work hours. It is instrumental in complicated, demanding projects that require constant consulting and big-picture thinking.
During our work with groundbreaking life-science software, we learned that there's no place for communication noise of any sort. It's best if conversations between devs and clients don’t involve non-technical people, such as salespeople or project managers. Of course, they’re still instrumental for different reasons, but they shouldn’t have to be social buffers. Especially if the product owner on the client's side is also an IT specialist. This way, they can truly make use of their industry experience, advise our clients and help steering projects in the best possible direction.
Additionally, in a team-building context, an experienced specialist with highly proficient interpersonal skills will be invaluable as a mentor for junior developers or any other new project members.
But they need to be team players to make it really work, which leads us to the next trait.
2. Teamwork (be helpful and don't hesitate to ask for help)
Working as a member of a team is one of the essential skills for pretty much any occupation, let alone a programmer. There are very few projects for lone wolves in the software industry, so if you're planning to have a real career in programming, you need to learn how to cooperate. Working for a common goal requires constant communication, empathy, and patience in the same way as technical expertise.
This aspect is facilitated heavily by the financial transparency of our company. Every employee has full access to company financial records, recruitment information, and details about contract negotiations. Yes, all of it.
We realize that this idea may sound shocking and even unreasonable to some company owners, and we agree, it's not for everyone. We can confirm, though, that it makes perfect sense for our team. Knowing what exactly we are working for and how the company is growing makes everyone feel responsible for the success and even more motivated. It gives a true sense of wholeness and creates a unique team spirit.
3. Management (in terms of the project, other people, and your own time)
The organizational approach to management may vary from company to company, but the ability to manage your own time will always be valued, especially while working at home, surrounded by distractors. As a partly remote company even before the pandemic, we have a lot of experience in that matter. We explain a bit more about how to work remotely effectively and stay sane in the article “How do we cope with Covid-19 as a software house?”.
The other angle that requires a range of soft skills, which is managing people, projects, and making decisions usually isn't demanded by companies, but we look at this issue a bit differently.
Our company operates in a flat hierarchy, which means there is no management structure and every person can make decisions. Obviously, before any decision is made, a person should consult those who will be in any way affected, but in the end, we trust each other to do the right thing. Our experience showed us that developers who work with projects on a daily basis have the best expertise to make decisions anyway, and the process is much quicker because they're not slowed down by the chain of command. Consequently, what may sound chaotic is actually a perfect method that saves a lot of time if you have a trustworthy and skilled team.
4. Open-mindedness and willingness to grow
Staying up-to-date with the newest industry trends and learning the most in-demand frameworks is appreciated by clients and employers. Still, more and more often, lack of interpersonal skills becomes a career stopper. Our experience with trailblazing technology and drastically different types of organizations, from startups to global enterprises, showed us the importance of open-mindedness and versatility in the development process.
This is why we decided to take a closer look at soft skills during recruitment.
Focusing on soft skills in the recruitment process and everyday work
Verifying tech skills and knowledge about required programming languages is mandatory, but being an expert software engineer is just a first step. Given the complexity of projects we work on, we can't afford to have middlemen. To maintain the perfect understanding between all parties involved, we need our developers to work with clients and consult on a daily basis without the constant assistance of a project manager. This is why we are making sure that a candidate is at least interested in developing the social skills mentioned above.
Another crucial factor is corporate culture compatibility, which basically boils down to "just don't be an a-hole". It's as simple as that, and we make it pretty clear from the get-go. Our job interviews are different from cliched and cut-and-dried industry standards. We prefer to keep it casual and try to get to know our candidates, not only their skillset. Although it's not exactly a soft skill, we know how important it is to enjoy working with other people, and we emphasize the value of openness and team spirit.
Of course, no one becomes socially adept overnight, and we are aware of that. This is why we’ve created an environment that encourages talking, exchanging thoughts, opinions, and of course, venting if necessary. For example, unable to grab a cup of coffee with colleagues face-to-face due to pandemic, we started having daily coffee breaks online for everyone interested. We also hold weekly meetings to share important updates from every team. But perhaps the most crucial are retro meetings on which developers can share their thoughts about projects they're working on. They provide a valuable space to give feedback and eliminate issues before they escalate. Solutions like those are essential for the team's well-being, especially in the home office era.
Keeping the dream team together
Skilled developers frequently switching jobs is one of the key characteristics of the software industry. It often leads to inconsistencies in software houses and scaling problems because specialists responsible for the company's brief success tend to leave, and it's not easy to replace them. The practice was summarized perfectly in the song "Stars" by Janis Ian in 1974, and 2 years later, famously covered by Nina Simone:
Stars, they come and go...
Okay, the song wasn't exactly about the dynamic job market of software development, but I think you catch our drift. Talented software engineers coming and leaving is the sad, everyday life for many companies, but we are proud to say that we’ve managed to keep the core of our dev team for years now (to see the exact math, check our specialists and their experience on LinkedIn). It allowed us to become a highly specialized team in several specific technologies, such as bioinformatics, blockchain, or healthcare.
Certainly, some part of it is the organizational culture, environment and community we’ve created, but the other side is just hiring the right people. We are searching for programmers who can code but also share our values and work ethic. It's never one or the other.
We explain a bit more about our recruitment process in the article "How we hire the best developers for your project?". Make sure to check it out.
Company culture is the root of all goodness
A team of communicative and engaged developers doesn't just come knocking at your door, it can only be created through building, adjusting, and improving. And the process is not free from mistakes and dead ends.
In our case, the evolution progressed organically. From the beginning, values like transparency, open communication, teamwork, and approachability were important to co-creators, Kamil and Adrian, but there was no systemic approach to company culture and structure. At some point, though, it became clear that most of their core beliefs and ways the company operates are very much in line with the ideas of a teal organization.
You can read how we grew to become a teal organization in the detailed origin story by Magdalena here. It gives a complete perspective on our soft skill-oriented strategy and the way it helps us maintain organic and healthy growth.
And if you feel like your software project requires a lot of consulting, communication and teamwork in addition to high-level programming skills, don't hesitate to schedule a call about it with our CEO, Adrian.