Le projet MyUNIL 3.0

capture-decran-2016-10-05-a-09-07-58
Une révolution technologique pour MyUNIL 3.0

MyUNIL 3.0, un nouveau socle technologique

Le premier chantier a été de choisir les environnements techniques et l’architecture qui nous permettraient d’atteindre les objectifs ambitieux de ce projet. Après une étude de marché des solutions portail, nous avons finalement opté pour la solution de portail d’entreprise Liferay, logiciel placé premier de sa catégorie dans le Magic Quadrant de Gartner.

Pour la partie graphique nous avons fait appel à l’agence WIDE qui a développé le concept graphique et ergonomique du nouveau portail.

Pour la conception des interfaces utilisateurs, nous avons opté pour ZKoss, un produit utilisé à satisfaction pour la conception du module Agenda. Ce produit est un des leaders dans le développement d’interfaces utilisateurs modernes et ergonomiques. Il permet une grande rapidité de conception et une remarquable légèreté et propreté du code développé.

Nous avons également décidé de baser la couche graphique sur Bootstrap, fourni par Twitter et qui nous garanti une bonne adaptabilité des interfaces utilisateur aux différentes plateformes d’accès (smartphone, tablette, laptop et desktop). Elle apporte aussi une homogénéité des interfaces développées.

myunil_socle_technique

Agilité, une nouvelle approche de gestion de projet pour MyUNIL

Le terme Agile définit une approche de gestion de projet différente des approches traditionnelles qui sont généralement prédictives et séquentielles. Une approche traditionnelle de gestion de projet attend généralement du client final un contrat exhaustif incluant la liste de toutes les fonctionnalités désirées pour le produit final. Cette approche laisse peu de place au changement, puisque tout est décrit dans une documentation exhaustive avant le démarrage du cycle de développement.

L’approche Agile propose au contraire de réduire considérablement cette approche prédictive en donnant davantage de visibilité au produit, mais surtout en impliquant le client final du début à la fin du projet et en adoptant un processus de développement itératif et incrémental. Dans le cadre de MyUNIL, plusieurs groupes de travail ont été formés, afin de créer un produit final s’approchant au maximum des besoins de nos utilisateurs.

Nous avons choisi des méthodes de développement dites agiles pour MyUNIL 3.0, car un portail largement utilisé par des étudiants a besoin d’évoluer vite, à l’image de ses principaux utilisateurs toujours jeunes, toujours adeptes des dernières technologies (l’approche classique reste pertinente dans d’autres contextes). Ces méthodes visent à réduire le cycle de vie du produit en commençant par développer une première version, fournissant une palette de fonctionnalités indispensables à la viabilité du produit, puis d’ajouter des fonctionnalités par un processus itératif basé sur une écoute du client.

Nous pouvons ainsi réaliser des tests en incluant les utilisateurs finaux tout au long du cycle de développement et donc de corriger les problèmes avant même une première mise en production.

Dans la palette des outils agiles nous avons choisi d’utiliser SCRUM. Cette méthode définit un cadre de travail permettant la réalisation de projets complexes qui sont divisés en plusieurs cycles de travail relativement courts que l’on appelle sprints.

myunil_scrum
Processus SCRUM

Dans le cadre de MyUNIL, ces sprints durent trois semaines. Durant ces 3 semaines l’équipe de développement est isolée et peut se concentrer au maximum sur les développements prévus. Ces sprints nous permettent d’évaluer régulièrement les progrès liés au projet et de planifier les prochaines étapes de développement.

Outils pour la gestion de projet MyUNIL 3.0

myunil_gestion_projet

  • GitHub entreprise: gestion du backlog
  • ZenHub: Suivi du projet avec un tableau Kanban et visualisation des Burndown charts

Automatisation et déploiement continu

myunil_automation
Github et Jenkins
  • GitHub entreprise: gestion du code source
  • Jenkins: Build des applications grace à Maven et déploiement sur les différents environnements