Développement efficace d'application logicielle

27
© CRIM 2008 1 Développement efficace d'application logicielle Présenté par Sylvie Trudel Conseillère senior, CRIM Présenté à Montréal, le 14 mai 2008 Présenté à Québec, le 21 mai 2008 Midi-conférences du CRIM

description

- Efficacité et productivité- Taille du logiciel- Résultats de productivité- Pratiques observablesPrésenté le 14 mai 2008 à une midi-conférence du CRIM

Transcript of Développement efficace d'application logicielle

Page 1: Développement efficace d'application logicielle

© CRIM 2008 1

Développement efficace d'application logicielle

Présenté par Sylvie TrudelConseillère senior, CRIM

Présenté à Montréal, le 14 mai 2008Présenté à Québec, le 21 mai 2008Midi-conférences du CRIM

Page 2: Développement efficace d'application logicielle

© CRIM 2008 2

Contenu

Efficacité et productivité Taille du logiciel Résultats de productivité Pratiques observables Références

Page 3: Développement efficace d'application logicielle

© CRIM 2008 3

Efficacité et productivité

Évoluer du qualitatif au quantitatif

Page 4: Développement efficace d'application logicielle

© CRIM 2008 4

Indicateurs de performance

Date de livraison

Coûts/effort

Productivité

Qualité/contenu

Page 5: Développement efficace d'application logicielle

© CRIM 2008 5

Efficacité et productivité : concepts

Productivité finale = Sorties / Entrées

Coût unitaire = Entrées / Sorties

Maturité du processus de gestion : Qualitatif Quantitatif

ProcessusEntrées Sorties

Ressources

Page 6: Développement efficace d'application logicielle

© CRIM 2008 6

Productivité de projet logiciel

Forte corrélation entre: Taille et effort Taille et temps écoulé

Productivité finale = Taille / Effort

Coût unitaire = Effort / Taille Taux de livraison = Taille / Temps

Effort

Taille

Temps

Taille

Page 7: Développement efficace d'application logicielle

© CRIM 2008 7

Estimation de projet logiciel : concepts

Estimer l’effort de base

Taille Effort préliminaire

Estimer les risques

Risques Effort contingenté

Ajouter les autres coûts

Autres coûts Coûts estimés

Page 8: Développement efficace d'application logicielle

© CRIM 2008 8

Taille du logiciel

De la taille physique à la taille fonctionnelle

Page 9: Développement efficace d'application logicielle

© CRIM 2008 9

Historique de la taille fonctionnelle

1979 ‘84 ‘86 ‘90 ‘94 ‘99 ‘04‘97‘91 ‘98 ‘03‘02 ‘05 ‘07

Avant 1979, mesure de la taille physique avec le # lignes de code

Albrecht, 1ère méthode de mesure de taille fonctionnelle

Formation d’IFPUG

Albrecht v2,appellation des

« Points de fonction »

Symons Mark II

Function Points

IFPUG v3.0

IFPUG v4.0

Abran propose les FFP comme

extension à IFPUG

IFPUG v4.1

IFPUG: International Function Point Users GroupCOSMIC: Common Software Measurement International Consortium

Mark IIISO 20968

Formation de

COSMIC

COSMIC v2.2ISO 19761

IFPUG v4.2ISO 20926

NESMA v2.1ISO 24570

COSMIC v3.0

Page 10: Développement efficace d'application logicielle

© CRIM 2008 10

Taille fonctionnelle du logiciel

Quantification de la taille du logiciel à partir des exigences fonctionnelles de l’utilisateur Exigences = spécifications comportement

exemple: cas d’utilisation Excluant exigences techniques et de qualité

c’est-à-dire non fonctionnelles Se mesure tôt dans le cycle logiciel

Page 11: Développement efficace d'application logicielle

© CRIM 2008 11

Normes ISO/IEC relatives à la mesure de taille fonctionnelle

Cadre normatif de basedes mesures de taille fonctionnelle

14143-1Définition des

concepts

14143-2Évaluation de la conformité avec

14143-1

14143-3Vérification des

méthodes

14143-4Modèles de référence

14143-5Détermination des

domaines fonctionnels

14143-6Guide de sélection

de méthode

Processus de mesure15939

Processus de mesure en génie logiciel

Méthodes de mesurede taille fonctionnelles

19761

COSMIC

20926

IFPUG 4.1

20968

Mark II

24570

NESMA

Page 12: Développement efficace d'application logicielle

© CRIM 2008 12

La méthode COSMIC

Nouvelle génération de mesure de taille fonctionnelle

Cofondée par des québécois Norme nationale au Japon Traduit ou en voie de l’être dans 12 langues Guide de mesure gratuit en français (v2.2)

http://www.gelog.etsmtl.ca/cosmic-ffp/manual.html Unité de mesure: pfc (point de fonction COSMIC)

Page 13: Développement efficace d'application logicielle

© CRIM 2008 13

Les mouvements de données

Données

Processus fonctionnel 1

Logiciel à mesurer Matériel de stockage

Écritures (C)

Lectures (L)

Processus fonctionnel 2

Processus fonctionnel n

Acteurs

Utilisateurs ou autres systèmes

Matériel d’entrée/

sortie

Entrées (E)

Sorties (S)

Entrées (E)

