Le guide essentiel des cadres de développement IoT et des meilleures pratiques

Pourquoi l'IoT est important


L'Internet des objets (IoT) représente à la fois un défi de taille et une opportunité considérable. Les appareils et les revenus IoT devraient doubler au cours des prochaines années. Cela signifie que les entreprises qui développent des produits IoT sont sur le point d'en tirer un grand profit.

Cependant, l'IoT n'est pas une ruée vers l'or ou un plan pour « devenir riche rapidement ». Se lancer tête baissée dans le développement IoT sans connaître les meilleures pratiques est une recette facile pour des projets qui échouent. La bonne nouvelle est qu'en vous préparant et en vous formant, vous et votre équipe, vous aurez beaucoup plus de chances de réussir.

Dans ce guide des cadres de développement IoT et des meilleures pratiques, découvrez tout ce que vous devez savoir pour faire de votre vision produit une réalité. Vous trouverez : Meilleures pratiques - Paradigmes de développement - Cadres de développement IoT - Cas d'utilisation potentiels

Qu'est-ce que l'Internet des objets ?


L'Internet des objets (IoT) est l'un des mots à la mode les plus en vogue dans le domaine de la technologie, mais qu'est-ce que c'est exactement ? Quel est le lien avec d’autres grands mots à la mode comme l’apprentissage automatique et l’intelligence artificielle (IA) ?

L’IoT fait référence au vaste réseau d’appareils qui se connectent à Internet pour échanger des informations en temps réel. L’IoT inclut les appareils informatiques « traditionnels » tels que les ordinateurs portables et les smartphones. Cependant, le terme est plus fréquemment appliqué au matériel qui a été amélioré avec la connectivité Internet.

Cela inclut les moniteurs cardiaques et les biopuces, les capteurs industriels, les caméras de sécurité, les téléviseurs et autres appareils domestiques intelligents, et même les voitures autonomes. En général, tout appareil qui possède une adresse IP pour envoyer et recevoir des données sur un réseau est considéré comme faisant partie de l’IoT.

L’IoT, l’intelligence artificielle et l’apprentissage automatique sont profondément connectés et s’influencent mutuellement. L’IoT collecte des données via des applications intelligentes connectées à des actifs physiques, que l’apprentissage automatique utilise pour créer une meilleure IA.

À mesure que l’IA s’améliore, l’IoT s’améliore également, car les appareils peuvent utiliser une IA améliorée pour accomplir des tâches plus avancées.  Lire aussi“ Autoradio Citroen C3 Android Auto – CarPlay»

En améliorant les appareils autrefois « stupides » avec une connectivité Internet, l’IoT vise à rendre votre vie plus simple, plus facile et plus efficace. Voici quelques exemples de l’impact que l’IoT peut avoir sur notre façon de travailler, de nous divertir et de vivre :

Les appareils domestiques intelligents, comme les ampoules et les thermostats, peuvent être programmés pour s’allumer et s’éteindre automatiquement. Par exemple, vous pouvez éteindre votre thermostat pendant la journée pour économiser de l’énergie et de l’argent. Ensuite, rallumez-le peu de temps avant de rentrer du travail.

De minuscules moniteurs et capteurs fixés aux équipements de fabrication peuvent détecter les signes avant-coureurs et les baisses de performances avant même que les humains ne les remarquent. Cela vous aide à éviter les temps d’arrêt imprévus, à planifier les travaux de maintenance à l’avance et à rendre le processus de fabrication plus efficace.

Les appareils de santé IoT peuvent fournir aux médecins des mises à jour en temps réel sur les signes vitaux des patients. Les glucomètres et les tensiomètres en sont des exemples.

Quelle que soit la manière dont vous l’utilisez, une chose est claire : l’IoT connaît une croissance incroyablement rapide. Selon Gartner, la planète comptait plus d’appareils IoT (8,4 milliards) que d’êtres humains en 2017. De plus, Gartner prédit que ce nombre atteindra 20,4 milliards d’ici 2020.

Pendant ce temps, le cabinet de conseil en gestion Bain & Company prédit que le marché mondial de l’IoT va plus que doubler en seulement 4 ans. Le marché a atteint 235 milliards de dollars en 2017 et devrait atteindre 520 milliards de dollars en 2021.

Développement de produits IoT


Les produits IoT ont le potentiel de transformer tous les aspects de votre entreprise, des opérations et des processus aux clients et aux résultats.

Supposons que vous cherchiez à améliorer l’expérience de vos clients. Les appareils IoT peuvent vous aider de différentes manières : Attention personnalisée sous forme d’actions et de messages, qui peuvent aider les clients à se sentir plus heureux et plus inclus. Par exemple, la machine à café de votre café préféré peut préparer votre commande habituelle dès que vous approchez du magasin.

