Due to different expectations from each other, conflicts often arise. To some, they seem unique, but in fact, they are similar. Let’s consider the most common conflicts between programmers and their clients.
Interest in new technologies Vs. Current business challenges
Any customer needs to solve business problems in the most efficient way, and he considers new tools exclusively in this plane. At the same time, programmers, as enthusiastic people, always want to work with the latest, cool and promising technologies.
For the customer, any migration is, first and foremost, money. If everything works on frameworks five years ago, he would rather expect support for the existing system without radical changes inside. It is unlikely that it will be possible to motivate a business by the fact that its application will attract attention due to the use of advanced technology. To convince the client of the need for migration, it is better to operate with the concepts of speed, cost of support, data security.
For their part, the developers want to learn new technologies and preferably during working hours. There is nothing wrong with this: it is clear that in the labor market a person is valued according to the number of technologies in which he has practical experience. And, of course, a passionate engineer from the very beginning focused on the study of his profession and related fields. On the other hand, it is not always clear how the self-development of a programmer will help the business. And if this or that technology is optional in the current project, it is inexpedient to expect additional payments from the client for in-depth expertise in it. If you fail to show how new technologies will reduce costs or increase business revenues, you will have to refuse the update. And from the business side, this is quite logical.
Clear planning and scheduling Vs. Quick response to new requests
Often, development is given to outsourcing, leaving support and hotfixes on the side of the customer. It is clear that the client’s IT team is always focused on business requests that can change very quickly: for example, something has fallen and needs to be restored immediately or an agreement with a new partner includes an update to the system. Such priorities can change very quickly and do not fit well into any plans drawn up in advance. This is especially noticeable if there are not so many people in the customer’s team, and the software development processes in the company are simple and poorly structured, that is, there, as a rule, they do not lay a buffer and structure work by the urgency in the first place.
Maintaining a balance between these two modes is very difficult. It begins to seem to our colleagues on the client side that outsourcing specialists simply do not want to respond to business needs. We often cannot understand why partners do not follow the approved plan, cannot work out the requirements sufficiently clearly, and even change them in the process.
So, it is better for both parties to understand that the development and support of software have quite different processes. Accordingly, teams have to work in them differently. We can all coordinate our actions only by accepting that, with a common ultimate goal, each of the two teams solves its own problems.