Methode scrum
La méthode s'appuie sur le découpage d'un projet en boîtes de temps, nommés « sprints ». Les sprints peuvent durer entre quelques heures et un mois (avec une préférence pour deux semaines). Chaque sprint commence par une estimation suivie d'une planification opérationnelle. Le sprint se termine par une démonstration de ce qui a été achevé et contribue à augmenter la valeur d'affaires du produit. Avant de démarrer un nouveau sprint, l'équipe réalise une rétrospective : elle analyse ce qui s'est passé durant ce sprint, afin de s'améliorer pour le prochain. L'adaptation et la réactivité de l'équipe de développement est facilitée par son auto-organisation.
La méthode Scrum ne couvre volontairement aucune technique d'ingénierie du logiciel. Pour l'utiliser afin de développer une application, il est nécessaire de la compléter avec des pratiques de qualité du logiciel. Par exemple, on pourra utiliser des pratiques issues de l'Extreme Programming, de la phase de Construction structurée de la méthode RAD, ou un ensemble de pratiques de qualité du logiciel émergent du vécu de l'équipe projet.
Scrum est basé sur la conviction que le développement logiciel est une activité par nature non-déterministe et que l'ensemble des activités de réalisation d'un projet complexe ne peut être anticipé et planifié longtemps à l'avance3, ce en quoi Scrum s'oppose aux démarches prédictives telles que le cycle en V. Pour répondre à cette imprédictibilité, Scrum propose un modèle de contrôle de processus4 basé sur l'empirisme (Voir « piliers de Scrum »), via l'adaptation continue aux conditions réelles de l'activité et une réaction rapide aux