Our work is impossible to imagine without communication. In our practice, we had a different experience. The communication between the development team and a client is mostly successful and leads to the fulfillment of the project. But of course, there were cases of ridiculous and even scary consequences because of poor communication. We are going to tell you why it could happen as well as recommend the best options for debugging and conducting communication at the required level. So, let’s present you our best practices of communication with the client.
First of all, the whole team needs to discuss all possible details of the project. Why is it important in the early stages? Yes, let’s talk about it first.
1. The importance of proper communication for software development
The web and mobile software development are complicated processes and require a detailed description that includes necessary options and specifications for the final product. When you start a new project, the discovery session is the first thing you have to do. Discovery session is basically a meeting between the project team and client to understand the client’s business, its goals, strategy, how the operation process goes and so on. This is the act of gathering key project information so you can gain a high-level understanding of the project. In most cases, this is done by getting the answers to specific questions.
Apart from the client, the team members from software development company side to be involved in the discovery session discussion are usually:
- Facilitator or conductor
- Project Manager
- UX Designer
Sometimes, depending on the project’s goal the team may vary.
Sometimes the clients may or may not realize the number of questions they will face. For some, the requirements gathering of this discovery session may feel a bit overwhelming, especially if the client is not prepared for the various topics of discussion. That is why you should highlight the most important parts to focus on and then get deeper knowledge with specific questions.
The first 3 questions focus on project constraints:
- project scope;
- project schedule;
- project costs.
Additionally, this is vital to find out the key project stakeholders:
The same method applies to the outsources and outstaffed projects. We usually do both. As an experienced software development company we build our business by providing services in two directions: Custom software development (when we develop a software product for you from start to finish) and team extension (this model fits startups or enterprises that usually have an in-house development team but somehow need extra developers/designers/managers/architects to complete some tasks they can’t handle themselves).
But what is more important, during the process of product realization and constant iterations, the client must constantly evaluate the interim results. And for this, you need to adjust many important details:
- channels of communication,
- people, and
- forms of reporting.
Our teams spend the first hours of each iteration checking through the iteration planning, and a part of that process is the decomposition of requirements that will turn into work that the team needs to complete. Task decomposition is not usually considered to be done until the requirements are ready for iteration. This guarantees that the entire team can check and discuss each requirement and determine a general strategy for everyone.
2. Reasons for misunderstandings and miscommunication
Yes, we are sure you also experienced misunderstandings during your work. Life is impossible without mistakes. Miscommunication often starts from the difference of explicit and implicit meanings between the sender and receiver. Sometimes someone can be straightforward, and the others think you can read between the lines. While discussing the details of the software development process poor communication can lead to a loss of control over development. That is the most important consequence.
If you start to design software architecture for a new product, it is often difficult to estimate available design options and choose the right one. That sometimes occurs when the developers aren’t sure what criteria they should use for the right design. Some of them may think that their previous engineering experience can help. But the problem is that each development team member has a different experience, as well as opinions and assumptions. A software product must have certain quality attributes to meet certain non-functional requirements. When we say that a software product is secure, portable, scalable, that are its quality attributes.
The main reasons for miscommunication can be:
- The channel of speaking. It’s better to use verbal channels like phone, skype or voice mail for implicit meaning, while written channels like email are better for explicit communication.
- The negativity bias. This is especially happening in written channels because the receiver is doing the implicit interpretation.
- Receiver’s inability to focus. Some people need to improve their listening skills to stay concentrated.
- Poor speaking skills. Others can express themselves in such a way that they’re hard to follow.
- Use of special jargon, acronyms or buzzwords. Some people are used to create their own way of speaking and sometimes don’t notice they use it more and more. And sometimes this becomes crucial when you talk to a foreigner who is not a native speaker.
The consequences of poor communications can vary. Here are the most frequent scenarios for the businesses to end up when dealing with bad software:
- Loss of usage
- Bad reviews
- Freebies, discounts, and other perks to bring angry customers back
- Losses to competitors
- Brand damage and bad press
- Financial money pit
- Loss of faith in IT
Our recommendation for the companies is to communicate with users always, in all stages and with great transparency. As we usually do in Syndicode to make sure we understand our clients and their needs.
3. Funny communication fails
There are examples of communication that can lead to some funny situations as well. The reasons can be simple misunderstandings, cultural and national differences, lack of communication, technical problems.
One of the stories told by a Ukrainian product manager tells how his team was doing a small test project for one of the stock exchanges. The key point was timing and it was necessary to gather the team as soon as possible, involving everyone without restriction. The client was a young active manager, who distributed the work and controlled the scoop. Everything was good and positive until he suddenly told the manager that he was already running out of budget. By this time they had not yet collected the work and had many more interesting ideas. The announced deadline was a long way off. The product manager’s attempts to report on MVP, about what may be useful for the rest of the budget at this stage, ended with a fail, and they built another separate module. The client paid, but they did not receive more projects from this agency. So moral of the story is that even if the client is very confident, it is better to remain a manager and have doubts, and use MVP and Agile for projects with a high degree of uncertainty. And always track the budget!
4. Who’s guilty?
One fact is indisputable – every team is unique, and responsibilities tend to distribute between different members of the team. Anybody at any time can delegate responsibilities to somebody else for various reasons . And here we need to stick to documenting all of the development process stages to make sure that any moment any developer can jump in and continue the work on the project.
Who might be involved in communication, and who might be guilt in case of fail? These are the main roles that should be on your list. Write them down:
- Engineering fellow – typically also holds another title at the company, often a CTO, Architect, VP of Engineering, or principal role.
- CEO – authority in an organization
- CTO – a technical cofounder to a visionary or domain-driven CEO (Syndicode usually provides CTOs from our side if needed)
- CIO/Chief Digital Officer/Chief Innovation Officer– like a CTO, but typically employed by a company that would not be considered a “tech company”
- VP of Engineering/Director of Engineering– responsible for building the engineering team
- Chief Architect could be a technical co-founder
- Software Architect
- Engineering Project Manager/Engineering Manager is in charge of managing the workflow of an engineering team
- Technical Lead/Engineering Lead/Team Lead the leader of a small number of developers
- Principal Software Engineer
- Senior Software Engineer/Senior Software Developer
- Software Engineer
- Software Developer
- Junior Software Developer
- Intern Software Developer
- VP of Product Management/Head of Product
- Product Manager
- VP of Marketing
By the way, here are our rates for software development engineers and designers as for 2019. We are transparent, so there were never any misunderstandings with our clients about the budget.
Among the reasons why communication can fail are:
- Not clear agenda during the meetings.
- Forming a negative opinion about the client based on some other experience.
- Skipping the rapport stage of conversation before discussing the agenda.
- Overcoming cross-cultural barriers.
- Providing not enough feedback during all stages.
- Showing not enough consideration from the employee’s side.
5. How to improve communication and what it depends on
First of all, let’s start with the fact that one of the keys to the successful communication of the development team is the right choice of the project manager. This person will be always responsible for all the issues and all the wins no matter the conditions. The product manager is basically the CEO of the product. They are responsible for the strategy and the development of the product, as well as the team of employees that are involved in every stage of making the product.
From our experience, we can distinguish the next principles of product management:
- Every problem is different and you can’t use your previous solutions to the new situation: Try to find a new instrument using all your experience and different approaches together every time you face a complex situation.
- Gather your team together before sprints and ask questions. Find a consensus within your team, that will improve the team’s ability to move fast and build quality products.
- Identify the most crucial pieces of the system to start with: Understanding the most crucial pieces of the system will lead to the immediate validation that you are moving in the right direction.
- Always question everything you do. Try to ask clear questions every time you have a complex situation.
- Remember the general picture. Remember that you’re creating something that will live in a complex, real-life system.
Remember that direct communication with developers benefits the final result and reduces the intermediate links. And don’t forget about the choice of the tools to boost your development workflow. There are very nice ones with preset configurations to satisfy all your needs for internal workflow. Your company can have the best developers and managers. But if they wouldn’t be able to communicate with other team members seamless and build integrations between the tools they use to work together, their proficiency level wouldn’t mean anything.
Check out the set of tools used by CEO, co-founders, technical leads, analysts, senior and most of the junior web developers on a daily basis to manage, analyze and maintain their products:
- Balsamiq Mockups
6. The communication process in Syndicode
Every business should decide on organizing the work process inside the company, according to its priorities and projects in development. We follow the Agile software development that is a conceptual framework for undertaking software engineering projects.
The principles of communication in Syndicode
- Main principles of our Agile software development methodology: face-to-face meetings, constant cooperation, early and continuous delivery of the working software, transparency. Whenever there are unexpected or frequent changes either from the client’s side or internal, this model becomes the perfect choice for managers and team leaders.
- We have a direct line of communication – the client can communicate directly with developers.
- Our time zone (UTC+2) allows the client to build a convenient mode for calls whenever they need.
- We are a team of Ukrainians. Ukraine is extremely popular as a software outsourcing destination and its IT industry is continuing to show a fantastic growth rate.
- Our solid expertise allows our software developers to create projects specifically for our clients and create digital products that fill their needs. When it comes to technology we know what we talk about.
- We have a team of experts in building and integrating logistics information systems and services. We are proud to have a deal with customers that operate in the fields of express delivery, container shipping, freight trucking.
- We also have extensive experience with the classical hardware, SaaS development, and modern cloud-based hosting types.
- We are transparent about everything we do and about software development costs from the very beginning.
If you are considering the possibility of software outsourcing/outstaffing and product development, our team can be a great choice in terms of software quality and the costs involved. And Syndicode will help you to be ahead of the pack! Look how many benefits there are if you decide to work with us – communicating a client with us makes him our friend and loyal partner.