Prototyping is an Art (and a Science)

CMS intro image
Image credit:  Leonardo DaVinci sketch, Wikimedia Commons

"It is one thing to have an idea for an enterprise; making it happen is a very difficult thing. It demands extraordinary energy, self-belief and determination."
-- Dame Stephanie Shirley, software pioneer
I heard this striking statement near the end of a TED* talk by Dame Stephanie Shirley. In 1959, Dame Stephanie created a software development company with women programmers who worked from their homes. She built a $3 billion company, introducing new concepts, most of them ground-breaking at that time. 
Her point about how difficult it is to make an idea happen is as valid now as ever: There is no shortage of great ideas floating around, but choosing which ones to bring to market, and making them successful, is a whole different story. In our software world, creating a successful product requires both the art of prototyping and the science of commercializing. 
Prototyping has been used for hundreds of years, for industrial design, consumer products, and even art. In the 1400s, Leonardo da Vinci was prototyping robots and mechanical lions. In today’s fast-paced, highly competitive environment, software engineers no longer have the luxury of building something from scratch in their garage. We have to find ways of getting it right earlier, and that requires an approach to prototyping that is both creative and efficient.
The central goal of prototyping is to figure out the unknowns and quantify the risks with minimal effort. You may know many of the things that need investigation, but often you don't know what you don't know. Applying hope as a strategy is reckless, while analyzing every little detail leads to paralysis. Here’s a simple, three-step model that will help you navigate the best pathway forward: 

1. Start here: Write your media alert today!

Teleport yourself into the future and imagine you are preparing to launch your product.
  • Develop a “media alert” for your product to the press and industry analysts. What’s the value? What makes this newsworthy? Who will care? If you are a developer, help your marketing manager define what would sell the product, its unique value proposition and positioning. They then can write it up as a media alert.
  • Prepare a presentation that will introduce your product to the first set of customers (typically your early adopters). 
This might sound presumptuous. But it’s a crucial step to identify and anchor the core values of your product, how you expect customers to perceive it, and what your elevator pitch will be. Once you begin, you will be surprised at the debate this generates among the cross-functional teams. Better to argue now than when the product is almost ready. This exercise will act as a forcing function to get clarity and commitment from stakeholders on key value propositions. Don’t move ahead until this step is finished.  

 2. Assess and quantify your ignorance

Now that you have a value proposition for initial customers, and your stakeholders agree on goals and success criteria, you can map these to features required in your product:
  • Define key features to create a Minimum Viable Product (MVP). Caution: If you have more than six or eight features, it is not "minimum." Pare some away. 
  • Map the features in a table creating an “ignorance map.” Against each feature, quantify unknowns against attributes like technology choices, expected resources, time, and build-versus-buy options.
Most likely, you will have a sparsely filled-out table, depending upon how revolutionary (as opposed to evolutionary) your product is—imagine Mark Zuckerberg looking at such a table when he first conceptualized Facebook*. 
Your next task is very focused and clear: Figure out as many unknowns as possible, and fill up the table to the degree of confidence you and your team are comfortable with. 

3. Focus your energy only on core values and their associated unknowns

Now you are ready to prototype. You want quick and rapid prototyping, but it must be tightly aligned with your MVP. Features not on the table are not important. Don’t waste time on them.
  • Select a hardware kit that has just enough processing power, connectivity, and sensing capabilities to fit the cost and power envelope of your final device.
  • Select an operating system, libraries, and prototyping tool that will support the critical features you have identified. 
Prototyping is like playing a video game. As soon as you finish one level, new unknowns will pop up. Each stage of a prototype helps you fill out the table, or validate your results and risks. 
But how do you know when to stop? You stop as soon as you feel that you are prepared for the next step in your project: When you know the risks, probabilities, and consequences, and you are well prepared for managing them. That is typically at the project approval stage, when you’ve made your executive pitch, received budget approval, and have a solid set of project plans. 

Segue into commercial development

While prototyping, your goal was to figure out all the unknowns and quantify your risks, however painful they may be. Armed with this knowledge, your journey to create a commercial product begins. 
Almost immediately, as soon as your project starts, it feels like crunch time. You are now racing to develop, test, and optimize your embedded system for maximum quality and performance, at minimal cost. It’s efficient to reuse all the hard work you have done during prototyping; to make that work, your selection of platforms and tools for prototyping should support a smooth transition to commercial development. 
Bringing a product to market and tasting success is very exhilarating. In the end, it does not matter where or from whom the idea came. The ideation phase is done when you fall deeply in love with the idea. The prototyping phase is successful when you make others fall in love with the idea. 
“The upside of painful knowledge is so much greater than the downside of blissful ignorance.” 
Sheryl Sandberg, author, activist, and COO of Facebook

At Intel, we recognize the importance and difficulty of bridging the art of prototyping to the science of product development. This transition requires software tools that are purpose-built for industrial-strength development, testing, and optimization.

Prototyping graphic
As with most things in life, it’s important to use the right tool for the job. When it comes to embedded systems prototyping, development, testing and optimization, the right software tools can make all the difference in the world. 
For final product quality and efficiency, the best way to go is an integrated suite with an easy-to-use bridge to your prototyping environment—we’ve made it easier than ever before to use the right tools for the job:
Start prototyping in less than an hour. 
Arduino image square
Get a reference kit, software, data solutions, and tools for embedded and IoT projects. 
Arduino Create* is a complete cloud-based package that integrates with Intel®-based reference boards, platform software, sensor and cloud connect libraries. Streamline your prototyping with Arduino Create.
Move from prototype to product with ease.
Intel System Studios 
Now you can seamlessly import your prototype applications from Arduino Create* to Intel® System Studio—an all-in-one comprehensive set of advanced tools and technologies including compilers, performance analyzers, libraries and debugging software. 
Speed-up your delivery of high performance connected devices. Go from prototype to product with Intel System Studio.
Para obter informações mais completas sobre otimizações do compilador, consulte nosso aviso de otimização.