La philosophie
L'informatique met souvent en oeuvre une multitude d'élément simple
qui une fois interconnectés deviennent compliqués. Pour éviter les
problèmes la philosophie KISS : Keep It Simple Stupid est de
mise.
Le seul objectif qui importe est : «le client doit avoir un
produit conforme à ses
attentes livré dans les délais, et il doit pouvoir être
autonome avec.» Les points suivants
sont nécessaires pour atteindre un tel objectif.
L'ordre de mission
Il doit être écrit de préférence en langage usuel et indiquer le but à atteindre. Il doit stipuler les priorités (sécurités, coût, qualité, maintenabilité, vitesse) et les compromis qui peuvent être faits, ainsi que le périmètre géographique et opérationnel d'intervention.Les jalons
Connaître les moments où l'on sait que l'on a terminé une partie du projet, c'est estimer le bon déroulement d'un projet. Un jalon c'est par exemple de dire 50% du projet est atteint quand telle fonctionnalité est achevée. Cela permet à tout le monde de savoir si nous sommes dans les délais, et de savoir quand il faut ajuster le tir.Cahier de recettage
Un cahier de recettage (une liste de question de type oui/non concernant des points qui doivent être validés) permet à tout le monde de savoir si la mission est bien terminée. Cela donne au fournisseur la satisfaction du travail terminé. Pour le client cela lui apporte la tranquilité d'esprit. Il n'a pas besoin d'être extensif, il doit contenir l'essentiel.Le chiffrage
La plupart des erreurs majeurs en informatique concernent le chiffrage. Il s'agit assez souvent d'une mauvaise conception de l'informatique. L'informatique n'est pas un métier industriel, c'est un art qui nécessite créativité et intuition. Le chiffrage se fait surtout en se basant sur l'expérience. Pour cela quelques points sont à garder à l'esprit :Quelques repères :
| phase | pourcentage en temps par rapport à la phase de développement |
|---|---|
| Conception | 15% |
| Programmation | 20% |
| Documentation | 15% |
| Deboggage | 50% |
| Maintenance | 100% |
| Intégration système | 300% |
Conception, programmation, documentation et déboguage constituent la phase de développement. Ces ordres de grandeurs sont issues des références bibliographiques citées ci dessous. La programmation qui est souvent confondue avec le développement ne représente qu'une part minime du total des coûts liés au développement d'un logiciel : si un stagiaire fait un programme qui marche en 1 semaine, son coût total pour le rendre utilisable est donc de 10 semaine homme s'il n'a pas besoin d'être «packagé» (soit environ 25 000 Euros à 500 Euros HT par jour).
L'hypothèse optimiste
L'hypothèse classique qui est faite en chiffrage est d'imaginer que tout se passera bien. C'est rarement le cas ; un lien qui bagotte, une machine pas encore livrée ou non-conforme, tous ces petits incidents de la vie courante ont un impact sur le temps de développement et d'intégration (facteur 2).Cycle de développement
Il n'y a pas de solutions universelles, cependant le modèle en spirale convient plutôt bien pour les projets de tailles moyennes à petites, ou devant être livrés rapidement : on ne construit pas le logiciel, on le fait croître en faisant d'incessant aller retour entre le développement et les besoins clients ; ça évite de perséverer dans d'éventuelles mauvaises voies.Le théorème de Brooks
Quel est le premier réflexe quand il y a du retard ?Rajouter des ressources. Le coûts liés à la communication supplémentaire ne fera que rendre le projet encore plus en retard.
Références bibliographiques
- comment gérer un projet logiciel libre ? par Benjamin Mako Hill ;
- Linux est-il un modèle d'organisation innovant ? ;
- le mythe du mois-homme par Fred Brooks, un essai de référence sur le développement logiciel ;
- Code Complete par Steve Mc Connell, qui peut être considéré comme l'approfondissement du précédent ouvrage ;