Soft Communication and Hard Communication

Communication is always important in any teamwork environment. This is especially true in software development where changes are constant. There are two levels of possible communications in software development: soft communication and hard communication. Let’s go over them one by one.

Soft Communication

Bothered by SLOW Web UI to manage vSphere? Want to manage ALL your VMware vCenters, AWS, Azure, Openstack, container behind a SINGLE pane of glass? Want to search, analyze, report, visualize VMs, hosts, networks, datastores, events as easily as Google the Web? Find out more about vSearch 3.0: the search engine for all your private and public clouds.

It happens among people, those who work on a software project. Two popular forms of soft communication are meeting and documentation. Some teams may hold many meetings to make sure everyone is on same page. Software development processes like Scrum, Extreme Programming take this to an extreme with daily meetings. These daily meetings cover only what you did yesterday and what you will do today, and mostly don’t help much on real issues.

The documentation can be requirement specification, design document, test cases, and etc. Documentation varies from team to team and from person to person. Most people don’t like to write documents.

Hard Communication

It is among the code and scripts that developers write. This may sound a bit off that I call it “hard” while talking about software. But the idea is to let the compiler/builder/testing frameworks to facilitate the communication. Unlike soft communication, hard communication binds. If the code doesn’t work together, the compiler will tell with exact specifics. People can talk 10 times about an interface design between modules, but it may not be as effective as compiling and unit testing it once. For applications developed using dynamic languages, compiler doesn’t help but the unit testing will.

The ultimate goal for a software development team is to pull the code together and deliver it as a product to customers. Instead of communications by people work on it indirectly, we should let the code to “communicate” directly. The modern software development tools have provided enough assistance there. All we need to do is to take advantage of them.

When To Use Which?

Both forms of communications have its strength and weakness. The soft communication is good for high level design and planning, while the hard communication good for low level design/implementation with laser-like precision and extremely low cost. Both forms of communications actually complement each other very well. While used in their strengths, they are most effective and efficient.

Hard communication is cheap yet very powerful. Whenever possible, you should consider this first.

This entry was posted in Software Development and tagged , . Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

You may use these HTML tags and attributes <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

  • NEED HELP?


    My company has created products like vSearch ("Super vCenter"), vijavaNG APIs, EAM APIs, ICE tool. We also help clients with virtualization and cloud computing on customized development, training. Should you, or someone you know, need these products and services, please feel free to contact me: steve __AT__ doublecloud.org.

    Me: Steve Jin, VMware vExpert who authored the VMware VI and vSphere SDK by Prentice Hall, and created the de factor open source vSphere Java API while working at VMware engineering. Companies like Cisco, EMC, NetApp, HP, Dell, VMware, are among the users of the API and other tools I developed for their products, internal IT orchestration, and test automation.