DÉVELOPPEMENT WEB EN
ENVIRONNEMENT HOSTILE

  RETOUR D'EXPÉRIENCES SUR
      UNE ÉTUDE DE CAS
     Sébastien Mosser* & Karim Matrah**
      Université de Nice - Sophia Antipolis,
         CNRS, I3S, Equipe Modalis (*)
            Polytech’Nice-Sophia (**)

           JM2L, 28 Novembre 2009
PROBLÉMATIQUE :
 RENDU DE «DEVOIR»
PROBLÈME :
ENVIRONNEMENT HOSTILE
AGENDA


         • Vers   un entrepôt ...

         • Choix   (technos & méthodo)

         • Mise   en oeuvre

         • Démonstration

         • Conclusions
VERS UN
ENTREPÔT DES PROJETS
RENDRE UN PROJET :
                OUI, MAIS ...
• Comment        ?

 • Réseau, mail, papier, ...

• Quand      ?

 • Deadline, changement, ...

•A   qui ?

 • Intervenants   extérieurs, ...
EXEMPLE D’UTILISATION :
      ENSEIGNANT
• Déclarer    un travail

 • Quoi   ? Quand ?

• Suivre   son évolution

 • Qui   ? Quand ?

• Récupérer       les livraisons

 • Comment    ?
EXEMPLE D’UTILISATION :
       ÉTUDIANT
• Savoir

 • Quoi   faire ? Pour Quand ?

• Être   informé

 • Changements, nouvelles    infos, ...

• Rendre     un travail

   • Cohérence, validation, automatisation, ...
HOSTILITÉ DE
            L'ENVIRONNEMENT
• Peu   de moyens

 • Stage, projets, ...

• Peu   de ressources

 • Encadrement      «bénévole»

• Peu   de temps

 • Durée   allouée très limitée
UTILISATEURS FINAUX
             INFORMATICIENS
• Je   sais faire

  • Pas    besoin de lire la doc

• Je   devine comment faire

  • Toujours    sans lire la doc

• Je   n’ai pas réussi à faire

  • Il   est vraiment trop nul cet outil
UTILISATEURS FINAUX
            NON SPÉCIALISTES
• Je   ne sais pas faire

  • Lisons    la documentation

• Je   ne devine rien

  • Et    fait uniquement ce qu’on m’a dit

• Je   n’ai pas réussi à faire

  • Il   est vraiment trop nul cet outil
CHOIX
EFFECTUÉS
UNE APPLICATION WEB ?

• Facilité   de développement

 • Tout   le monde «fait» du Web

• Outillage     existant

 • Normal, tout   le monde en fait

• Documentation            «fournie»

 • Même     si très aléatoire selon les projets
CHOISIR UN
FRAMEWORK ?
« AS SIMPLE AS GOOGLE ... »

• Google    «Web Framework» : 38 600 000 résultats hier

 •   ok, super ...

• Comparateur         de Framework ?

 • 1101     framework référencés ... «what else ?»

• Prendre   un produit a la mode ?

 • Ok. Et   je fais quoi quand c’est plus la mode ?
ET MÊME QUAND ON EN
            CHOISIT UN ...
• «Joomla    documentation» : 17 000 000 résultats

 • N’oublions   pas ... «what else» ...

• «Drupal    documentation» : 2 770 000 résultats

 • «Bon, ben    c’est déjà mieux ...»

• Le   framework ultime n’existe pas

 • «Ouais, mais    souvent, c’est libre, adapte, vas y ...»
COÛT DE L’ADAPTATION ?
• Cas   concret : «Un enseignant déclare ses travaux»

 • =>   L’utilisateur final va créer ses propres «types»

• Problème      associé: «Métaprogrammation»

 • Manipulation   des entités via des métaclasses

• Support    dans le framework :

 •«   to the best of the authors knowledge ... »

 • «Ouais,    mais souvent, c’est libre, adapte, vas y ...»
COURBE D’APPRENTISSAGE ?
Complexité
             Fin du projet

                                Complexité
                                    du
                                 Problème




                             Temps
COURBE D’APPRENTISSAGE ?
Complexité
             Fin du projet

                                Complexité
                                    du
                                 Problème




                             Temps
COURBE D’APPRENTISSAGE ?
Complexité
             Fin du projet

                                Complexité
                                    du
                                 Problème




                             Temps
COURBE D’APPRENTISSAGE ?
Complexité
             Fin du projet

                                Complexité
                                    du
                                 Problème




                             Temps
UNE ROUE CARRÉE ?
PAS FRANCHEMENT CARRÉE ...
      DISONS, OVALE ...
• Garder   les concepts

  • MVC, DAL, CRUD, ...

• Mettre   en oeuvre ce dont on à besoin

  • e.g., un   MVC avec plus de C que de V, une CRUD dédiée, ...

• Et   surtout, le faire intelligemment

  • Rigueur    dans le développement
AGILITÉ
(SPIRALE)
KISS :
       KEEP IT STUPIDLY SIMPLE ...
• Un   outil simple

  • Quand    c’est compliqué, c’est mort d’avance ...

• Ne   faisant qu’une seule chose

  • En   l'occurrence, rendre des projets

• Et   très rapidement utilisable

  • Pour   pouvoir tester l’application «as soon as possible»
MISE EN OEUVRE
DÉMO
CONCLUSIONS
RÉSULTATS OBTENUS


• Une   application web opérationnelle

 • Utilisé   @Polytech’Nice Sophia Antipolis

