J'ai deux problèmes avec Scrum dans les systèmes embarqués. Premièrement, il y a de nombreuses tâches à accomplir, en particulier dans les premiers stades, qui ne sont pas démontrables. Nous avons commencé avec une carte de développement, pas de système d'exploitation, pas d'affichage, pas de communication série, etc. Nous n'avions pas notre écran pour six sprints.
Les quatre premiers sprints ont été:
- Obtenir le RTOS et en cours d' exécution
- Création de tâches d'écriture de pilotes réseau et série
- Écriture de routines d'interruption pour les boutons, la communication, etc.
- Écriture des classes et méthodes de la base de données primaire
- Écrire un menu de débogage série
La plupart de ces tâches ne conviennent pas bien aux user stories. En fait, la seule interface dans l'ensemble du système était le menu de débogage série, intégré au sprint 3, il n'y avait donc rien à démontrer à la fin des sprints. Même le menu série était destiné à un usage interne et non à un utilisateur final. Néanmoins, je souhaite toujours suivre et gérer ces activités de développement via Scrum.
Nous avons fini par écrire des phrases "user stories" comme "En tant que développeur ...", ce qui ne me satisfait pas, mais en utilisant Target Process (www.targetprocess.com), il n'y a pas de concept d'élément de backlog qui est une tâche ou une corvée.
Deuxièmement, comment gérez-vous les versions et les tests? C'est une vraie douleur pour nous parce que les testeurs n'ont pas les débogueurs matériels, nous devons donc construire des versions flash du code et les graver sur leurs cartes de développement pour tester. Les testeurs ne sont pas techniquement aussi pointus que les développeurs et nécessitent souvent beaucoup de soutien pour faire fonctionner les choses dans les premiers stades (réinitialisation de la carte, connexion de la communication série, etc.), ou même pour comprendre la sortie.
Enfin, en ce qui concerne la définition de fait, un sprint ne peut pas être complet tant que toutes les histoires ne sont pas terminées. Toutes les histoires ne sont pas complètes tant qu'elles n'ont pas été vérifiées par les testeurs. Il n'y a aucun moyen d'éviter de "voler" le temps du développeur à donner aux testeurs. En d'autres termes, si les trois dernières user stories du sprint prendront cinq jours à tester, elles doivent être codées et testées à l'unité cinq jours avant la fin du sprint. Que doit faire le développeur? Arrête de travailler?
Je suis facétieux, mais c'est un vrai problème d'essayer de se conformer aux règles. Maintenant, je suis d'accord pour plier les règles, mais le problème que j'ai est que cela fout toutes mes mesures de burndown si je ne peux pas marquer les choses comme avant qu'elles ne soient testées.
J'adorerais savoir comment les autres ont géré ces situations.