10 Ways to Improve Communication Between Software Developers
Azoft Blog 10 Ways to Improve Communication Between Software Developers

10 Ways to Improve Communication Between Software Developers

By Anna Orlova on June 27, 2013

10 Ways to Improve Communication Between Software Developers

Some software developers claim that communication within the team isn’t strictly necessary for the success of a project. In fact, there are many examples when several developers successfully work on a common project remotely, from different parts of the world. However, our practice has shown again and again that most development teams could really benefit from improving communication.

Communication helps to:

  • identify common problems as soon as they arise
  • minimize misunderstandings
  • learn from others, share expertise
  • better understand the company's business outside your own project
  • ...and just to improve the atmosphere within the company, facilitate creativity, discussion, and unbiased contribution

“Without communication there is no team. Developers should genuinely care about their common project. It really helps if developers also share a certain degree of friendship, that’s why we often hold team-building activities, communicate outside of work environment. We don’t just work on the same project, we share common interests, common goals.” 

Konstantin Medvedev, Head of PHP Development

“During our yearly assessments, 70% of developers that work independently on isolated projects state that they want to try working with other teams, communicate with other developers, gain new expertise, learn from others. The other 30% say that they like working independently.”

Oleg Valiev, General Production Manager

Of course, communication alone will not fix lousy code or poor adherence to best practices in software engineering. Above all, you’ve got to have talented, experienced developers who can write quality code. But so often we see a group of really smart developers struggling to meet deadlines and failing to deliver a quality product. That’s when you should consider improving communication within the team.

Ways to improve communication

1. Introduce Extreme Programming practices

“Extreme Programming (XP) is about social change,” — writes Kent Beck in the 1st chapter of his book Extreme Programming Explained: Embrace Change (2nd Edition). “Productivity and confidence are related to our human relationships in the workplace as well as to our coding or other work activities. You need both technique and good relationships to be successful. XP addresses both.”

While XP is most commonly known as a set of practical tricks, its essence lies deeper. The main idea is shifting the paradigm through which we perceive the development process. Solitude programming — quite effective in the past — now starts getting in the way. Such practices as pair programming, scrum, and code review could never boost technical skills and release true potential of developers without the trust and genuine cooperation within a team. That’s their true goal along with producing excellent code and meeting deadlines.

“If a newbie has recently joined the team, pair programming can reduce the adaptation period of the new team member.”

Oleg Valiev, General Production Manager

2. Allow IRC, chat or IM

Chatting might seem like a chronophage, but it’s actually really useful. Communicating through IM, Skype, or IRC is often easier than a face-to-face dialog. If, for example, a programmer doesn't know how to implement some tricky functionality and is too shy to ask colleagues out loud, he/she could just share this doubt in IRC and more likely than not, someone will suggest a solution.

“Most departments within Azoft have some sort of group chat set-up for team members to exchange comments, ask questions, discuss non-work topics, etc. These chats aren’t at all required, but still, they’re always being used by team members, which is a good indicator that they are necessary.”

Oleg Valiev, General Production Manager

3. Make a good use of sketch boards

Let your team know what happens outside their project by using a simple whiteboard. Graphical representation of currents tasks and goals doesn’t just offer a clear working plan for developers in charge, but also gives teammates a chance to see what other people are doing and how much of a challenge their tasks are.

“Our web development division consists of 10 people. Often, each developer is assigned 2-4 projects. It’s hard to keep everything in mind - due dates, priorities, etc. So we decided to use a board with sticky-notes: every team member has a section where we post start and finish dates for every project. The point is that everyone can see what each developer will be doing in the near future and what projects are coming up next.”

Konstantin Medvedev, Head of PHP Development

4. Arrange the working space

To facilitate communication, organize the working environment so that developers sit next to each other and could see what fellow developers are working on. However, it’s important to still allow enough room so that developers don’t violate each other’s the personal space.

It’s a good idea to start a tradition of changing work spaces once in awhile (i.e. 3-4 months) to refresh the view and faces around.

5. Assign more experienced developers to newbies

“If a newbie developer without much experience has joined the team, it’s important for him/her to know that someone is always ready to help and answer questions. Therefore, experienced developers should always be willing to point the novice in the right direction. This is the only way for the new guys to grow professionally and gain new experience. If the team consists mainly of ‘superstars’, all the newbie needs to do is ask and listen. And be diligent.”

Sergei Plaxienko, PM, Mobile Development

6. Organize regular meetings

“Recently, we’ve introduced regular 5-minute meetings every morning. Before that, everyone was only focused on his own task, and recorded progress in Redmine, which meant that other team members weren’t aware of what’s going on in other projects. Now, everyone can quickly get together - developers, project managers, testers, etc. and briefly go over the latest news, successes and challenges. As a result, we’ve seen some great improvements in motivation and are able to solve challenges as soon as they arise.” 

