Regular communication is the final essential piece for successful programming teams. Communication within the team and communication with stakeholders are equally important. Within the team, daily communication is a must. A brief in-person conversation about daily work can go a long way to enhance productivity without micromanaging. The timing of such a conversation should not interfere with productive blocks of time. For example, if your team has a morning person who likes to arrive at the office early and get right to work, by all means let them and schedule your talk for after their burst of productivity. The main goal of these brief conversations is the identification of major roadblocks and the setting of expectations.
Various electronic methods for intrateam communication can boost productivity as well. At a minimum, an email distribution list for the development team can be used for internal communication. Internal email lists are also handy for documenting information that the team may need to share, such as website URLs, API keys, and so forth. However, a dedicated and encrypted password storage program such as Keepass is better for storing passwords. Leaving sensitive information in plain-text emails is not a best practice.
In addition to email, instant messaging programs can be quick ways to resolve obstacles that come up during the day. Microsoft Lync (now Skype for Business), Google Chat, and Slack are all excellent options for development teams to coordinate their work and to help each other solve problems throughout the day. Be careful not to interrupt flow by overusing any of these tools, as concentration over periods of focused work is how real programming gets done. Also, programmers will appreciate clear boundaries for instant messaging and email, such as an expectation not to be overwhelmed with contacts during periods of intense focus or to be bothered outside of work hours.