Communication & Partnership for Successful Projects
Communication crosses all the boundaries of our lives. It includes how we use our voice — the tone, volume, and pace at which we speak. The holistic aspect of Communication makes the process dynamic. Effective Communication depends on our ability to be present.
More complex projects get derailed by personal conflict than by technical complexity. Partnering with your customers is better than disappointing them when you must meet your expectations.
Nothing destroys trust faster than surprising your partners. Feed your stakeholders’ context. Building relationships is about increasing bandwidth and reducing friction between you and your partners. If you’re deliberate, you can influence your organization’s structure over time. Still, you’ll only get that time if you learn to remain in tight alignment at each step. Build relationships early.
Write everything down; writing forces you to think about your beliefs and data. Much of my time is spent doing written work, research, and talking to people. Try to become the engineer that people want to work with. Develop a relationship with your direct partners and the people that uses the software you build where they trust you, and you trust them.
Empathy for your users, in particular, is essential for all engineers to develop. As a Software Engineer, you’re a manager without the people aspect. You have to manage your work concerning the expected value to the company. By changing our habits and approach, we will revise the industry. By improving ourselves, we make the industry better.
Miscommunication creates latency rather than errors. When critical work comes to you, your first question should become, “Who could be both successful with and grown by this work?” See if you can get them to lead the work, then work with them to scaffold the project for their success. Be the one to take notes. Shift your contribution towards asking questions. If you see someone in the meeting who isn’t participating, pull them into the discussion. Find someone you respect and send them a short 1–2 paragraph email or DM with a specific question asking for advice.
Never fight feedback. Don’t evade responsibility or problems. Only present a question with an answer. You can only create alignment in the room if you have a proposal for folks to align behind. Avoid academic-style presentations. Refrain from fixing your preferred outcome.
Communication is a process of interaction that creates understanding. Communication shows the path that we are coming from. Years of experience developing software don’t translate into working software. Software development experience doesn’t allow you to listen and learn from domain experts. Communication does. Working software is only applicable when it provides value to users. Developers must establish accountability through Communication. To understand the potential value and impact delivered to users. Rather than writing something that works is more important to focus on writing the right thing. Understanding the problem is not a matter of coding skills but communication skills. Decisions during the development process affect how the team responds to future changes. The decisions that push the code to model business concepts are the ones that promote easy changes. Engineers must write and use the same pictures in their conversations with the Business in Code. That’s the only way to maintain alignment between the two.