Tool vendors at ARM, Econais, Mentor Graphics and Intel strive to make developers more productive than ever.
By Joe Desposito, Senior Editor
If you check the definition of productivity as defined, say, by the Oxford Dictionaries, you’ll find (among other things) that it is the effectiveness of productive effort, especially in industry, as measured in terms of the rate of output per unit of input. For example, one might say “workers have boosted productivity by 10 percent.” If you ask an embedded systems developer or development team about productivity, you might hear that it was a major factor in their choice of development tools. In fact, companies who develop these tools often list “productivity” as one of the key features. What do these companies mean by productivity, and how does the IoT affect the “effectiveness of productive effort”?
For Vrajesh Bhavsar, Segment Marketing Manager IoT at ARM Ltd., productivity means that an individual or team is making meaningful progress towards a goal or achievement. Improving productivity, he says, would mean that you’re able to reach these goals in a shorter time or with fewer inputs. “Productivity could mean different things to different people, but it’s very important to distinguish productivity from busywork. I’d say quality always trumps quantity.”
Brent Ward, Global Marketing Director at Econais, believes productive software tools should enable developers to focus primarily on their specific application needs as opposed to all the protocols, standards, and so forth, which should be taken care of for them—unless they have a need to drill deep and make some custom modifications.
How do software tool vendors measure productivity? Do they have a number for the “rate of output per unit of input” as stated in the definition? Bhavsar thinks measuring software productivity differs from domain to domain. “Some like to see it by lines of codes or number of unresolved bugs, while some by time and cost of developing software. With many cloud based applications, the metrics could involve amount of downtime, resulting operational costs, speed of updates, and so forth,” he says.
Rich Rejmaniak, Technical Marketing Engineer for the Embedded Systems Division of Mentor Graphics, thinks the most direct way to measure the productivity advantage of an embedded software solution is to consider the additional staff needed to design, write, test, and debug the software that’s being developed. “In addition to the direct cost of staffing, the ever-present risk of cost and schedule overruns must be factored into all engineering projects,” he says.
At Intel, Ashish Gupta, a 20-year veteran of the company, says, “We see developer productivity relying on two components: time to prototype and time to market.” Gupta gets a chance to observe “time to prototype” firsthand at Intel roadshows, which draw a diverse group consisting of traditional embedded developers, java script programmers and business types with little, if any, knowledge of coding. He is impressed by how these various groups interact and what they can achieve using typical “maker” tools. “At our road shows, we see working prototypes in three to five hours—both hardware and software.”
Once users develop a prototype and prove their idea works, Intel helps developers tackle time to market issues with a commercial set of tools called Intel System Studio. “We have three productivity drivers based on the problems we see customers encounter. The first is debug, so we offer a suite of debug tools. The second is analyzers. We have a PMU (performance monitoring unit) on our CPUs that helps to pinpoint problems in the source code. The third is performance optimization. Intel compilers and libraries know about the various features in the silicon, which helps developers take advantage of them.
Ward of Econais agrees that by and large, time to market is a key area for differentiation for any software project. In addition, he says field upgrades to the applications and ease of access to the device are what developers expect.
Beyond measurement, how are companies trying to improve their offerings to bring greater productivity to bear in IoT applications? For Mentor Graphics, Rejmaniak says the Nucleus RTOS has been evolving for the last few years to include an impressive suite of middleware and hardware platform support. “Previous expectations for an RTOS were focused on speed, size, and determinism. These requirements have not diminished, and in many ways have become even more critical. However, they are now considered a starting point for a software platform. The wide range of rapidly changing protocol and connectivity specifications associated with IoT has been continually addressed with the expansion of Nucleus middleware and device driver components (Figure 1 ).”
Ward says Econais IoT software, WiSmart, is focused on improving software productivity in IoT primarily through addressing all the “under the cover” functionality that most developers aren’t interested in learning from scratch, certifying the modules so that they work out of the box and reduce time to market, reduce risk of not getting approvals, and leverage the hardware/software interface. He says, “The software, out of the box, supports various applications, connections to the cloud, messaging protocols, mesh networking, and the alphabet soup of discovery and connectivity. Supporting development that spans many platforms is a top priority when considering the variety of consumers that require their personal devices to connect to your device and to the IoT.”
Intel’s Gupta points to Intel’s IoT Platform (Figure 2). “Putting the “I” in IoT is the main new thing,” he says. “For that, we’ve got the cloud part. We’re providing developers with cloud analytics and a cloud service. Another is the visualization part. It’s not enough to have a sensor. The way we visualize it is through a product called the Intel XDK IoT Edition. It’s an app development tool. This tool helps developers visualize the data from the devices and combine them with data analytics to do interesting things. All that data, bringing it up, visualizing it and controlling it, that’s the part that’s new for IoT.”
From an ARM perspective, Bhavsar says that mbed.org gives developers a common software platform to develop their applications (Figure 3). So developers can move across different hardware, but still get expected behavior.
Bhavsar continues, “The IoT is a very exciting space for developers and makers to experiment in. There are many problems to solve in the things’ design, interaction, usability, power, and so forth. Solutions like mbed.org help offload companies from re-implementing common features, which don’t add much to the core value of their products. In addition, other factors like interoperability, easy access to data, detailed understanding of the ongoing problems, and so forth are going to play an important role in software productivity and quality in the IoT world.”