Hardware ágil con desarrollo de software integrado

Publicado: 2022-03-11

Construir ecosistemas complejos de hardware y software que encuentren un producto/mercado adecuado es una tarea difícil. Si bien la mayoría de las nuevas empresas de hardware finalmente fracasan porque se quedan sin dinero, según un informe de CB Insights, la principal razón subyacente es en realidad la falta de demanda de sus productos. Esto solo subraya la importancia de cuán crítico es el rol del gerente de producto para las nuevas empresas de hardware, ya que su objetivo principal es descubrir las necesidades del cliente y los puntos débiles para entregar un producto exitoso.

La última empresa que dirigí creó un ecosistema web, móvil, aplicaciones de software integradas y dispositivos de hardware para la industria del estacionamiento. La estrategia de productos de hardware era parte de mi trabajo diario, lo que me llevó a experimentar con varios flujos de trabajo de desarrollo de productos de hardware. A pesar de trabajar con productos de hardware durante 10 años y tener una licenciatura en Electrónica y Telecomunicaciones, todavía tenía mucho que aprender en el trabajo. He creado la siguiente guía con la esperanza de que pueda ponerse al día con la gestión de productos dentro del hardware con espacio de software integrado más rápido que yo.

Desafíos de la gestión de productos de hardware

Si bien SaaS y las aplicaciones móviles se pueden desarrollar fácilmente utilizando un marco ágil, las condiciones únicas en el desarrollo de dispositivos de software y hardware integrados hacen que sea mucho más difícil aplicar principios ágiles. En esta primera sección, cubriremos las características del desarrollo de hardware que crean complejidad. No todos tienen soluciones sencillas, pero hay formas de reducir la dificultad mediante el empleo de estrategias de desarrollo de hardware particulares, que se tratarán en la siguiente sección.

El talento técnico especializado es difícil de encontrar localmente

La creación de nuevos productos de hardware es significativamente más difícil que la iteración de los existentes. Implica mucha creatividad y experiencia en la creación de prototipos, que rara vez se enseña en las universidades. Algunas universidades ni siquiera cuentan con instalaciones de creación de prototipos o las herramientas necesarias para desarrollar estas habilidades y dicha experiencia se obtiene casi exclusivamente en las corporaciones de hardware más grandes que tienen centros de I+D. Encontrar profesionales locales con experiencia relevante puede, por lo tanto, ser muy difícil, lo que hace que muchos fundadores de nuevas empresas de hardware necesiten expandir su grupo de talentos mediante la contratación remota.

Los sistemas de control de versiones no están adaptados al diseño del hardware

La mayoría de los sistemas de control de versiones (VCS) están orientados a admitir formato textual, ya que fueron creados para el trabajo colaborativo de desarrollo de software. En proyectos que implican el desarrollo de hardware, la información se envuelve en archivos de diseño creados con la ayuda de herramientas especiales como OrCAD. Y algunas de estas herramientas solo admiten archivos binarios que ni siquiera están optimizados para usarse en VCS. CADLAB es un intento relativamente nuevo de crear un VCS compatible con hardware y, con suerte, habrá más herramientas como esta en un futuro próximo.

Las instalaciones de producción de hardware están deslocalizadas

Las instalaciones de producción de hardware suelen estar ubicadas en otra región, país o continente. La comunicación entre el productor de hardware y el fabricante necesita una consideración especial y es la clave para una entrega exitosa del producto. La comunicación exitosa requiere un marco más estratégico para asegurar la calidad del producto y asegurar que pueda hacer frente a los cambios en la etapa dinámica de validación del producto y el mercado. Para lograr esto, el productor de hardware necesita crear muchas especificaciones detalladas enviadas al fabricante. El marco de colaboración debe garantizar la entrega rápida de información y la gestión del ciclo de vida de las especificaciones, ya que pueden quedar obsoletas rápidamente.

Los cambios de hardware son menos flexibles

Un modelo operativo popular en las nuevas empresas de software sacrifica la calidad por la velocidad en las primeras etapas. Incluso Facebook defendió el mantra "muévete rápido y rompe cosas" durante bastante tiempo. Otro enfoque familiar es "fingir hasta que lo logres". Esto funciona para las nuevas empresas de software debido a los costos de infraestructura económicos y los marcos de programación simplificados que permiten a los desarrolladores implementar actualizaciones de código diariamente.