• Une   liste de «fonctionalités» à ajouter dans l’outil

 • Sujets    de projets, de stage, ...
RÉFÉRENCES (WEB)

• PHP   :

 • http://www.php.net

• SQLite    :

 • http://www.sqlite.org

• Images    : (banque d’image -- presque -- libre)

 • http://www.sxc.hu
Entrepôt'Lytech JM2L

Entrepôt'Lytech JM2L

  • 1.
    DÉVELOPPEMENT WEB EN ENVIRONNEMENTHOSTILE RETOUR D'EXPÉRIENCES SUR UNE ÉTUDE DE CAS Sébastien Mosser* & Karim Matrah** Université de Nice - Sophia Antipolis, CNRS, I3S, Equipe Modalis (*) Polytech’Nice-Sophia (**) JM2L, 28 Novembre 2009
  • 2.
  • 3.
  • 4.
    AGENDA • Vers un entrepôt ... • Choix (technos & méthodo) • Mise en oeuvre • Démonstration • Conclusions
  • 5.
  • 6.
    RENDRE UN PROJET: OUI, MAIS ... • Comment ? • Réseau, mail, papier, ... • Quand ? • Deadline, changement, ... •A qui ? • Intervenants extérieurs, ...
  • 7.
    EXEMPLE D’UTILISATION : ENSEIGNANT • Déclarer un travail • Quoi ? Quand ? • Suivre son évolution • Qui ? Quand ? • Récupérer les livraisons • Comment ?
  • 8.
    EXEMPLE D’UTILISATION : ÉTUDIANT • Savoir • Quoi faire ? Pour Quand ? • Être informé • Changements, nouvelles infos, ... • Rendre un travail • Cohérence, validation, automatisation, ...
  • 9.
    HOSTILITÉ DE L'ENVIRONNEMENT • Peu de moyens • Stage, projets, ... • Peu de ressources • Encadrement «bénévole» • Peu de temps • Durée allouée très limitée
  • 10.
    UTILISATEURS FINAUX INFORMATICIENS • Je sais faire • Pas besoin de lire la doc • Je devine comment faire • Toujours sans lire la doc • Je n’ai pas réussi à faire • Il est vraiment trop nul cet outil
  • 11.
    UTILISATEURS FINAUX NON SPÉCIALISTES • Je ne sais pas faire • Lisons la documentation • Je ne devine rien • Et fait uniquement ce qu’on m’a dit • Je n’ai pas réussi à faire • Il est vraiment trop nul cet outil
  • 12.
  • 13.
    UNE APPLICATION WEB? • Facilité de développement • Tout le monde «fait» du Web • Outillage existant • Normal, tout le monde en fait • Documentation «fournie» • Même si très aléatoire selon les projets
  • 14.
  • 15.
    « AS SIMPLEAS GOOGLE ... » • Google «Web Framework» : 38 600 000 résultats hier • ok, super ... • Comparateur de Framework ? • 1101 framework référencés ... «what else ?» • Prendre un produit a la mode ? • Ok. Et je fais quoi quand c’est plus la mode ?
  • 16.
    ET MÊME QUANDON EN CHOISIT UN ... • «Joomla documentation» : 17 000 000 résultats • N’oublions pas ... «what else» ... • «Drupal documentation» : 2 770 000 résultats • «Bon, ben c’est déjà mieux ...» • Le framework ultime n’existe pas • «Ouais, mais souvent, c’est libre, adapte, vas y ...»
  • 17.
    COÛT DE L’ADAPTATION? • Cas concret : «Un enseignant déclare ses travaux» • => L’utilisateur final va créer ses propres «types» • Problème associé: «Métaprogrammation» • Manipulation des entités via des métaclasses • Support dans le framework : •« to the best of the authors knowledge ... » • «Ouais, mais souvent, c’est libre, adapte, vas y ...»
  • 18.
    COURBE D’APPRENTISSAGE ? Complexité Fin du projet Complexité du Problème Temps
  • 19.
    COURBE D’APPRENTISSAGE ? Complexité Fin du projet Complexité du Problème Temps
  • 20.
    COURBE D’APPRENTISSAGE ? Complexité Fin du projet Complexité du Problème Temps
  • 21.
    COURBE D’APPRENTISSAGE ? Complexité Fin du projet Complexité du Problème Temps
  • 22.
  • 23.
    PAS FRANCHEMENT CARRÉE... DISONS, OVALE ... • Garder les concepts • MVC, DAL, CRUD, ... • Mettre en oeuvre ce dont on à besoin • e.g., un MVC avec plus de C que de V, une CRUD dédiée, ... • Et surtout, le faire intelligemment • Rigueur dans le développement
  • 24.
  • 25.
    KISS : KEEP IT STUPIDLY SIMPLE ... • Un outil simple • Quand c’est compliqué, c’est mort d’avance ... • Ne faisant qu’une seule chose • En l'occurrence, rendre des projets • Et très rapidement utilisable • Pour pouvoir tester l’application «as soon as possible»
  • 26.
  • 27.
  • 28.
  • 29.
    RÉSULTATS OBTENUS • Une application web opérationnelle • Utilisé @Polytech’Nice Sophia Antipolis • Une liste de «fonctionalités» à ajouter dans l’outil • Sujets de projets, de stage, ...
  • 30.
    RÉFÉRENCES (WEB) • PHP : • http://www.php.net • SQLite : • http://www.sqlite.org • Images : (banque d’image -- presque -- libre) • http://www.sxc.hu