Breaking the ego: Why collaborative software developers write better code
Ask a new professional how to become a better software developer and they might answer with some version of “Always Be Coding.”
This concept, popularized by software engineer David Byttow in 2013, posits that the more you code, the more hirable you’ll be. While technical skills play a large role in a software developer’s success, even Byttow (now a principal engineer at Lyft) recognizes that soft skills come in handy no matter what field you’re in.
As Matt Weber, Senior Software Architect at BEE, points out, “Technology changes. You’ll have to relearn [programming languages] eventually. But experience and maturity stick with you.”
Soft skills aren’t necessarily something that can be taught in a classroom, but fostering them throughout your career will put you and your team lightyears ahead.
Why collaborative developers write better code
The term “team player” shows up in just about every job posting these days. After all, who wants to work with a jerk? But for software development teams, collaboration isn’t just about making the office friendlier. It’s crucial for producing the best product possible.
“There’s no way for a solo developer to maintain a complex project,” says full stack developer Matteo Santagata, “My colleague’s work starts where my work ends, and vice versa.”
It’s no coincidence that some of the most popular project management methodologies in SaaS development put a heavy emphasis on team communication.
Agile. Agile refers to a set of principles that prioritize flexibility and iteration with the goal of continuously delivering a better product. The very first principle of agile? “Individuals and interactions over processes and tools.”
Shape-up: Developed by Basecamp, the shape-up methodology outlines three core activities: shaping, betting and building. The first two activities prioritize thorough communication so that there are no questions while building. This allows features to be shipped within a six-week timeframe. (Spoiler: the BEE team follows this framework).
XP: Extreme programming, or XP, is an agile framework that’s best known for Pair Programming, wherein all projects require two software developers to sit at the same machine. True to its name, this method is at the extreme end of collaboration, where feedback is continuous.
While every company will use different frameworks, the reason these exist in the first place is to improve communication. Communication is the foundation of collaboration. And collaboration is the foundation for success.
Some core advantages of collaboration include:
- Creativity. At its core, coding is about problem-solving. The more heads you put together, the more you can brainstorm solutions.
- Preventing errors. Everyone has blind spots and having others check your work is the easiest way to catch and correct mistakes.
- Controlling emergencies. When the ship starts sinking, you need all hands on deck. If everyone understands each other’s code, it makes it much easier to fix the problem.
- Maintaining the code. If you are the only one who understands your bit of code, it becomes impossible to do things like go on vacation or take time off when you’re sick. Collaborating means sharing responsibilities, and that makes it easier for everyone.
Given how closely developers work together, even one bad apple can spoil the product. Poor communication, arrogance and/or possessiveness lead to poorly-designed objectives, siloed information and, ultimately, disjointed code.
On the opposite end of the spectrum, open communication and the sharing of ideas facilitate feedback, work-life balance and continuous improvement. Working with a team can be tough — but sharing the responsibility means a better product and a better work life.
5 soft skills every software developer needs
If you’re reading this, you’re probably not a “bad apple”. But staying self-aware of your strong points, as well as your areas of improvement, will help bolster your career.
Listening skills. Communication is often thought of as the ability to express yourself, but it really begins with the ability to listen. Taking the time to understand problems and perspectives — whether they’re related to coding or to professional relationships — cultivates a problem-solving mindset. If you talk before taking the time to listen, you’ll miss key pieces of information and turn people off from talking to you in the future.
Helpfulness. It’s tempting to put your head down and only focus on your own tasks, but karma applies here. Helping others eventually helps you. This is because helping others do their job minimizes mistakes. It also creates a positive environment where they will be more likely to help you when you need it.
Humility. Being a know-it-all or a diva might work in Hollywood, but it’s not going to fly in most software development teams. Programming is such a vast field that no one could ever know everything. Taking feedback, owning up to errors and learning from others is a core part of mastering code. If you want to deepen your knowledge, you have to set aside pride and approach new challenges with humility.
Adaptability. Software development moves at a quick pace. Stay flexible to learn new skills and be willing to take on new challenges. This goes just as much for non-technical projects as it does for coding.
Open-mindedness. Black and white thinking slows down workflows because it makes it difficult to come to a consensus. Sometimes two people will have answers that work. Rather than fight tooth and nail for things to be done your way, consider alternatives and find the value in other perspectives.
How to communicate better at work
“Having the best ideas, the finest code, or the most pragmatic thinking is ultimately sterile if you can’t communicate with other people. A good idea is an orphan without effective communication.” -Andrew Hunt, The Pragmatic Programmer
If you got into programming because you’re introverted, you might hate hearing that communication is the key to success. The good news is that soft skills can be cultivated over time. Just like becoming a better coder, becoming a better communicator at work requires continuous feedback and practice.
Here are some immediate steps to get you on the right path:
- Ask for feedback often. Take advantage of code review and talk to senior developers about how to improve both technical and soft skills.
- Volunteer for non-technical projects. Take advantage of opportunities to present information, write an article and talk about your work.
- Acknowledge emotions. Feeling overwhelmed or uncomfortable with feedback is natural. Sit with these feelings when they come up and recognize how they affect your actions and attitude.
- Take time to reflect. Communication is iterative. There will be situations that don’t go as planned. Reflect on what you have control over and how you will improve next time.
- Share your knowledge with others. Especially if you plan to become a leader, you’ll need to get comfortable sharing what you know and mentoring others.
Soft skills aren’t learned in a day. Rather, they are honed with years of experience. Look for mentors and workplaces that fosters these skills alongside technical development to accelerate your professional growth.
Note for managers and founders
Soft skills often require closer mentorship than hard skills. After all, almost anyone can teach a technical skill, but soft skills training requires a level of personal openness between the mentor and mentee.
This type of mentorship is one of the best ways to develop seniority in your organization. Geregely Orosz said it best in his blog, The Pragmatic Engineer: “When developers get mentoring, they learn. When they learn, they are engaged. When developers are engaged, they are a lot more likely to stay.”
Focusing on soft skill development is essential for moving your organization forward, especially as Millennials and Gen Z become the majority of the workforce. The next generations expect more personally fulfilling work environments and more mentorship — and are willing to give you their best work in return.
Invest in your team’s development by opening the door to the conversation. Setting aside 10 minutes in your 1:1 meetings to talk about personal and professional development can make all the difference longterm.
About BEE Plugin.
BEE Plugin is an embeddable email, landing page and popup builder. BEE is a global team of over 50 people, half of whom work in Software Development or Product Management. Learn about BEE Plugin here.