In a competitive industry like software development, getting ahead can mean the difference between a great job and no job. While it’s important to possess the technical skills necessary to perform your job, there are a number of soft skills that can set you apart and help you succeed.
At O’Reilly’s Software Architecture conference in New York City, Trisha Gee, developer advocate at JetBrains, shared the necessary soft skills that you should possess, as well as methods for improving and scaling those skills.
Asking the right questions: First, she noted that the importance of asking the right questions. Being able to ask why you are building something, or finding out what the business is really trying to achieve is an invaluable skill, she explained. And it’s not just about being able to ask the right questions; actually listening to the answers to those questions also is important.
Communication: Developers all probably list this on their resume, but in a Agile, DevOps and collaboration software development world having good communication skills is key, according to Gee. Software architects need to be able to interact with the organization. Communication can be broken down into verbal and written communication, which includes the ability to write documentation for users, write emails to management, or talk to people on Slack without being annoying, she explained.
Adaptability: The ability to adapt is also important as the industry moves so quickly. There are always new frameworks, models, or ways of doing things, in addition to the fact that the business will inevitably change its mind about things as well, she said. Being open-minded is part of the ability to adapt. By this, Gee means putting an end to things like the “tabs vs. spaces” debate or arguments over whether Kotlin is better than Java. One set of tools or methodologies may work well for one person, but not another, so being open minded and listening to people is important, she said.
Prioritization: This is another skill that will become more and more important as you move up in your career, Gee said. As a junior architect, you may be told what to do and when to do it, but as a senior architect, you may be given a number of different tasks at the same time — all of which the business views as top priorities. Being able to actually determine which projects need to be addressed first is an important skill to have. Time management skills go hand-in-hand with this.
Technology skills: Finally, technology skills are important to have, but these are the least important of the skills, according to Gee. Anyone can do the technical stuff, but the soft skills are the ones that some architects may struggle with. By technology skills, Gee explained that this really means the ability to learn new technologies and use them.
After listing all of the soft skills that architects should focus on, Gee did issue a word of warning. If you perform non-technical activities too well, you may actually end up being moved into a non-technical role. This is especially common with women or other underrepresented groups, she explained.
How to scale up your soft skills
Gee also provided some tips on how to scale up those soft skills. She explained that you should improve your skills by actually sharing your knowledge and experience with others. By teaching others what you know, you will actually be benefiting yourself.
The most effective way to teach technical skills is with pair programming, where two developers work together. Mob programming, where a group of people get together to solve problems, is also an option, according to Gee.
Providing community support can also help improve skills. For example, when Gee worked at MongoDB, they would spend one week every year answering questions about MongoDB on Stack Overflow. Gee found that during this time, she learned more about the database and also learned how users were using their product, which in turn allowed them to improve it. While not everyone works at a company with a product like this, to give back to the community, Gee recommends they become involved with open-source projects.
Another option is to hold internal learning sessions, where architects can give presentations to their team on technologies they’ve learned about. Meetings can be in the form of a book club where each member of the group gets assigned a chapter of a book, and everyone comes together to give a short presentation of that chapter. According to Gee, this is another way to practice how to distill the knowledge you’ve learned.
Finally, speak at conferences. Gee explained that speaking at conferences can be amazing for your career, especially if you’re a woman or in an underrepresented group, and will help you improve those soft skills.