Olá, meu nome é Dmitry Karzhitsky, trabalho como líder de controle de qualidade na startup de hardware Rozum Robotics. Recentemente, junto com a Innopolis University, realizamos um encontro dedicado ao desenvolvimento de produtos de hardware. Seguindo os passos do meetup, quero falar sobre as especificidades do desenvolvimento e teste de robôs e sobre as especificidades da organização do trabalho em uma inicialização de hardware.
Parece que o reino do hardware é menos visível do que o software, pelo menos em termos de número de referências. Todo mundo sabe sobre desenvolvedores de aplicativos móveis e da web escrevendo códigos em MacBooks enquanto bebem smoothies. E os especialistas em hardware têm a imagem de um engenheiro barbudo clássico que pode soldar uma placa e escrever um código. Se um bom programador de Java deve lidar com a tarefa de desenvolver software de nível superior, então, em embarcado, não se pode fazer sem entender o hardware.
O desenvolvimento de novos produtos, inclusive em hardware, pode ser dividido em duas grandes áreas: produtos comerciais (startups) e pesquisa e desenvolvimento (P&D). Os processos e abordagens de desenvolvimento e teste podem ser semelhantes, as tarefas e o escopo podem ser diferentes. O produto é desenvolvido para usuários específicos com base na ideia e na pesquisa de que clientes em potencial precisam do seu desenvolvimento. Existem mais riscos nesta abordagem. Um dos riscos é a dificuldade de dimensionar o produto. É barato lançar uma nova versão do aplicativo e ainda é muito difícil e caro criar uma cópia do robô. Vou discutir outros riscos abaixo.
Os exemplos do processo de desenvolvimento serão baseados no braço robótico colaborativo PULSE (cobot). Esta é uma mão de ferro móvel que pode ser programada para diferentes tarefas.
Processo de produção de software
— . : , API, .
:
- .
- , .
- User Story.
- .
- .
- .
- , .
- . .
, -. - - — .
, pipeline: , , , , .
— , , , (). , , . , . .
, -. , — .
. , , , , . , , .
hardware- — . , . , . , .
- , . — , , .
bus factor, . , , .
hardware . Java Python. (embedded) — C, C++, . embedded- , , . . .
Java , . , . , , 10 000 , .
. — , , , . . .
, , software. , . — . , , . .
, . , .
, . , ISO 9283. - , , : , , , , .
. , , , API, , . , , .
́ API - . , . — .
. , , . , , , .
: , , , , , — , .
hardware-
, . — , , . , , , . , . - .
, . , . . , .
, , , . , .
, hardware-. R&D « » . , hardware - .