Sorties (S)

Fro

ntiè

re‘Interfaces’ ‘Infrastructure’

Page 14: Développement efficace d'application logicielle

© CRIM 2008 14

Autres indicateurs avec la taille

Densité des défauts= # anomalies / taille

Coût relatif des correctifs= effort correctif /taille

Facteur d’échelle préliminaire/final= taille fin / taille début

Taille des modifications= valeur absolue de la taille affectée

Page 15: Développement efficace d'application logicielle

© CRIM 2008 15

Résultats de productivité

Quelques exemples québécois, canadiens et internationaux

Page 16: Développement efficace d'application logicielle

© CRIM 2008 16

Exemples de mesures de productivité: en heures/pfc

0

10

20

30

40

50

60

70

80

A B C D E F

1,5 26

1212

40

77

Organisations québécoises

4,68,5

16,6

Q1 Q3Médiane

BD internationale de projets ISBSG

Projets VB et VB.NET

Page 17: Développement efficace d'application logicielle

© CRIM 2008 17

Corollaires

Augmentation de la productivité chez toutes les organisations qui la mesurent Certaines l’ont triplé: 6 h/pfc 2 h/pfc

Identification des ambiguïtés aux exigences fonctionnelles Réduction importante du travail à refaire

Comparaison de productivité avec des projets de même nature ailleurs dans le monde

Permettre de quantifier l’amélioration des processus

Page 18: Développement efficace d'application logicielle

© CRIM 2008 18

Pratiques observables

Entre le noir et le blanc, il y a toutes les teintes de gris…

Page 19: Développement efficace d'application logicielle

© CRIM 2008 19

Préoccupations et directives

Budget Date de livraison

Qualité Contenu à valeur ajoutée Productivité

Page 20: Développement efficace d'application logicielle

© CRIM 2008 20

Processus et outils

Processus en cascades Description textuelle

lourde Outils disparates, peu

intégrés

Processus itératif Description graphique

légère (BPMN, TQM, etc) Outils intégrés de

collaboration

Architecture

Analyse

Design

Program.

Test

Architecture

Analyse Design

Program.Test

Livraison

Page 21: Développement efficace d'application logicielle

© CRIM 2008 21

Méthodologie et documentation

Méthodologie de 20 ans+ Améliorations rares,

ponctuelles Documentation lourde,

dogmatique, peu gérée Bilans de projet

comptables

Méthodologie Agile (Scrum, TDD)

Améliorations mensuelles Documentation réfléchie,

améliorée et gérée Rétrospectives régulières

Architecture

Analyse

Design

Program.

Test

Page 22: Développement efficace d'application logicielle

© CRIM 2008 22

Équipes et leadership

Structure hiérarchique et/ou matricielle

Groupe de développement éloigné des utilisateurs

Peu d’importance sur les connaissances du domaine

Spécialistes en héros Rôles et responsabilités

flous Chevauchements

Structure d’équipes autogérées

Utilisateurs intégrés à l’équipe de développement

Importance accordée aux connaissances du domaine

Généralistes en équipe Rôles et responsabilités

clairs Définis et appliqués

Page 23: Développement efficace d'application logicielle

© CRIM 2008 23

Valeurs

Secrets et mensonges Respect des budgets Individualisme et CYA Traditionalisme

Transparence Respect des compétences Travail d’équipe Innovation

Page 24: Développement efficace d'application logicielle

© CRIM 2008 24

Gestion de projet et gouvernance

Gros projets non morcelés Tendance à regrouper des

petits projets en projets plus gros

Favoriser des phases de plus de 6 mois

Mécanismes décisionnels en comités de plus de 8 personnes

Information mal communiquée au personnel

Suivis mensuels Gouvernance déficiente ou

absente

Gros projets morcelés Pour obtenir des projets de

taille gérable plus facilement Favoriser la livraison itérative

courte (2-4 sem) Mécanismes décisionnels

alignés sur l’imputabilité des rôles

Personnel informé chaque jour Suivis quotidiens

Gouvernance amorcée ou assurée

Architecture planifiée et maintenue

Page 25: Développement efficace d'application logicielle

© CRIM 2008 25

Exigences, tests et assurance qualité

Architecture et analyse Financement global du

projet fixé avant de rédiger les exigences

Exigences fonctionnelles et solution organique entremêlées

Tests escamotés Effort dépensé sur les

devis d’essais mais pas suffisant sur l’exécution

Environnement insuffisants

Assurance qualité = tests

Phase de développement d’exigences

Rédaction budgétée séparément, souvent à l’heure

Exigences fonctionnelles exprimées dans le langage des utilisateurs

Fonctionnalités alignées sur les processus d’affaires

Tests systématiques Intégration continue Environnement contrôlé

Assurance qualité Processus appliqué!

Page 26: Développement efficace d'application logicielle

© CRIM 2008 26

Références

Page 27: Développement efficace d'application logicielle

© CRIM 2008 27

Références

Méthode COSMIC – ISO 19761http://www.gelog.etsmtl.ca/cosmic-ffp/ Manuel de mesure en français et autres langues Articles, présentations et études de cas

Base de données internationale de projets ISBSG*

http://www.isbsg.org/ Normes ISO http://www.iso.org

*ISBSG: International Software Benchmarking Standards Group