Si bien este enfoque de desarrollo se ha infiltrado lentamente en el espacio del hardware, es una tendencia desafortunada en este campo, ya que es mucho más difícil realizar e implementar cambios de hardware. Los costos de desarrollo compensan el valor obtenido a través de lanzamientos rápidos y frecuentes, por lo que en realidad es una estrategia mucho más deseable invertir más en la fase de diseño para crear arquitecturas de hardware sólidas.

La trampa del crowdfunding

Muchas startups están atrapadas en la idea de que lanzar una exitosa campaña de crowdfunding de hardware es equivalente a la validación del mercado. El crowdfunding tiende a ser más exitoso para productos que involucran un componente de hardware, particularmente debido a nuestro deseo inconsciente de propiedad relacionado con el objeto físico. Sin embargo, el crowdfunding no pretende validar su producto a escala, sino una forma democrática de financiar el desarrollo de productos en etapa inicial. La desafortunada realidad es que a muchas empresas con campañas exitosas de crowdfunding les resultó difícil o casi imposible escalar su producción, ya que no validaron su mercado a escala.

Certificaciones, Reglamentos y Aprobaciones

Todos los productos de hardware requieren algún tipo de certificación para ser vendidos. Es uno de los pasos más pasados ​​por alto en las primeras etapas de la comercialización de productos de hardware. ¿Cómo afectará la restricción de certificación al plan del producto y al marco aplicado para el desarrollo? No es raro planificar las primeras fases del proyecto con la certificación y otras aprobaciones como un hito del proyecto, y luego retroceder condicionalmente hasta la fase inicial. En cambio, los gerentes de productos pueden analizar cuidadosamente las regulaciones, las dependencias y las puertas de enlace de decisiones estratégicas del plan de productos en un enfoque más similar a una cascada.

Oportunidades para la gestión de productos de hardware

Ahora que hemos cubierto algunos de los desafíos existentes en el campo del hardware con software integrado, veamos cómo hacer que el proceso de desarrollo sea más ágil y predecible para compensar las dificultades inherentes del desarrollo de hardware.

Incorpore Agile en el desarrollo de hardware

Los gerentes de productos experimentados son conscientes de los desafíos que implica la creación de productos de hardware con software integrado que intente explotar una oportunidad de mercado creada por los nuevos desarrollos tecnológicos. Aprenden a equilibrar la aceleración del tiempo de comercialización sin comprometer la probabilidad de éxito del producto desde la etapa de planificación. La mayoría de las veces, esto toma forma a través de un enfoque de caída de agua.

Water-scrum-fall para el desarrollo de productos de hardware
Water-scrum-fall para el desarrollo de productos de hardware

La fase de ideación del producto amplía los principios, objetivos y características de alto nivel del producto con tantos detalles como sea posible. Los grandes gerentes de productos dedican más tiempo a refinar los resultados de esta fase: visión, misión, evaluación de oportunidades, objetivos del producto de hardware y características. Esta es la estrella del norte del producto que debe ser lo suficientemente clara antes de comenzar a trabajar en cualquier tipo de prototipo de hardware, por lo que se recomienda un enfoque en cascada.

Es fundamental tener requisitos bien documentados y especificaciones funcionales para los productos de hardware, así como una buena arquitectura técnica para el software integrado que impulsa el producto de hardware. Los cambios en los requisitos y especificaciones deben penalizarse, no alentarse una vez que hayan sido aprobados por todo el equipo.

Se puede utilizar una metodología estándar de scrum al desarrollar software integrado. Es menos costoso en términos de tiempo y dinero ajustar y refinar la implementación del software para trabajar con la arquitectura de hardware predefinida que viceversa.

La prueba de integración final y la prueba de aceptación del usuario deben realizarse en condiciones de cascada. En esta etapa, la fase de desarrollo está completa y las nuevas funcionalidades y las características que faltan se registran como solicitudes de trabajo adicionales para el próximo período de planificación.

