📜 ⬆️ ⬇️

From idea to production - Development of IoT project

Today we will walk you through the ups and downs of IoT development step by step. Only examples from real life, no theoretical "probably" and a lot of experience. And links to related articles as a bonus.


Before you start


It's time for the fourth industrial revolution - do not miss the opportunity. How should one take part in this wave? We already wrote about how to turn an idea into a real product , so this time we decided to create a practical guide to achieve results at each stage and how to get a general understanding of the process. So let's get started!


Turn an idea into a list of goals


Before starting any production, you should clearly recognize and define your goal, as well as divide it into sub-goals.


The requirements for your project should contain additional information:


1. What is your ideal end product?
Describe it in as much detail as you can. What do you plan to achieve with this product? At this stage, write down everything that you think is necessary - in the future you will update and improve the document many times.


2. What are its main characteristics?
Make a list of the main reasons people will want to use your product. Why is this functionality important and necessary for success?


3. What is the first version of your product?
Plan what your minimum viable product (MVP) should cover so you can start selling and collecting feedback.


Do not forget that the requirements of your project should contain both the technical parts of the system, and those that relate to business. Where, why and how will end users use your product? Defining clear and comprehensive project requirements is necessary, because this will explain to your team what they should develop and why. Otherwise, you risk failing the deadlines .


If you would like to know more about how to enter a description of the project, you can always look at our template for reference. Although it is impossible to create a single template for all types of projects, of course, we hope that the examples we provide in the article will be useful to you.


To better understand the features of IoT development, see our article with a brief overview of the solutions and nuances that exist.


The first steps


After you have prepared a description of the project, you can share it with the team and discuss the details. Please update the document if you receive a relevant review.


Find potential users


If you have potential users even before you start production, this means that the system is in demand. You can also start beta testing as soon as the initial version of the system is ready. Moreover, early users will help you get started immediately.


On the other hand, you can search for potential users while development is still in process.


Find a development team


Here are the most common approaches:


Outsourced Development


If you think that outsourcing will not bring you success, look at the list of 15 startups that owe their achievements to outsourcing development.


  1. As you read this article, it will be easier to contact us.
  2. Ask your friends, or just search Google for a company that professionally develops IoT. In this case, before conducting interviews and negotiations, find out how to determine if the outsourcing team is overpricing for you.

Conclusion : A professional outsourcing team will save you time and money, as well as provide objective and useful feedback. With an unorganized team, you will not achieve anything.


Assemble your own team


This option seems good, but beware of hidden dangers:



Prepare a technical specification


After you find a team that will take on the technical part, begin work on the technical specification of the project. The project description explains all the “whats” of your product. Now it's time to move on to how.


Do not underestimate the importance of such a document. Although this may seem like a waste of time (it’s not), in fact it will only save you time, money and nerves. For example, you will notice that you have not defined such things as interaction, content for each page, etc., as well as the means that will be needed to implement them.


Read the document carefully to make sure that you don’t miss anything important. It will be much cheaper and faster to determine the volume at the beginning than to change it in the process. Nevertheless, the specification can be updated after the design is developed (this is normal, because it will help to better coordinate the budget and schedule). You can find the template for the technical description of the project here .


Design a product design


Now that you fully understand what needs to be done for your product, visualize it. Considering both the intended use and the technical specification, design the hardware and applications, and add them to the project description and specification.


Design can also reveal a lot of things that you might have missed when creating the description. Thanks to this approach, you will be able to better calculate the budget in the future. We have examined in detail examples of budgeting the development of IoT projects, you can view them here .


Returning to the design, here is the visualization:


Equipment design


The design of the device is important because it answers the following questions:


Commercial:



Technical:



Software design


The design of your software, whether it’s a mobile application, web or desktop, literally determines how users perceive your product. Make it as easy to use and as intuitive as possible (even if the functionality behind it is extremely complex). Here is our example:

Prototype and test concepts


Great, now the design is ready, and you and the team understand how the product should look, and this is one of the most important things. However, you may not have a complete understanding of the process: how users can interact with the software and hardware of your product.


In order to notice any inconvenience / redundancy even before the start of development and production, it is better to spend a little time creating a prototype.



