Enable communication.

That is where it all begins. Anything you want to do as a company, a leader, an organization will come from and through your teams ability to communicate. 

Ignore this key utility and everything else you attempt to do will suffer.

Looking back at my career I can say, with certainty, that each and every time I (or a team I led) missed the mark it was directly related to communication. We didn't articulate how we were going to communicate, check-in, provide updates... what tools or systems we would use... how we would know what the other guys were doing; what they needed. We got caught up in the excitement of innovation and a new problem to solve. It is so seductive.  

That is fine. You have to fail; proof you are trying. However, the whole point of failing is to learn and grow. So we did; I did.

Now, before I take on any new team, new partner provider, a new development engagement... adequate time is spent talking about how we communicate throughout the engagement. 

 

Here are 4 platforms that I lean on to communicate:

 

1. Slack - by far the best messenger platform that I have ever used. We setup channels for various development teams or efforts to keep things organized and transparent. The ability to send direct messages, upload files, search through old messages, mobile and desktop apps too; just amazing. It is a must-have. I have development teams in the US, Australia, India and Argentina and all of them are on this platform. Oh yea, the version I use is free too... not bad.

 

2. Jira - A fantastic application for tracking tasks. Everything from reformatting a report to building an API integration to Facebook to bug tracking for our existing apps. Every developer and non-technical member of the organization uses this. Before we build out a development work plan for a new application every task is put in Jira and estimated and assigned to an individual. We take that output and build our plan and then track progress to the plan using their built-in time tracking utility. I don't know how else I could manage this amount of new development work, bugs, enhancement requests, etc. without a tool like Jira. It drives everything we do. If something comes up in a meeting or on a call you will hear 'put it in Jira.' 

3. Swagger - this one is more technical but Swagger is an amazing utility for documenting and sharing APIs across teams and partners. No one likes to document, anything, ever. I don't see that changing. Swagger is a great way to allow other developers to explore your APIs. This has been critical in reducing the ramp up time on bringing new developers on board and engaging with third-party partners that want to integrate. 

4. Snag-it - this one is a little more tactical. I probably use this tool 10 times a day. Words are great but pictures are better and mock-ups are the best. Having a tool that will let you easily grab and manipulate screenshots greatly decreases confusion for everything from bugs to new features. I cannot underscore the power of mock-ups and pro-forma examples when it comes to development work. Take a screenshot, modify it and add it right to a ticket in Jira or send it to a colleague using Slack. That simple. That powerful.

 

One of the greatest learnings of my career leading software development efforts is the importance of communication. This is paramount when you have distributed teams and I see the industry becoming more and more distributed in the years to come. These four tools listed above have greatly helped make distributed development possible. I strongly suggest auditing your organizations ability to effectively communicate and looking to implement some of these tools and watch things drastically improve. 

If you have any questions or comments on any of the particular platforms... ('put it in Jira') shoot me a message. 

-Nate