Development of hardware products - what and how it works

Hi, my name is Dmitry Karzhitsky, I work as a QA Lead in the Belarusian hardware startup Rozum Robotics. Recently, together with Innopolis University, we held a meetup dedicated to the development of hardware products. In the wake of the meetup, I would like to tell you about the specifics of developing and testing robots and about the specifics of organizing work in a hardware startup.



It seems that the realm of hardware is less visible than software, at least in terms of the number of references. We all hear about web and mobile app developers writing code on MacBooks while drinking smoothies. And hardware specialists have the image of a classic bearded engineer who can solder a board and write a code. If a good Java programmer must cope with the task of developing top-level software, then in embedded one cannot do without understanding hardware.



The development of new products, including in hardware, can be divided into two broad areas: commercial products (startups) and research and development (R&D). Development and testing processes and approaches can be similar, tasks and scope differ. The product is developed for specific users based on the idea and research that potential customers need your development. There are more risks in this approach. One of the risks is the difficulty of scaling the product. It is inexpensive to release a new version of the application, and it is still quite difficult and expensive to create a copy of the robot. I will discuss other risks below.



Examples from the development process will be based on the PULSE collaborative robotic arm (cobot). It is such a movable iron hand that can be programmed for different tasks.





Software production process



— . : , API, .



:



  1. .
  2. , .
  3. User Story.
  4. .
  5. .
  6. .
  7. , .
  8. . .


, -. - - — .



, pipeline: , , , , .



— , , , (). , , . , . .



, -. , — .



. , , , , . , , .





hardware- — . , . , . , .



- , . — , , .



bus factor, . , , .





hardware . Java Python. (embedded) — C, C++, . embedded- , , . . .



Java , . , . , , 10 000 , .



. — , , , . . .



, , software. , . — . , , . .









, . , .



, . , ISO 9283. - , , : , , , , .



. , , , API, , . , , .



́ API - . , . — .



. , , . , , , .



: , , , , , — , .



hardware-



, . — , , . , , , . , . - .



, . , . . , .



, , , . , .






, hardware-. R&D « » . , hardware - .



It is hard



All Articles