Dealing with programmers is not easy ... or maybe it is. It depends on how you set up a collaborative software development environment. Creating participation schemes between people with high intellectual capacity, such as programmers, requires special forms of communication and interpersonal relationships.
For a long time I have had the opportunity to lead groups of programmers and over time I learned some things that I want to share.
Here are five tips to create a good collaborative environment with your programmers:
How to communicate with the group is very important. Programmers are always very analytical people and rarely like to be disturbed in their activities, especially when they are coding. Frequent personal meetings, for many of them, represent a waste of time. With all the technological tools that we have today, they prefer to communicate through electronic apps. Virtual meetings, even if they are within the same physical spaces, are more attractive for them. Daily issues can be solved using this kind of communication. Try do not take away their best friend: the computer.
2. Protect them:
The fewer interruptions our programmers have, the more they are happy and productive. I've found that preventing end users from directly engaging with them is a way to protect their privacy in the development process. So I try to control individual requests for technical support on an individual basis. Act as a filter and let them dedicate to what they are passionate about.
3. Give them the proper resources:
Providing them with the necessary tools for their development greatly favors the development process. Give them access to applications, languages, frameworks and other elements that they require to work. This is an obligation for those who lead a software development team. The main idea is that the programmers only care about their work. If you can, make investments in better computer equipment -- it will allow them to make a better work and the team will present greater results.
4. Establish a methodology:
It's essential to establish development methodologies that are focused on collaboration. The clear definition of processes, responsibilities, and obligations in the development scheme, allow each person on the team to know what he has to do and the times in which he must deliver his product. Short meetings to review progress (like Agile Software Development, Scrum, etc.) are excellent tools that allow coordinating in an efficient way the general development process of a system or application.
5. Pay special attention to the human factor:
Last but not least is human treatment. Knowing each programmer, getting to know his or her family, the topics they prefer to talk about, goals, dreams, those things outside of work that they are passionate about, are aspects that I consider very important in order to establish a good personal relationship with the work team. It is a duty for a leader of a development group, to understand their needs, to support them when they have problems or responsibilities to fulfill that require special spaces. It is necessary to create an office environment that allows them to develop as professionals, but also as individuals. Leadership is not exercised with the same effectiveness if it is imposed. A leader has to earn the title and the trust of his collaborators based on many aspects, among which the personal treatment is a fundamental piece.
I must conclude that dealing with programmers is something special. And when you learn how to do it in a good way, it can become one of the most wonderful experiences in your professional and personal life.
Sergio Yorick is part of the GovLoop Featured Blogger program, where we feature blog posts by government voices from all across the country (and world!). To see more Featured Blogger posts, click here.