Have you ever thought about the role of the human in software development? Unfortunately, software development companies don’t pay as much attention to the point as it should be.
IT and Psychology
Quite often we come across a rather one-sided view on development in IT. The customer’s point of view is limited by three main desires: high quality, fast result, get-more-pay-less. But these three factors sometimes contradict each other. Sometimes, tight deadlines have an immediate positive influence on the quality of the product, as time urgency can stimulate mental processes and job productivity. t In most cases, however, this strategy leads to conflicts between a customer and a performer. There are situations where badly analyzed architecture or fast software development leads to technical debt (code debt). Technical debt appears when a project needs to be updated, in particular by other performers, and a lot of bugs appear, which makes it problematic to add new features. The most widely-spread reasons for technical debt are tight deadlines and a lack of understanding over customer needs.
The aforementioned factors don’t show us the root of the problem. If we probe deeper, we will see a real problem. We have already gained an insight into customers’ desires, but what desires does a performer have? In his turn, he wants to earn a bunch of money from the project and continue collaborating with good customers. In one word: to be well-paid and to always have a job. In this case there appears the main stumbling block in human to human relationships, often termed the conflict of interests. New rules of life demand: “get the biggest part of pie and don’t think about the rest”. To escape this scenario, people should be honest with each other or make concessions to build win-to-win relationships. Hopefully, there are some approaches to satisfy both performers’ and customers’ needs.
Building win-to-win relationships
First of all, human 2 human relationships must be based on mutual respect. The customer must realize that the project is developed by humans, not robots. Some mistakes should be forgiven, as human can’t exist without making mistakes. There are also some mistakes that are made because of a performer’s skills level. If you employ a junior developer, don’t demand from him senior developer skills.
As honesty is a very unsteady thing in our time , we should invest in building up good relations with the customer. A performer must realize that the customer is a dummy. This is probably the golden rule in IT sphere : Customers can’t imagine the software development life cycle of their own product and all the complexity of its features. So, to escape conflict, in every deal a performer must shower the customer with questions about the task. Every item from the terms of reference must be discussed with the customer. After building a clear realizing of the task, a performer or a team of performers may start working.
It’s a well-known fact that developers are very lazy , whether they are freelancers or work in a software development company. All of them want to complete the task without much effort. This approach has a negative effect on the quality of the work . Surely, this is not as terrible as it can appear, but customers all the same remain dissatisfied. To prevent this sad situation, the relation to the project should be more responsible than it often is in modern world. All steps of work must be made clear to all developers who are taking part in the work. To start work , a performer should choose the frame of his own work. Developers all over the world most often use agile software development. In short, this frame allows you to minimize risks by dividing the life cycle of the project into little parts and conform to new conditions. ASD-approaches help to speed up the development process, allowing the user to estimate work and project’s status. Also, agile software development makes communicating with customers easier: performers can report about executed work very often. In doing so, they make a good opinion about themselves.
The structured code and the presence of comments have a powerful influence on the quality of a project. It is possible that the performed project will be updated by other developers. They wait that the code will be clear and they can fix bugs and add new features fast, but writing a readable code is a very hard task. To evolve the skills to create a readable code, experienced developers recommend reading Bob Martin’s book “Clean Code: A Handbook of Agile Software Craftsmanship”. Read the book, and both customers and developers that work with you or with your code will appreciate cooperation with you .
One of the main points to consider in relations between customer and performer lies in permanent connection . The performer must communicate with the customer to discuss all relevant questions. In this situation the performer shouldn’t be shy and should take the opportunity to ask all questions in which he is interested. The performer must also keep the customer informed about all the tasks that have been completed. For this, open repositories or special programs that track time and allow a customer to see what task the developer is doing right now are made.
Wise men say that in every situation you must stay human. There are many sad stories about customers failing to pay money to the performer, or vice versa – the performer took the money but didn’t finish the project. Responsibility and respect to your business partner will offer you a high and permanent profit.
If you are a performer, imagine that you are a wizard or gin, who helps human dreams to come true. Or if you are a customer, imagine that you are a powerful lord who can make anyone’s dreams come true. This imaginary game will help you to create strong relations with your partner.