Présentation faite dans le cadre de l'agile tour 2015 à Montréal qui présente les aspects du développement agile dans un environnement d'objets connectés (Internet of Things - IOT)
5. QU’EST-CE QUE L’AGILITÉ
• Les individus et leurs
interactions plus que les
processus et les outils
• Des logiciels opérationnels plus
qu’une documentation exhaustive
• La collaboration avec les
clients plus que la négociation
contractuelle
• L’adaptation au changement plus
que le suivi d’un plan
Manifeste agile (2001)
6. QU’EST-CE QUE L’INTERNET DES OBJETS
• Des appareils ou des
objets
• Connectés à internet
• Capables de collecter,
transmettre des données
• Être contrôlés via cette
connexion internet.
7. QU’EST-CE QUE L’INTERNET DES OBJETS
• Ca s’en vient! (ou c’est déjà là!)
– Omniprésences des solutions SOC
– En 2015: 4.9 milliards d’objets
connectés..
– En 2020: 50 milliards.
– Google a acheté le fabricant de
thermostats intelligentsNest Labs,
pour $3.2 milliards
– Samsung a acheté l’entreprise de
domotique SmartThings pour $200 millions
– En 2020: 250 millions de véhicules
connectés à Internet.
– Le marché global des technologies
« wearable » a cru de 223% en 2015
• Fitbit a livré 4.4 millions d’appareils
• Apple a vendu 2.5 millions de
AppleWatches.
8. QU’EST-CE QUE L’INTERNET DES OBJETS
• De plus en plus
d’exemples
– Nabaztagtag
– Caméra connectée à Facebook
– AppleWatch
– Bixi
– Agriculture
14. SPÉCIFICITÉS DU DÉVELOPPEMENT IOT: UN SYSTÈME
• La source du problème
n’est peut-être pas
logicielle.
• La solution au problème
n’est peut-être pas là où
le problème est.
• Problème inhérent au
système
15. SPÉCIFICITÉS DU DÉVELOPPEMENT IOT: UN MONDE RÉEL
• Usure
• Tolérances
• Mécanique
• Capteurs
• Interférences
• Température, dilatation
thermique
• Vibrations
16. SPÉCIFICITÉS DU DÉVELOPPEMENT IOT:
R COMME RECHERCHE
• Unité « morte » ou
défectueuse.
• Quasi impossible à
« débugger »
• Unités défectueuses
durant développement
• Difficile à estimer…
17. SPÉCIFICITÉS DU DÉVELOPPEMENT IOT:
DES OBJETS À FABRIQUER
• Compromis différents à
faire
• Normalisation
• Certification
• Mise à jour difficile ou
impossible
18. SPÉCIFICITÉS DU DÉVELOPPEMENT IOT:
TECHNOLOGIES PLUS PRIMITIVES
• Pas toujours de
« debugger »
• Analyse post-mortem
difficile
• Accès a une librairie
standard?
• Outils « exotiques » donc
difficulté d’utiliser des
outils communs.
– Manière pour les vendeurs de
faire un lock-in.
19. LES DÉFIS DE L’AGILITÉ EN IOT
DES CYCLE LONG ET COUTEUX
• Une « Itération »
(Objet + Électonique + Firmware) =
$$$$$$ + Looooong
– Solution: Faire beaucoup de
mini-itérations
– Utiliser des technologies
de prototypage
20. LES DÉFIS DE L’AGILITÉ EN IOT
IT’S ONLY OVER ONCE IT REALLY OVER
• Phase de certification en
fin de développement
– Plus de changements après
– Peut nécessiter des
adaptations
– $$$
21. LES DÉFIS DE L’AGILITÉ EN IOT
DU LOGICIEL ET DE LA DOCUMENTATION
• Certains organisme de
certifications exigent de
la documentation de design
– Y penser dès le début
– En faire des livrables aux
sprints
– En générer le plus possible à
partir des artefacts
existants (Traçabilité)
– Contrôler dans
l’environnement de CI
22. LES DÉFIS DE L’AGILITÉ EN IOT
ENVIRONNEMENT HÉTÉROGÈNE
• Un code smell de
« Shotgun surgery »?
– Envisager la génération de
code
23. PRATIQUES AGILES
• Intégration continue
• Essentiel
• Virtualiser
• Cross compilation
• Accès à du hardware?
• Oublier une solution dans le
cloud…
• Faire des bancs des tests
automatisés
• Niveau de tests?
– Comment tester un accéléromètre?
24. PRATIQUES AGILES
• Tests unitaires
– Virtualiser
– Cross compilation
– Doit être planifié dès le
début.
• Test intégrations
– Virtualiser
– Spécification (ou
architecture) exécutable
– Scripts de scénarios
hétérogènes
26. PRATIQUES AGILES
ORGANISATION DES SPRINTS
• Besoin du hardware,
disponibilité limité
• Utilisation de « tiger
team » pour cerner certains
problèmes coriaces
• Limité au software. Besoin
de planifier interactions
avec autres groupes
• Démo sur plateforme PC si
hardware pas encore
disponible
27. UX MOCKING
• Besoin d’avoir du feedback
rapide
• Peut être fait très
rapidement sur un ordinateur
28. CONCLUSION
• Le monde IOT est un monde
où l’agilité ne va pas de
soi
• La clé du succès repose
dans la capacité à exécuter
le code de l’objet à
l’extérieur de celui-ci
• Un arrimage périodique avec
le monde moins agile est
souhaitable
29. EN TERMINANT
• Attention à la sécurité
– Chrysler
– Smart Rifle
– Routeurs compromis
– Firmware encrypté