title:      Étapes de développement d&#39;une application web
slug:       etapes-de-developpement-d-une-application-web
date:       2007-01-12 22:00:15
type:       post
vignette:   
contextual_title1:  Le développement web se porte bien
contextual_url1:    20061130-le-developpement-web-se-porte-bien
contextual_title2:  ★ Résolutions : rediriger, économiser et débattre
contextual_url2:    20120131-resolutions-rediriger-economiser-et-debattre
contextual_title3:  ★ Résolutions : découvrir, concrétiser et transmettre
contextual_url3:    20110112-resolutions-decouvrir-concretiser-et-transmettre

<p>Il est temps que je vous dévoile un peu ce que je vais faire ces prochains mois. Je ne suis probablement pas habilité à vous livrer les détails donc je vais rester assez évasif (pour le moment ?) mais l'objectif est de développer une application web qui sera utilisée dans les laboratoires. C'est un domaine très vaste donc les contraintes de flexibilité sont énormes, chaque laboratoire ayant son propre mode de fonctionnement. C'est aussi ce qui rend cette aventure passionnante :-).</p>

<p>Puisque je pars quasiment de rien, il y a bien une application existante en Java mais nous avons décidé de réaliser une nouvelle application plutôt qu'une refonte, il va falloir repartir de zéro. Voici les étapes retenues pour l'avant projet&nbsp;:</p>

<ul>
<li><strong>capitalisation de l'expérience acquise</strong>&nbsp;: même si l'écriture est «&nbsp;from scratch », il ne faut pas sous-estimer le travail déjà réalisé et en tirer les bonnes conclusions relatives  à chacune des étapes de la conception, de la vente, de l'intégration, de l'utilisation,... Il s'agit de faire un bilan pour pouvoir ensuite décider des orientations à chacun de ces niveaux.</li>
<li><strong>définition du logiciel</strong>&nbsp;: l'étape la plus importante. À partir de la capitalisation, arriver à établir les objectifs du logiciel à chacun des niveaux. Tenir compte de l'analyse de la concurrence faite préalablement pour identifier la clientèle à approcher et les besoins utilisateurs. Ne pas oublier de tenir compte des contraintes inhérentes au domaine couvert, au budget et au planning.</li>
<li><strong>prioritisation des fonctionnalités</strong>&nbsp;: établir la liste ordonnée des fonctionnalités à implémenter pour être opérationnel au plus tôt, planifier les différentes releases. Cette étape est réalisée en parallèle de l'étude des concepts fondamentaux.</li>
<li><strong>étude des concepts fondamentaux</strong>&nbsp;: se concentrer sur le métier et sur les concepts qui lui sont propres pour arriver à une vision claire de la modelisation de l'application dans sa globalité.</li>
<li><strong>réalisation des scénarios d'utilisation</strong>&nbsp;: chaque action courante est scénarisée avec les écrans ergonomiques associés, c'est ce qui tient lieu de cahier des charges pour la suite. Il faut donc que ce soit relativement détaillé. De plus, ce sont ces écrans qui seront utiles au graphiste pour qu'il réalise les maquettes. Il est important d'avoir le design le plus tôt possible car dans le cas d'une application web il est intimement lié au développement (même avec un <a href="http://www2.jeffcroft.com/blog/2007/jan/11/django-and-mtv/">modèle <abbr title="Model Template View">MTV</abbr></a>).</li>
<li><strong>définition des itérations de développement</strong>&nbsp;: chaque cycle itératif se déroule en 3 ou 4 semaines, la dernière semaine étant consacrée aux tests et à la documentation. Exemple&nbsp;: gestion des utilisateurs.</li>
</ul>

<p>Une fois ce travail réalisé, j'estime 80% du travail fait (attention pas du temps). Il ne reste plus qu'à coder tout ça avec <a href="http://www.djangoproject.com/">Django</a> ;-). Bon concrêtement je dois avoir terminé ces étapes fin mars et j'ai peu d'expérience dans ce domaine (d'ailleurs il faudra que je relise <a href="http://gettingreal.37signals.com/toc.php">Getting Real</a>) donc si vous avez des suggestions/remarques à ce sujet elles sont les bienvenues (je tiens à préciser que je suis attaché aux méthodes de développement agile donc certaines solutions sont écartées d'office).</p>
