Supporting cloud, mobile, and database development sounds like a remarkably technical endeavor. In practice, personality issues between team members can impact just how effectively you handle these complex technical efforts. You need to be able to understand these challenges and how the personality of the members of your team will impact their individual performances as well as the performance of the entire team. The good news is that there is a lot you can do to ensure success. Here's how to get started.
Cloud, mobile, and database development have some unique characteristics. When Bob Aiello and I worked on the source code management chapter of Configuration Management Best Practices , specifying practices to handle mainline, bugfixes, and other variants seemed to be fairly straightforward. But version control in the cloud, on your Android, and also databases adds some unique challenges that are not always so straightforward to tame. For example, technology experts are highly specialized and may not have a firm grasp on all of the technical details requirement to produce a complete complex system. Much of this complexity revolves around managing ambiguity.
Dealing with Ambiguity
The cloud brings with it the risk of having to manage resources, over which you have little actual control. There is ample ambiguity in having to rely upon the service provided by a vendor that may or may not be in alignment with your own goals and priorities. Mobile devices have their own set of requirements and industry standards that are rapidly emerging as smart phones become as ubiquitous as less dynamic cell phones.
Trying to version control your database also carries its own set of complexities. For example, handling SQL scripts and stored procedures to managing low DBA level performance tuning takes creative and flexible strategies. Although, there are emerging tools in this space, there also remain considerable challenges. Some people are better at accepting and dealing with ambiguity than others. One effective way to tame complexity is to reduce it into simple constructs that are easier to handle.
Reducing Cognitive Complexity
Taking complex problems and reducing them into one or more, less complicated challenges, reduces work and eliminates many protential sources of error. Many technology professionals can tackle complex tasks but are very challenged when it comes to reducing cognitive complexity. When you feel challenged and uncertain as to how to handle complexity, start by defining the requirements for the situation at hand. Many agile practices are very effective at managing requirements and provide a good starting point for gaining a clear understanding of the system that you need to develop.
Requirements may be specified in big documents with formal requirements specifications. Many agile enthusiasts prefer to define requirements in lighter terms using what are called epics and stories.  Still others use test-driven development to manage and reduce cognitive complexity.  From a personality perspective, a critical determinant is whether you are an innovative leader or will be mired and rendered immobile by the challenge of handling platforms that may be a little bit out of the ordinary. Innovative leaders help the team tackle tough challenges and set the direction for the entire development effort. This can be especially important when there is a lack of control.