Adaptar la metodología Agile al diseño de sistemas embebidos
Podrías querer utilizar un desarrollo ágil para construir este sistema embebido
Como plataformas únicas de hardware con potencia informática en una variedad de aplicaciones, los sistemas embebidos combinan los mejores deseos de cualquier amante de la tecnología: el diseño del hardware y el desarrollo del software. Los procesos de diseño para sistemas embebidos más sencillos tienden a ser lineales, y el hardware y el software embebidos o sistemas empotrados pueden desarrollarse en paralelo por diferentes equipos de diseño. Conforme el sistema se complica y las necesidades del cliente se van diversificando, los equipos de diseño necesitan repensar las metodologías convencionales.
Las metodologías agile de diseño se definen normalmente por el software, pero estas técnicas de desarrollo y diseño pueden adaptarse al diseño de hardware, incluyendo el desarrollo de sistemas embebidos. Al estar el software empotrado, necesita muchos de los mismo procesos e ideas utilizados en el desarrollo de software tradicional, además de metodologías agile. Al unificar el diseño de software integrado y de PCBs en un flujo de trabajo coherente hay que repensar ambos procesos como un procedimiento repetitivo y continuo.
Si se implementan correctamente, estos métodos pueden ayudar a evitar que se repitan diseños innecesariamente y a asegurar que la funcionalidad de un producto se ajuste mejor a las necesidades del cliente. Para sacar esto adelante hay que emplear las herramientas de colaboración y diseño apropiadas adaptables a cualquier metodología de diseño, incluido el desarrollo agile.
Adaptar el desarrollo de una metodología agile al diseño de hardware
Nunca he trabajado en un proyecto de software que se entregara a tiempo o no se pasara de presupuesto. Es la realidad de este sector. Parece que al menos los proyectos de desarrollo de hardware se suelen acabar a tiempo, por lo que muchos gestores de proyectos podrían preferir gestionar trabajos de este tipo. No importa lo meticulosos que sean dichos gestores en la planificación de una nueva plataforma de software, ya que casi siempre hay alguna incompatibilidad imprevista o cambio en las necesidades del cliente.
Uno de los dogmas clave del diseño de una metodología agile es que el cambio durante el proceso de diseño es inevitable. Como tal, un equipo de diseño necesita saber adaptarse a los cambios de las necesidades de los clientes, a las funcionalidades eléctricas, a la posibilidad de fabricación e incluso al diseño mecánico de la caja y la carcasa. En el diseño de sistemas empotrados o sistemas embebidos, los equipos de desarrollo se enfrentan a cambios en dos direcciones: alteraciones en la cadena de suministro de componentes y en el software integrado.
Al implementar procesos repetitivos en pleno desarrollo de una metodología agile se ayuda al equipo de diseño a que rápidamente se adapte durante el proceso de desarrollo y que se enfrente a los cambios conforme surjan, en vez de relegarlos a la subsiguiente comprobación de lotes al final del desarrollo. Para ellos es necesario que la comunicación entre los miembros del equipo y el cliente final sea clara y coherente. Debido a que determinadas porciones de software empotrado y hardware pueden estar desarrollándose a la vez, todos los equipos involucrados deben colaborar.
¿Cómo cambia el flujo de trabajo tradicional?
Al inicio, los requisitos de diseño y de funcionalidad deberían estar claramente definidos, tanto en lo referente al hardware como al software embebido. Aquí es cuando la comunicación con el cliente se vuelve prioritaria, ya que se asegura que este entiende la funcionalidad y viabilidad de su nuevo producto.
Los objetivos, como parte de los requisitos determinantes, deberían especificarse con claridad en todo el proyecto y poder adaptarse a cambios. El trabajo para la consecución de objetivos mientras se aceptan cambios en el hardware y en el diseño de hardware tiene lugar dentro de un proceso iterativo. Este proceso iterativo es fundamental en los métodos de desarrollo agile, tanto en el diseño de software como de hardware.
Un problema común de los procesos de diseño lineales es la ausencia de comprobaciones periódicas. La evaluación de calidad se lleva a cabo demasiado tarde en el proceso, haciendo que los procesos de rediseño sean largos y caros. El diseño de PCBs y la comprobación del software deberían realizarse durante todo el proceso de diseño. Para la parte de hardware del proyecto, las opciones de comprobación de reglas y simulaciones eléctricas son la mejor forma de comprobar su funcionalidad antes de fabricar prototipos. Esto puede ayudarte a planificar modificaciones en los diseños mucho antes en este proceso.
Hay muchas variantes de procesos agile, y el flujo de trabajo e ideas de cada uno son demasiados para incluir en un solo artículo. En cualquier desarrollo agile de sistemas empotrados exitoso se utiliza software de diseño con las funciones apropiadas de desarrollo, gestión de datos y colaboración.
Uso de herramientas de colaboración y de control de la versión
La industria del software ha hecho un uso ingente de herramientas de control de la versión durante muchos años, y las plataformas de diseño de hardware están finalmente poniéndose al tanto. El problema con las plataformas de diseño de PCBs habituales es que las partes de hardware y de software embebido de un proyecto se han relegado tradicionalmente a al menos dos programas diferentes. Por ello es también necesaria otra herramienta para colaborar y controlar la versión durante un proyecto.
Una plataforma de diseño que proporcione las herramientas de diseño de PCBs habituales y avanzadas necesarias para el diseño del hardware y el desarrollo del software facilita en gran medida la colaboración entre los miembros de equipos en un proyecto. Cuando las herramientas de control de la versión se integran junto con estas funcionalidades, tu equipo podrá entonces volver rápidamente a versiones de diseño anteriores en caso necesario, en una especie de proceso de ensayo y error que se utiliza en el desarrollo de software.
Como el aprovisionamiento y la fabricación de componentes son partes primordiales en cualquier proyecto de hardware, las reuniones periódicas de los equipos agile en los cambios de diseño deberían enfocarse en determinar los cambios de diseño necesarios para adaptarse a las alteraciones en la cadena de suministro. Así se puede variar el diseño del software empotrado durante el proyecto.
Cuando el equipo cuenta con aprovisionamiento en tiempo real e información sobre obsolescencia en tu plataforma de diseño de software embebido/PCBs, puedes intercambiar componentes en tu dispositivo e incluso reducir el tiempo necesario para las modificaciones en el diseño. Poder acceder a esta información de aprovisionamiento en las primeras fases del proceso de diseño puede incluso ayudar a tu equipo a eliminar las modificaciones de diseño posteriores, ya que puedes anticipar problemas de abastecimiento y ajustar tu plataforma de hardware según sea necesario.
Las funcionalidades de diseño de esquemas, composición de PCBs y sistemas embebidos de Altium Designer® pueden integrarse ya con las funcionalidades de gestión de datos de Altium Concord Pro®, proporcionado a los diseñadores un abanico completo de herramientas para el desarrollo agile de sistemas embebidos. Las funcionalidades de asignación de tareas en Altium Designer aportan a los diseñadores un abanico de herramientas estándares para el sector necesarias para la creación de sistemas embebidos de varias aplicaciones.
Ponte en contacto con nosotros o descarga una prueba gratuita de Altium Designer y Altium Concord Pro. Tendrás acceso a las mejores herramientas del sector para enrutamiento, composición, simulación y colaboración MCAD en un solo programa. Habla con un experto de Altium hoy mismo para más información.