A quote you often hear when building great products and companies is “If you want to go fast, go alone. If you want to go far, go together.” Unless you’re hacking into government agencies in your basement, you are most likely working on a team within a larger company. This means that the value you provide is not just your coding ability, but also how you work with others. We call these skills ‘Soft Skills’.
No matter how good your coding abilities may be, if you don’t have the necessary soft skills, you will hinder the progress of the team and frustrate others. Just like any other skill, you’ll need to constantly practice these and continue to hone them as your career grows.
At Admios, we believe these are the four most important soft skills programmers can have.
1. Teamwork
Everyone loves working with team players. In fact, if people like working with you, you’ll likely get more attention from the product team, sales, and leadership which will open opportunities for growth. Here are some key elements of being a team player:
- Know your stakeholders. Your day-to-day work impacts many people and teams: your boss, your boss's boss, the product team, customers, the sales team, the customer success team...etc. Take a minute to think about what each team or person wants so you can tailor how you interact, and what you deliver, to each stakeholder.
- Ask for help. Never view asking for help as a weakness. In fact, asking for help is the best way to build trust with someone. When you ask for help when stuck, boss’s or team members will think, “I trust they’ve got this because I know they’ll ask for help if they get stuck.”
- Delegate. You know your responsibilities and workload capacity. If work comes in that doesn’t meet either criteria, delegate to someone else or ask your boss about it. As a manager, this skill is even more critical.
- Celebrate wins from you or teammates. Everyone loves praise for a job well done. Don’t be afraid to celebrate accomplishments and milestones. This boosts individual and team morale.
2. Communication
We’ve never met anyone that is a perfect communicator. No matter if you are a new college grad or have 30 years experience, communication is something we all need to constantly work on. Here are some tips specifically for programmers.
- Saying no. Customers and employees can dream up products and features way faster than you can build them. It is important to be able to say “no” when you’re at capacity so that you can focus on the real value: shipping high quality, defect-free products.
- When to commit. People that can commit to a delivery and deadline quickly build trust and are looked upon as experts. You should always be striving to make commitments, just be sure the requirements are clear and you are able to complete the work.
- Meetings. For all meetings you own, have a clear agenda, and only have the people in them that actually contribute. Don't be afraid to end early. Efficiency and effectiveness are key. People will take notice and thank you.
- Style of writing. Know how to write effective emails. A good format is to start with a few sentences of context followed by the necessary action items/decisions. Then lay out support detail or explanation underneath. This is where knowing your stakeholder plays a big role. Your style and tone of email should be different between the PM and the CEO.
3. Flexibility
Rarely ever does something go perfectly to plan. Whether this is the annual corporate goals or a weekly sprint, we need to remain flexible as issues, problems, and priorities change.
- Nature of agile. Agile software development is based on this entire principle. You need to maintain an agile mentality just like the process.
- Embrace change. Nobody likes change. But what makes it even worse is when people complain and resist change. If you want to be a valued team player, embrace change and refocus your efforts to the new problem at hand. It is normal to feel frustrated when there is a sudden change in direction, but keep it to yourself. That feeling will pass.
- Fast pace nature. Software development, especially in startups and growth companies, is going to be fast and chaotic. You’re going to have to be comfortable in this environment.
4. Handling pressure
In fast-paced environments, everyone gets stressed and feels overworked. It is critical to know how this impacts your mental and emotional state so that you can have a long and enjoyable relationship with the company.
- Avoiding burnout. Nobody can take 10-hour days of high stress coding forever. We all will burnout at some point. Know what your limit is and be open with your boss about when you’re getting burnt out. Ask for a long weekend or vacation to check out for a few days. If you’ve got a hard deadline to meet, be open with your boss that you’ll work hard to hit the deadline but need to take some time afterwards.
- Periods of low and high intensity. Software development has a cyclical nature to it. Understand this so you can recover during periods of lower intensity and have the energy to push through the final stages of a release, which are typically higher intensity.
- Disconnect from work. With chat and email tools available 24/7, it is hard to totally remove yourself from work. And working from home makes this even more difficult. It is important to give your mind a rest so you can make space for you-time, family, or just relaxation. Some rules to set for yourself:
- No checking emails while on vacation
- Set quiet hours at evening before bed
- Carve out time specifically to play with kids, read, or focus on a hobby