S’occuper de la monotonie de la vie des clients, comme le fait de commander régulièrement des produits d’épicerie lorsque les stocks s’épuisent. Réduire le temps consacré au service client. Par exemple, si une « voiture intelligente » détecte un problème avec son moteur, elle peut contacter un mécanicien.

Même les secteurs qui ne sont généralement pas considérés comme « innovants », comme l’agriculture et la construction, voient les avantages de l’IoT. Par exemple, les tracteurs compatibles IoT peuvent recevoir des données de localisation de tous les véhicules de la flotte. Cela garantit que les tracteurs ne se chevauchent pas lors de l’ensemencement ou de la fertilisation du sol.

Le marché ne disposant pas d’un excédent de produits IoT, c’est le moment idéal pour se lancer dans le développement de l’IoT. Avant de commencer, nous souhaitons toutefois souligner quelques points importants :

1. L’échec est monnaie courante.


Selon un rapport Cisco de 2017, seulement 26 % des entreprises ont déclaré qu’au moins une de leurs initiatives IoT était un « succès total ». De plus, 60 % des projets IoT ayant échoué ont été bloqués très tôt, lors de la preuve de concept. Si vous souhaitez créer un produit IoT réussi, vous devez respecter les meilleures pratiques de développement IoT.

2. La sécurité est primordiale.


Les appareils IoT vont de ceux qui sont sans importance (ampoules intelligentes) à ceux qui sont une question de vie ou de mort (appareils médicaux). Connecter un produit IoT à Internet expose potentiellement vos utilisateurs à des centaines ou des milliers de risques de sécurité.

Votre appareil IoT doit être développé conformément aux normes de sécurité IoT et de développement Web. Vous devrez également tenir compte des lois et réglementations sur la confidentialité des informations personnelles sensibles, comme le RGPD.

3. Il est essentiel de résoudre le bon problème.


Beaucoup trop de projets IoT échouent parce qu’ils sont mal définis ou ne résolvent pas un problème commercial existant. Avant de commencer, assurez-vous de savoir comment vous mesurerez le succès du produit avec des KPI spécifiques.

Vous devrez également sélectionner les bonnes technologies pour le travail. Votre projet pourrait-il bénéficier de l’intégration de Bluetooth et d’iOS, ou peut-être de la création d’un jumeau numérique ? (Lire : qu’est-ce qu’un jumeau numérique dans l’IoT ?)

Les avantages du développement IoT agile brainstorming sur un produit de développement IoT


Il existe deux principales approches de développement logiciel : Agile et Waterfall. La méthode Waterfall adopte une approche linéaire du développement logiciel. Les développeurs suivent une séquence d’événements pour chaque étape distincte du processus de développement.

La méthode Agile a été créée en réponse directe aux critiques de Waterfall. Les critiques estimaient qu’il y avait trop de place pour que les problèmes restent inaperçus jusqu’à ce qu’un projet soit presque terminé. Avec le développement Agile, les équipes décomposent chaque fonctionnalité en un plus petit morceau de travail discernable et produisent une valeur incrémentielle au fil du temps.

Le modèle de développement en cascade


Pendant des décennies, les logiciels et le matériel étaient principalement développés selon le modèle de développement de produits en cascade.

Dans ce paradigme, le développement se déroule de manière séquentielle, d'une étape à l'autre. C'est comme une cascade qui tombe sur une série de chutes abruptes. Le projet passe à l'étape suivante uniquement lorsque l'étape actuelle est correcte et complète. Cela signifie que vous ne pouvez jamais revenir à une étape précédente.

Les étapes du modèle traditionnel en cascade comprennent : la collecte des exigences - l'analyse et la planification - la conception - le développement - les tests - le déploiement. Avec le modèle en cascade, l'objectif final est défini tôt et l'ensemble du processus est présenté du début à la fin. En surface, cela rend le projet plus clair et organisé.

Cependant, il n'est pas difficile de voir les défauts du modèle en cascade. D'une part, sa structure est très rigide. Si vous rencontrez un problème majeur ou décidez d'élargir la portée du projet, vous devrez peut-être tout recommencer. Il n'offre pas non plus de marge de manœuvre pour effectuer des mises à jour ou des révisions en fonction des commentaires des clients et des utilisateurs.

De plus, les tests ne sont effectués qu'une fois le projet presque terminé. Les membres du projet ne peuvent pas être sûrs d’avoir un produit fonctionnel viable avant très tard dans le cycle de vie. Cela rend le modèle en cascade très risqué.

Le principal problème du modèle de développement en cascade ? Il ne reflète pas la manière dont la plupart des gens terminent leur travail dans la réalité. En décourageant l’exploration, l’expérimentation et l’itération, le modèle en cascade se révèle très imparfait.