Incorpore Agile en el desarrollo de software integrado

La creación de productos de hardware complejos con software integrado afecta la forma en que se aplican las metodologías tradicionales de desarrollo de software. Muchos sistemas utilizados para producir software que se ejecuta en una computadora personal no son apropiados para desarrollar software integrado, porque existen limitaciones con respecto a la escasez de recursos y ciclos de vida de desarrollo mucho más largos.

Un grupo de académicos y profesionales de Brasil ha ofrecido una solución potencial: Metodología de diseño de software basada en plataforma para sistemas de control integrados: un kit de herramientas ágil . Esta metodología incorpora principios ágiles en el desarrollo de software integrado. A continuación se muestra un breve resumen de la metodología, pero se recomienda encarecidamente a los gerentes de productos de hardware que lean la descripción completa antes de aplicarla en su práctica.

Los roles involucrados en esta metodología son:

  • Propietario de la plataforma: responsable de definir los objetivos de calidad, planificación y costos
  • Líder de producto: responsable de la implementación, integración y prueba del producto.
  • Líder de funciones: responsable de administrar proyectos de subsistemas y realizar un seguimiento del progreso de la función a entregar.
  • Equipo de desarrollo: trabajando en el desarrollo del producto.

La metodología divide el desarrollo de software embebido en tres grupos de procesos:

Grupos de proceso de metodología de diseño de software basado en plataforma
Grupos de proceso de metodología de diseño de software basado en plataforma

  1. Grupo de procesos de la plataforma del sistema. Un sistema elige los componentes del sistema que formarán parte de la arquitectura y las plataformas API de una biblioteca de plataforma y los personaliza para satisfacer las restricciones de la aplicación en cuestión. El proceso de personalización se lleva a cabo en ciclos iterativos mediante la programación de los procesadores configurables por el diseñador y la lógica reconfigurable en tiempo de ejecución integrada en la plataforma.
  2. Grupo de procesos de desarrollo de productos. Las funcionalidades que componen el producto se dividen en elementos de hardware o software de la plataforma. La metodología proporciona algoritmos de partición para tener en cuenta el consumo de energía, el tiempo de ejecución y el tamaño de la memoria de los componentes de la aplicación.
  3. El grupo de procesos de gestión de productos supervisa y controla el alcance del producto, el tiempo, la calidad y los parámetros de costo. Los enfoques sugeridos consisten principalmente en las prácticas promovidas por el método Scrum Agile, así como los patrones ágiles.

Crear un programa de desarrollo de hardware

La estructuración de un programa de desarrollo de hardware en etapa inicial ha permitido a las empresas proporcionar un pivote rápido o un plan B. Desde un punto de vista comercial, puede disminuir los márgenes financieros, pero al final, proporciona la agilidad necesaria para hacer frente a un mercado en constante cambio. condiciones en términos de productos lanzados por la competencia y el avance de las capacidades tecnológicas.

Suponga que una empresa ejecuta una exitosa campaña de financiación colectiva para su producto de hardware con software integrado. Funcionan muy bien para el primer lote de productos hasta que una gran empresa establecida anuncia algo similar. La versatilidad y el tiempo de comercialización son los más importantes, y una respuesta pragmática y ágil a esta situación aumenta la probabilidad de un producto exitoso. Al contar con un programa de desarrollo de hardware, la empresa puede adaptarse rápidamente y destacar una versión más rica del producto como respuesta a sus competidores.

Programa de desarrollo de hardware
Programa de desarrollo de hardware

Prueba exitosa de hardware con software integrado

Las pruebas son un componente crucial de la gestión de productos de hardware porque, a diferencia de las pruebas ágiles de software, la mayoría de los errores de hardware solo se pueden corregir mediante la producción de un nuevo lote de productos. Los dispositivos Samsung Galaxy Note 7 que se estaban incendiando son un gran ejemplo de por qué las pruebas de hardware deben ser una prioridad para todos los gerentes de producto.

Las pruebas funcionales son el objetivo clave de la validación técnica de hardware con productos de software integrado. La complejidad de estos procedimientos proviene del hecho de que es probable que los errores provengan de cualquier parte del sistema.

