Si elle est réputée pour être fastidieuse, voire ennuyeuse,
la période de conception d'une application n'en est pas moins
nécessaire, et doit être approchée avec attention.
En effet, cette phase d'un projet de développement consiste non
seulement à visualiser la prochaine réalisation,
mais également (surtout ?) la faisabilité même d'une
partie du projet, si ce n'est du projet entier. Il n'est
pas rare qu'une étude préparatoire soit lancée et conclue finalement que l'objectif est inatteignable avec les
ressources disponibles : sans cette étude, l'équipe de développement allait dans le mur.
A l'inverse, tous les projets n' ont pas besoin d'une phase de conception : tout dépend de l'ampleur des développements. Une règle ? Dès que l'équipe
dépasse les trois personnes, disposer d'un document central,
étudié et validé, reste la meilleure manière d'éviter l'échec.
En matière de conception, il n'existe
pas vraiment de recette-miracle, chaque projet nécessitant le plus
souvent une approche neuve. Mais il faut construire sur l'expérience
passée, ce qui attire l'attention sur un ensemble de points-clés :
1) Concevoir du plus général au plus
précis
L'objectif de la conception : savoir où l'on met les
pieds ! En ce sens, il est nécessaire de définir l'application
à la fois pièce par pièce et dans son ensemble.
On commencera par établir ce que l'on veut accomplir
avec l'application, puis comment dans les grandes lignes, puis comment dans le détail... Pour
un projet Objet, cela signifie concevoir d'abord l'aspect
global du logiciel, puis les packages, les classes de chaque
package, les données et routines relatives à chaque classe, etc.
2) Concevoir de manière linéaire
Au lancement d'un projet, il est facile de
vouloir penser à tout, et d'essayer d'anticiper tous les désirs du client/de
l'utilisateur... En définitive, la conception devient alors inutilement
longue, compliquée, et donc difficile à
modifier.
L'équipe doit à l'inverse ne garder en tête
que ce qui est primordial. Le superflu ou le "ça serait bien si" ne
devraient être décidés qu'après mûre réfléxion, et une fois
que l'essentiel a correctement été défini.
Et il faut
respecter les niveaux de précision : si une partie de l'application
est définie jusqu'au niveau des classes, il serait absurde qu'une autre soit définie au niveau des packages
par exemple.
3) Ouvrir d'un côté, fermer de l'autre
La conception, en validant le champ des possibles, permet
d'ouvrir des portes. Les fondations solides qu'elle
fournit aux développeurs les autorisent à construire plus
rapidement et de manière plus assurée, et à étendre l'application
sans lui faire perdre sa logique d'ensemble.
Mais en définissant le travail à accomplir, la phase de conception
sert également à compartimenter les issues, et plus généralement
à réduire le champ des possibles, c'est à dire s'assurer clairement
que la solution envisagée est la meilleure pour
le projet.
4) Ne pas hésiter à recommencer
Concevoir est la première phase du projet logiciel : se tromper est
attendu, pourvu que les décisions finales de l'étape ne soient pas remises en cause lors d'une phase ultérieure. Cer une erreur découverte
en pleine phase de programmation remettrait potentiellement
en cause une partie, voire l'ensemble de la phase de conception,
au risque de la rendre rapidement caduque. Il est donc important
de travailler cette première phase avec serénité,
afin de saisir d'entrée de jeu toutes les facettes possibles
offertes par le projet.
|
Forum |
|
Réagissez
dans les forums
de JDN Développeurs
|
5) Savoir mettre fin à sa conception
Vient un moment où il faut passer à l'action. Le travail du
concepteur ne consiste pas seulement à réaliser une planification
utile des phases suivantes (développement, test...), mais aussi à trouver le juste équilibre entre conception
et temps de développement. Le concepteur ne doit donc pas
laisser cette première phase prendre le pas sur l'ensemble du
projet : même si cela peut sembler contradictoire avec le point précédent, il faut donc
accepter qu'une conception ne soit pas totalement exhaustive,
et s'en remettre à la pratique pour trouver les solutions définitives. |