Si la méthode en cascade peut bien fonctionner pour l’ingénierie physique, la fabrication et la production, le développement de logiciels est différent. Il est plus facile de décomposer et de reconstruire complètement des parties d’un produit logiciel qu’un produit physique. Comme l’équipe d’ingénierie possède la base de code, elle peut facilement apporter des modifications radicales au produit.

La plupart des parties prenantes ont du mal à saisir cette réalité. Pour eux, cela ressemble à un constructeur automobile qui remplace les moteurs des voitures actuellement en circulation.

Cependant, la meilleure façon de construire un système logiciel est très différente de la meilleure façon de construire un système physique. Les logiciels peuvent s’adapter à mesure que les besoins changent et que des défis surviennent si vous suivez le bon processus.

Le modèle de développement agile


En partie pour protester contre la rigidité du modèle en cascade, 17 développeurs de logiciels ont publié en 2001 un « manifeste agile ». Le document fournissait un ensemble de valeurs et de principes que les auteurs souhaitaient mettre en avant pour le développement de produits. Les auteurs du manifeste exprimaient notamment leurs préférences pour :

People and interactions over processes and tools - Working software over comprehensive documentation -  Working with customers instead of arguing over contracts - Réagir au changement plutôt que de suivre un plan.

Ces idées sont devenues la base de la méthode de développement Agile, que nous avons adoptée ici chez Very. « Agile » (comme l’appellent ses praticiens) privilégie la flexibilité, la rapidité, le travail avec des équipes interfonctionnelles et l’amélioration continue par le biais d’un développement itératif.

Agile divise le processus de développement en périodes de temps distinctes appelées sprints, qui durent généralement entre 1 et 4 semaines. Chaque membre de l’équipe a un ensemble de tâches à accomplir pendant le sprint. Ces tâches sont déléguées lors d’une réunion de planification au début du sprint.

De plus, les membres de l’équipe organisent des « réunions debout » quotidiennes pour discuter de leurs progrès et réfléchir à des solutions aux problèmes qu’ils rencontrent. Ces changements dans la façon dont le développement de produits est pratiqué ont un effet radical sur les résultats finaux.

Contrairement à la méthode en cascade, le développement Agile est conçu pour résister au changement et l’accepte même. Agile produit un produit fonctionnel le plus rapidement possible et met fortement l’accent sur les tests et les retours d’expérience des utilisateurs.

Pourquoi Agile et IoT sont parfaits ensemble


Agile, plutôt que Waterfall, est le choix évident pour le développement de produits IoT. En particulier, Agile est le modèle de développement privilégié lors de la création d’un produit minimum viable (MVP). Le MVP est une preuve de concept initiale qui démontre la viabilité de votre idée. Il fournit une caisse de résonance pour les commentaires des utilisateurs et des clients.

Pour revenir à une analogie précédente, supposons que vous souhaitiez concevoir et fabriquer une voiture à partir de zéro. Les modèles de développement traditionnels vous obligeraient à concevoir et à fabriquer des composants tels que le moteur et le châssis en parallèle. Cependant, cette méthode ne fournirait un produit fonctionnel que très tard dans le processus.

Réfléchissez plutôt à la raison pour laquelle vous construisez réellement la voiture : pour avoir un moyen de transport d’un endroit à un autre.

Vous commenceriez par créer un MVP avec la capacité de transporter des utilisateurs (par exemple un skateboard électrique). Ensuite, vous ajouteriez d’autres fonctionnalités, en créant des produits intermédiaires en cours de route (par exemple des scooters et des motos).

Bien que cela semble coûteux et chronophage avec des produits physiques, c’est le moyen le plus efficace de créer une solution IoT. Oui, les solutions IoT impliquent des produits physiques. Cependant, une solution IoT appropriée est indépendante de tout matériel spécifique. Pour cette raison, l’IoT fonctionne davantage comme un système logiciel.

Lorsque vous planifiez une solution IoT, examinez votre problème dans la perspective la plus large possible. Vous vous rendrez probablement compte qu’un matériel simple et de base répondra à votre besoin immédiat. Gardez à l’esprit que cela ne fonctionnera que si le logiciel fonctionne correctement et offre l’expérience utilisateur idéale.

Une fois l’infrastructure logicielle appropriée en place, le remplacement de nouvelles conceptions matérielles sera simple. Cela permet des cycles de sortie de produits plus rapides. L’un des inconvénients du développement agile est qu’il est difficile à mettre en œuvre correctement, mais l’effort en vaut largement le coût. Ci-dessous, nous allons passer en revue les 10 étapes clés d’une version Agile IoT :

1. Validations et contraintes