Las pruebas unitarias generalmente ocurren en un entorno simulado después de cada sprint, ya que el hardware simulado ofrece la ventaja de ser perfectamente controlable. Los scripts de prueba se pueden automatizar, pueden supervisar la ejecución y matar las pruebas que parecen haberse bloqueado sin producir ningún resultado.

Las pruebas de integración deben tener en cuenta las operaciones en línea y fuera de línea y la presentación del producto de hardware a las condiciones operativas de la vida real. Por ejemplo, si la empresa desarrolla un sistema de monitoreo cerebral montado en la cabeza durante actividades al aire libre, las condiciones de prueba deben considerar estas particularidades.

La prueba del sistema implica probar todo el sistema en busca de errores y fallas. Esta prueba se lleva a cabo interconectando los componentes de hardware y software de todo el sistema (que han sido previamente probados por unidad e integración) y luego probados como un todo. Esta prueba se incluye en el método de prueba de caja negra, donde se verifica el software en busca de escenarios esperados por el usuario, posibles excepciones y condiciones de casos límite. Categorías especiales de prueba que se pueden mencionar:

  • Pruebas desencadenadas por eventos: iniciadas por eventos particulares o cambios de estado en la vida útil del producto de hardware (p. ej., inicio, reinicio, apagado). Su objetivo es detectar fallas permanentes.
  • Pruebas activadas por tiempo: iniciadas en momentos preconfigurados en el funcionamiento normal del sistema, realizadas periódicamente para detectar fallas permanentes. Es útil en sistemas que se ejecutan durante períodos prolongados, donde no se producen eventos significativos de activación de pruebas. Las pruebas activadas por tiempo también son útiles para detectar fallas intermitentes.

Aceptación de productos de hardware con software integrado

El valor del producto para productos de hardware con software incorporado generalmente se valida después del paso de aceptación del producto en la metodología Water-Scrum-Fall. El ecosistema de hardware con software integrado debe priorizar el hardware sobre el software para la validación y aceptación. Como se indicó anteriormente, los cambios de hardware son más difíciles y costosos de realizar. Es común que los gerentes de producto conciban soluciones innovadoras, requeridas para resolver problemas de aceptación o ajustar el valor considerando la restricción de no poder alterar el hardware y favoreciendo iteraciones adicionales en el campo de desarrollo de software.

Los excelentes gerentes de productos tienen la perspicacia del producto y el gran poder de visión para pronosticar las necesidades de hardware y priorizar las características que se pueden incluir correctas para que el modelo comercial sea sólido, la aceptación sea sólida y los usuarios disfruten usando el producto. Teniendo en cuenta el software integrado, la "decoración" del hardware no debería sorprender, ya que debe seguir reglas y restricciones, impulsadas por procesos de desarrollo de hardware, procedimientos de certificación, desafíos de producción y aceptación del mercado.

El desarrollo de hardware requiere agilidad gestionada

Agile ha tomado por asalto el mundo del desarrollo de software y ahora ha comenzado a colarse en el espacio del hardware. Sin embargo, las condiciones del producto de hardware con desarrollo de software embebido conllevan varios desafíos:

  • Falta de talento especializado.
  • Sistemas de control de versiones que no están adaptados para hardware
  • Instalaciones de producción deslocalizadas
  • Cambios que son más difíciles de hacer en comparación con el software
  • Requisitos de certificación y regulación que imponen obstáculos de planificación

Estos desafíos dificultan la aplicación de principios ágiles de la misma manera que lo hacen las empresas de software.

Para combatir estos desafíos, se necesita un enfoque de agilidad gestionada en forma de caída de agua. El desarrollo de software integrado se crea siguiendo los procedimientos estándar de scrum, mientras que otros pasos como la ideación, la creación de especificaciones y las pruebas se implementan en una configuración en cascada. Esto permite que las empresas de hardware obtengan las recompensas que ofrece Agile mientras mantienen un enfoque de gestión de productos funcional que tiene que considerar las diversas limitaciones enumeradas anteriormente. Este enfoque de agilidad administrada proporciona un camino exitoso hacia adelante en el contexto de condiciones de mercado que cambian rápidamente y mejoras tecnológicas constantes.