Developing needs to get exponentially easier - Thoughts from the Global Forum
A couple of weeks ago I got to attend the Global Forum in Toronto. The event was awash with political celebs, ambassadors, captains of industry, and even a smattering of media types. And the conversations were thought-provoking, and thoughtful. I thoroughly enjoyed it.
The most pleasant surprise to me was the amount of focus on income inequality, sustainability, long term growth (versus short term shareholder appeasement), and a desire to address big problems.
I sat on a panel alongside the charismatic and high-energy @GaryShapiro, CEO and President of the Consumer Electronics Association, and also with the affable Paul Warrenfelt, Managing Director of T-Systems (a division of Deutsche Telecom). We were interviewed by Hannah Kuchler of the Financial Times.
The main topic of the conversation was how innovation will be shaped in the future. Much discussion of the power of Moore's Law ensued. But one of the central questions that came up was - how should companies think about staffing for all this future innovation, implying that to embrace technology and fully leverage it, all companies will essentially need to become tech companies and hire small armies of electronics engineers and C++ programmers so they can add intelligence inside the products they make, whether those be smart running shoes, or a smart umbrella. My response was to think beyond that. If we are right, and as Moore's Law continues to drop the price of computing and connectivity we move into an era of smart objects, smart spaces, and smart infrastructure, then we will HAVE to find a new way to build 'smart' into things. There will not be enough software programmers in the world if every company needs to add 'smart' to their products to compete. Designing smart products HAS to get exponentially easier.
Consider the fact that in the early days of the web you needed amazing programmers to build even a simple web page by today's standards. Now there are tools that make it easy even for web idiots like me to build a whole website complete with video, animation, RSS capabilities, and that even resize automatically for the device they are consumed on. For example, I built this site with Square Space, and I didn't need to learn a single line of HTML to do it. (Phew).
Smart objects of the future will be built around standard hardware building blocks (look at what Intel is doing with products like Curie), and software tool chains will become much easier so that anyone will be able to be a developer. Anyone will be able to 'code'. The same way anyone can now be a web designer (up to a point). GUI-based development tools with drag and drop capabilities will hide the complexity of development. In the same way we took a huge leap from machine code, to assembly language, and then to high-level languages like C++, now we need yet another level of abstraction and complexity reduction. One that makes it possible not just for first-time makers to create smart, connected objects that link to the cloud for some or all of their functionality, but that allows creative people and designers to use 'smart' as an ingredient, just as they would think of using leather, plastic, glass or metal.
The companies that develop these types of capabilities will be the winners in the new era of smart objects. The point of competition will move from just cost, to easy and speed of implementation. And indeed towards "time to scale". Look at what MIT has been doing with their Android App inventor. Or what they are doing with Scratch, a programming language for kids. Or what Lego is doing with programming for their Mindstorms products. There's a big opportunity here for someone.
What do you think? Am I crazy, or will improved computing capability in the development environment help us overcome and mask the true complexity of development that we experience today?