Validez vos hypothèses sur le projet et passez en revue les contraintes auxquelles vous serez confronté (budget, calendrier, personnel, etc.).

2. Feuille de route de développement du produit


Élaborez un plan à partir de zéro. Le résultat final doit être un plan qui capture à la fois les besoins immédiats et une vision à long terme pour le produit IoT.

3. Réduction des risques liés au matériel


Cette étape est celle où le véritable développement commence. L’objectif est d’éliminer les inconnues autour de la conception du matériel. Répondez à des questions telles que :

Est-il possible de mesurer/contrôler X avec un niveau de précision acceptable ? Est-il possible de recevoir une communication sans fil dans l’environnement d’exploitation prévu ? Le coût de nomenclature prévu est-il réalisable d’un point de vue budgétaire ?

4. Imitation


Le nom de cette étape a une double signification.

Pour le matériel, vous devez disposer d’un prototype matériel brut qui peut imiter de manière fiable la manière dont vous souhaitez que votre produit final fonctionne. Pensez aux câbles de connexion et à la carte de développement.

Lorsque vous choisissez votre carte de développement, choisissez le processeur/microcontrôleur qui sera utilisé dans votre produit de production. Sinon, assurez-vous que vous êtes capable de porter votre micrologiciel sur différents chipsets.

Pour les logiciels (Web et/ou mobiles), vous devez commencer à créer les composants critiques autour de l'approvisionnement de l'appareil, de l'authentification, des mises à jour du micrologiciel (nécessaires pour la sécurité du micrologiciel IoT) et de la transmission de messages de base entre le backend Web et l'appareil. Votre équipe logicielle doit « imiter » les interactions avec l'appareil dans ses outils de test logiciel. Cela lui permettra de procéder sans appareil physique.

5. Prototype complet


L'objectif de cette étape est de connecter entièrement votre prototype au Web. Vous devez pouvoir envoyer et recevoir des données de votre appareil, y compris les mises à jour de sécurité du micrologiciel IoT. Votre micrologiciel et votre logiciel doivent être prêts pour la production (mais probablement pas complets en fonctionnalités) à ce stade.

6. Micro-fabrication


Au cours de cette étape, vous allez créer des circuits imprimés personnalisés et des boîtiers/composants mécaniques imprimés en 3D. Vous pouvez ensuite les distribuer à votre équipe logicielle moins experte en matériel, pour permettre des tests avec du matériel réel.

Cependant, ne permettez pas à l'équipe logicielle d'abandonner l'idée d'une simulation matérielle appropriée pour les tests automatisés. Une fois que vous vous sentez à l'aise pour donner l'appareil aux testeurs bêta, vous êtes prêt à passer à autre chose.

7. Premier cycle de fabrication


Ce premier cycle de fabrication créera environ 100 appareils que vous pourrez distribuer à un groupe pilote de testeurs.

Au cours de cette étape, vous devriez recevoir des commentaires que vous pourrez utiliser pour apporter des améliorations itératives. Si vous devez apporter des modifications matérielles à ce stade, vous pouvez suspendre l'équipe logicielle. Vous pouvez également leur demander de continuer à travailler sur des fonctionnalités logicielles plus avancées (non MVP).

8. Cycle de fabrication réel


Cette étape produira 1 000 appareils ou plus. L'équipe logicielle doit avoir terminé tout logiciel de provisionnement ou d'étalonnage personnalisé requis par le fabricant. Avec un groupe sain d'adopteurs précoces, vous pouvez obtenir des commentaires sur le processus de formation et d'intégration des utilisateurs.

9. Lancement de la fabrication sur le marché


Ça y est, vous avez terminé votre premier lancement de produit IoT ! Plus vous fabriquez de produits, plus vous pouvez bénéficier d'économies d'échelle. Votre logiciel est à toute épreuve et votre matériel a trouvé le bon équilibre entre coût et fonctionnalité.

Alors que votre entreprise tire profit des ventes de votre premier lot d'appareils, vous pouvez commencer à développer de nouveaux produits matériels. Ces produits se connecteront facilement à votre système IoT.

10. Simulation avec la technologie des jumeaux numériques


Qu'est-ce qu'un jumeau numérique dans l'IoT ?

Les « jumeaux numériques » sont des reproductions virtuelles d'un objet physique que vous pouvez utiliser pour les tests et les expérimentations. La création d'un jumeau numérique peut vous aider à recueillir des commentaires plus précis sur les produits.

Elle peut également réduire le coût de possession et de maintenance d'un appareil sur toute la durée de vie. Si vos produits IoT sont plus complexes qu'un interrupteur ou un simple capteur, envisagez de rechercher des offres de jumeaux numériques.

Leave a Reply

Your email address will not be published. Required fields are marked *