For a hardware prototype, create a test device that will contain basic functions and prove the worth of your plan. Neither size, nor weight, nor appearance is important, because you are only exploring functionality. Your main task is to make sure that the system correctly reads the data from the sensors and uploads it to the MQTT server (or any other protocol for exchanging IoT data like WebSocket, HTTP REST or CoAP). Here is an example prototype:


Using the prototype, we realized that it was necessary to improve the location of the settings button, so we updated the design and began to establish an easier communication scheme. First, to connect, users needed to press and hold a button to put the device into setup mode and connect to a Wi-Fi access point. However, in the future, we expanded and simplified the circuit using Bluetooth.


At this point, the prototypes of the application and the device are not connected, because we checked whether the design works as it should and as we expected. We made sure that the equipment correctly transmits data to the MQTT server and checked every aspect of the application to see if the look and feel of the application is attractive and intuitive. With this information, we can move on to the software development phase.


Perfectly! When all the preparation is done, we can move on to development. The next two phases can be entered in any sequence or simultaneously, since they are independent.


Software development


We have already written many articles about the features of development, so here we will only describe in general terms what is necessary for successful work:


  1. Clearly form the deadlines. We don’t want the development to last forever, right?
  2. Identify use cases for testing. We want to look at all the cases and make sure that everything works as it should.
  3. Create a volume of tasks. Now we will get rid of all repetitions and make sure that we made everything correctly.
  4. Plan your first sprint. The more detailed and thorough our launch is, the better we will see what is worth doing next.

Find out more about our manufacturing process:


  1. https://indeema.com/blog/project-management-best-practices
  2. https://indeema.com/blog/the-perfect-software-development-process
  3. https://indeema.com/blog/setting-up-and-managing-a-mobile-project-at-indeema
  4. https://indeema.com/blog/a-perfect-team-structure-for-a-perfect-release
    In addition to manufacturing, do not forget about testing. Although it may actually become the next IBM without a QA team, here is what we think about testing:
    https://indeema.com/blog/the-importance-of-automated-testing-on-complex-projects

Create a 3D Model


Having a technical description and all the specifications for each component of the equipment, you can begin work on a 3D model of your device for MVP solutions. We designed and printed our model on a 3D printer.



To check that the device really looks and is perceived as it should, you can watch a short video here .


Here is the printed result:


The model is still inadequate in production, but the size and functionality are correct. Right now we can check if this is what we were counting on.


Start beta testing


Our minimally viable product is ready, so let's start testing on the first customers.


First of all, we decided to start testing the product in our office. We installed 7 appliances in 7 rooms (3 meeting rooms, a kitchen and 3 working rooms). Everyone in our company installed the application and started using it. Moreover, in order to receive various reviews from different people, we have provided products to our friends and partner companies.


The main goal of beta testing is to identify any problems that we missed before. It also helps to determine if there is enough functionality and whether we have chosen the right functionality for the initial version.


MVP launch


First of all, what is MVP and what is it for? Answers can be found in our article .


A minimum viable product is a version that contains only the core and most important functionality. Thanks to this functionality, people want to use the product and recommend it to others. Therefore, we ordered the professional manufacture of our 3D models on high-quality 3D printers so that they have an attractive appearance. Mostly people care about appearance and even if they need only functionality, they still want things that look good:



Both the choice of functionality and the look are important for successful MVP marketing. To support the sales campaign and disseminate information about our product, we also developed the ubreez.com landing page


To start, attention, production


After receiving feedback from beta testers, we found a few things worth improving. Since this was the main goal of our beta testing, we were glad that everything went as it should. Therefore, we have improved the product and ordered a large number of devices in professional production. We do not collect devices in our office, since this is not our specialization, nor could we do this as efficiently as a professional factory. Therefore, we have reached our goal and it's time to start selling.


You can see the applications here: iOS / Android


The end? Of course not!


Our product is developed, it is successful and we are growing every second. Is this the end? Of course not, we would not dare to call it even the beginning.


When you launch a product, what's next? Find out here .


Thanks for attention!


Leave comments and subscribe to our blog, we are preparing many more cool materials.


')

Source: https://habr.com/ru/post/461151/


All Articles