Konstantin Medvedev, Head of PHP Development

“On my previous job, when I introduced regular meetings, the team seemed bored at first. But after about a month everyone realized how useful these meetings were. For example, if a developer promises to get something done by next week, and then fails to do it, everyone finds out. This really motivates people to get the job done on time.”

Sergei Plaxienko, PM, Mobile Development

Note: Trust your sense of cost-vs-value. When you drag everyone into a meeting, it could become a very expensive one: the number of participants * hourly rate * meeting time. If you choose a selected or rotating approach, you might get more bang for the buck. Don’t forget that even 2 team members may represent 70% of the knowledge of the whole team, giving you a good value for a small amount of time. 

7. Turn meetings into fun get-togethers

Sometimes, making meetings informal is the way to go. Unfortunately, traditional formal meetings are often boring, tense, and tend to steer off course. Creativity, brainspark moments, unusual ideas are more likely to appear unexpectedly during friendly conversations. Hold meetings to inspire, not bore.

8. Encourage team events: talks, lunches, happy hours

Let your team participate in activities that are not strictly related to work. It could be anything, from having lunch or happy hour together to eco-friendly volunteering activities. Have fun, use your imagination. 

“While one of our developers was on vacation, we decided to play a prank on him. Together with other team members, we constructed a ‘house’ around his desk, out of cardboard boxes. Might seem silly at first, but this was a lot of fun, everyone wanted to participate. We do a lot of hard work on the job, so it was a pleasure to get distracted for 15 minutes and do something unrelated to work”

Konstantin Medvedev, Head of PHP Development

Encourage team events: talks, lunches, happy hours

Encourage team events: talks, lunches, happy hours

“During informal communication, the role of every team member becomes apparent. If someone is a natural leader, he’ll act as a leader not just at work, but also at social gatherings. This will further justify his leadership in the eyes of the team.”

Oleg Valiev, General Production Manager

9. Encourage focused knowledge exchange

Give external peer review a try and invite participants from other teams to your meetings. They are likely to think outside the box and offer a different perspective. Besides, they'll learn a little bit about your project too, which is always helpful.

Consider introducing ‘lessons-learned’ meetings after big releases to sum-up wins and fails. Open lessons-learned meetings, when the team invites members from other teams, are also very effective. Of course, you can simply compile a list of lessons-learned and send out an email, but real-life discussion will have a greater effect and more engagement.

Encourage developers to host round tables after they have mastered a new technique or write an article for your corporate blog. Once people realize there are awesome smart people within their team or in other teams, they tend to seek them out naturally.

“If one developer has mastered a new technology, it makes sense to share the knowledge with others. For example, if the developer goes on vacation, all that valuable knowledge is inaccessible unless it is shared with other developers. Therefore, whenever someone learns a new technology, we try to rearrange teams a bit, so the developer could pass the knowledge to others. Thanks to this ‘cycle of knowledge’, most of our developers have a similar level of expertise, so they can back each other up, if necessary”

Konstantin Medvedev, Head of PHP Development

“Software development conferences are very useful (here in Novosibirsk we have CodeFest, Dev Day, etc). Not only do we get a chance to listen to presentations, we also get to hang out with other professionals from different companies, share knowledge, look up to each other. This inspires and motivates us to grow professionally. For instance, a developer might consider himself a top-notch expert, then comes to Code Fest and sees 200 other experts who happen to be even smarter. Of course, this motivates us to become even better.”

Oleg Valiev, General Production Manager

Codefest

10. Hold success parties 

Little celebrations of success are important, even if it’s just everyone taking a quick break to grab a cup of coffee. If your team has successfully finished a challenging project it’s worth doing something special and inviting members of other teams. This can be a real morale boost — celebrating within a team is one thing, but showing others that you had a big success motivates in a different way. Besides, it raises the morale of the company, letting people know that good things are happening in other departments within the company.

Building an efficient team out of isolated individuals is challenging, yet so rewarding. Even if you don’t implement all of the above mentioned tactics, it’s worth trying at least a few of them. Having improved communication within your team, you’ll likely notice an increase in your team’s motivation, productivity, not to mention enjoy each other company.

VN:F [1.9.22_1171]
Rating: 3.7/5 (3 votes cast)
VN:F [1.9.22_1171]
Rating: +2 (from 4 votes)
10 Ways to Improve Communication Between Software Developers, 3.7 out of 5 based on 3 ratings



Request a Free Quote
 
 
 

Please enter the result and submit the form

Content created by Anna Orlova