It’s always a challenge to round up the right combination of talent for a developer team, and the uncharted territory of the Internet of Things (IoT) can make the path to success even harder to navigate.
As a team of anthropologists, software architects, and designers in Intel Labs, we observed dozens of organizations and interviewed a hundred-plus developers who build IoT solutions. They helped us identify what works for them (and what doesn’t) by telling us how they work, how they work together, the jobs they have to get done, and the challenges they face on the way.
Here’s what we learned.
Know Your Coding Expertise
Their first advice for an IoT team? Know thyself. Take inventory of your group’s combined coding expertise, and see where your strengths and weaknesses lie. Working development teams have told us that most IoT project work boils down to the following four types:
- “Thing” development: get under the hood of devices to connect them as data sources and actuation points
- Middleware development: weave together data sources to make coherent and actionable wholes
- App development: build the interactions that engage and help users
- Data analytics: create analysis pipelines that turn data into action, insight, and decision making
Great teams often tap into several of these coding domains. But how they do so varies.
We saw that many individual programmers working on IoT projects either already had experience in more than one of these categories or were in the process of working toward that experience. In fact, savvy project leads told us how they actively sought ways to cross-train their teams to ensure broader team-wide coding expertise and tighter team collaboration.
Not surprisingly, we often encountered what we called “hybrid coders,” a particularly valuable type of team member whose expertise spanned at least two domains and, as a result, often had a high-level understanding of the IoT initiative as a whole. They often assumed leadership roles on the project. Encouraging hybrid expertise for select members of an IoT development team can be a powerful counterweight to common pressures such as resource constraints and the development bottlenecks described below.
Know Your IoT Coding Challenges
Even with the huge variety of IoT solutions in development, IoT project teams struggled with a common set of coding challenges. Knowing which challenge is foremost for each IoT project is instructive for IoT project planning. It also helps pinpoint which coding disciplines are needed for the project to be successful.
We observed the following common IoT coding challenges (and we suspect that more will emerge as IoT matures—especially IoT analytics):
- Tame the Wild West at the edge: gather and normalize data to and from large numbers of endpoints
- Orchestrate system-wide data: integrate diverse data points so they can work together
- Manage edge data: control and analyze data at the edge to optimize its system-wide flows
- Deliver just-in-time responsiveness: coordinate system-wide data flows and user interactions to deliver results to the right people at the right time
We found that most IoT teams target one or more of these challenges (taking on all four can be unwieldy). To do so, they leaned on specific combinations of developer expertise, as shown in the following table:
Challenge | Primary Expertise Required | Supporting Expertise Required |
---|---|---|
Tame the Wild West at the edge |
|
|
Orchestrate system-wide data |
|
|
Manage edge data |
|
|
Deliver just-in-time responsiveness |
|
|
By examining your IoT initiatives in light of these common coding challenges, you can assess who you have and who you need on board. That can help you determine where additional training or hiring is most valuable.
Optimize Your IoT Development Teams
To keep up with the fast pace of industry change, IoT project teams and developers constantly learn on the job. We don’t know if IoT projects attract developers with a passion to hybridize or if the developers working on these projects simply must cross-train to survive. In any case, programmers and project leads alike actively seek training, mentorship, communities of interest, and meetups to expand their coding horizons and skills.
Managers added that the cross-pollination of expertise and mentor relations helped smooth team collaboration and overall organizational morale. They also remarked that culture clashes between different coding disciplines were inevitable. But anticipating them and facilitating communication among those involved went a long way toward minimizing negative impacts on the team and its work.
Lessons Learned
IoT is evolving fast, but by observing IoT development teams, their successes, and their challenges, we identified four steps to help chart your team’s IoT vision:
- Inventory your team’s coding expertise
- Determine coding challenges related to your IoT solution
- Identify gaps in your team’s expertise
- Resolve the gaps through hiring and cross-training
Visit the Intel® Developer Zone to learn about Intel® IoT technologies.
What suggestions do you have for building IoT teams? We’d love to see your comments below.