If I had to point one thing I value the most and strive to improve on ever project I work, I would say it is: Better Communication.
I am purposely highlighting “Better” because communication is not, thereby should never be treated as, a static asset. As peers who want to convey a message, we ought to constantly look for means to improve and do it as clear as possible.
We all have seen this before. Projects and products fail completely, even when delivered on time and budget. How? Chiefly because people fail to express themselves clearly, leading to misconceptions and unachieved expectations.
There are plenty ways of communication: verbally, written, with drawings, symbols, gestures; even a single look could say a lot. Regardless the method, the message should always be objective, clear, legible and meaningful. It is also important to use the appropriate language the context demands.
Luckily there are a variety of tools to help. As a project manager, defining an Ubiquitous Language can make the conversation more objective and clear. The use of Storyboards and Impact Mapping gives a clear view of the planning and current state of the project, and the relationship and interaction of its roles. The use of Specification by example helps turning abstract requirements into realistic examples, defining a common ground for the expectations of all parties.
When coding, we are communicating as well. Hence we should equally care how good we are delivering our messages. As software developers, we should strive to create simple—but also flexible and adaptable—design to help convey our ideas. Test-driven development plays a vital role in this field. Code—tests are code too!—should be intention revealing and DRY with improved naming. Ultimately, as an avowed advocate of those, I could not miss mentioning the use of Object-Oriented Design and Programming, Behaviour-driven Development and Design Patterns to improve software design, and therefore, its communication.
Humans are social animals. We gather together, we interact and communicate . And we ought to do it effectively. Better Communication is the key to successful projects, products and software. It deserves your fully attention. Make no mistake about it.