6 mars 2008

Les défis auxquels nous faisons face en développement de projets Web

Classé dans : Outils de développement, Application Internet riche (RIA), Applications Web — martin.goyette @ 11:36

Dans le développement d’applications s’appuyant sur les technologies Web, nous rencontrons des défis de réalisation liés à l’utilisation de multiples technologies, des interactions croissantes entre elles, de leur évolution et obsolescence rapide et plus particulièrement d’une demande de plus en plus en grande des clients pour une interface visuelle et comportementale très riche.

La génération d’une interface riche (Rich Internet Application : on pourrait aussi l’appeler Rich Internet Architecture) sur une plateforme Web (fureteur principalement, téléphone/pda bientôt) demeure aujourd’hui la partie d’un projet la plus longue, difficile et complexe à réaliser. Les technologies et les pratiques sont en constante évolution, ce qui demande une grande expertise et beaucoup d’agilité intellectuelle de la part des développeurs. Ces qualités, on les retrouve normalement chez les développeurs plus aguerris alors qu’un développeur moins expérimenté ou agile risque de “crouler” sous la tâche (”big bang” de technologies à maîtriser!).

Dans le cadre plus général de développement de projet, la période de rodage de nouveaux développeurs est effectivement assez longue, l’environnement de développement complexe, le nombre de technologies utilisées élevé. Cette réalité est observable dans tous les “tiers” d’une application, bien que la réalisation de l’interface visuelle pose des problèmes qui lui sont spécifiques. Noter que ces problèmes semblent exister dans tous le développement d’applications d’entreprise (autant Java que .NET).

Il faut aussi noter les impacts causés par la tendance à l’”over-engineering” amenée par l’orienté-object, les “design patterns” et l’apparition de frameworks supportant ces patterns. De plus, la culture générale des développeurs dans le monde Java, incluant les analystes, architectes, designers et programmeurs d’applications d’entreprise, les portent vers des préoccupations de performance, de “scalability”, d’évolutivité et de maintenance ainsi que d’autres préoccupations non-fonctionnelles.  Ces préoccupations amenent souvent le développement et la mise en place d’une infrastructure logicielle lourde, complexe et surtout ardue à déployer. Comme cette infrastructure peut être revue à chaque projet (ou lors de l’introduction d’un nouveau développeur), une bonne partie des temps de réalisation est en fait de l’apprentissage.

Dans les faits, il n’y a pas de méthodologie formelle pour appuyer ce type de développement car de manière générale, les méthodologies s’appliquent plus à la mise en place du processus de développement qu’à la réalisation proprement dite. Voilà pourquoi un des défis importants dans les projets de développement sera de ne faire que ce qu’il y a à faire. Ce qui est un défi d’envergure pour une équipe de développement qui doit essayer de déterminer quand elle franchit la limite de l’essentiel. Comment arrêter le peaufinage et en rester au “good enough” qui ne veut pas dire de ne plus respecter les meilleures pratiques OO…

3 mars 2008

AXON Plus : une plate-forme ouverte pour le développement et l’exploitation de systèmes informatiques

Classé dans : Outils de développement, Java, Logiciels libre — martin.goyette @ 15:11

Dans un article antérieur expliquant les avantages de travailler avec un centre d’expertise Java comme celui d’AXON, nous avions rapidement présenté AXON Plus : un environnement de développement pré-configuré qui offre aux entreprises une économie considérable de temps et d’argent car il évite toutes les recherches, les downloads de produits, les installations, les configurations, les intégrations et les mises-à-jour. Voici une présentation plus détaillée.

Nous croyons effectivement que la mise en place d’un tel environnement de développement intégrant complètement un ensemble de logiciels libres adaptés à vos besoins va vous demander beaucoup de temps. Pouvoir rapidement éliminer cette étape fastidieuse mais très importante représente un facteur de succès non-négligeable dans un projet de développement informatique car cela permet de débuter le projet sur le bon pied.

Les avantages de notre plateforme

Trois aspects importants sont au coeur de notre plateforme AXON Plus et de notre approche de service :

  1. AXON Plus a été conçu de façon très flexible afin de pouvoir être assemblé et offert à nos clients en fonction de leurs besoins spécifiques. Ceci veut dire que dans chaque environnement technologique et pour chaque projet, nous sommes en mesure d’assembler une « boîte à outils » personnalisée, réduisant ainsi les frais d’acquisition et d’utilisation pour les clients.
  2. AXON Plus accélère la mise en place d’un environnement de développement compatible avec votre environnement technologique. Ceci permet d’épargner plusieurs mois d’efforts et de réaliser une preuve de concept de façon accélérée. Plus d’attention peut ainsi être consacrée aux aspects du projets qui représentent les risques les plus importants. De plus, notre approche consiste à déployer les nouvelles applications de façon itérative et ainsi permettre un retour sur investissement progressif.
  3. Finalement, le service AXON Plus comprend l’accompagnement et la formation nécessaire pour permettre à nos clients d’acquérir le maximum d’autonomie dans la réalisation de leurs projets.

Notre plate-forme de développement est est constante évolution selon les besoins de réalisation dans des projets spécifiques ou le travail de vigie technologique de notre équipe R&D. Voici une liste partielle des composantes techniques.

Fiche technique :

Interface avec

- Java, J2EE

Standards

- Struts

- Java Beans

Fonctionne sous

- Linux

- Solaris

- Windows

- Unix

Composantes

- Environnement de développement Web

- Outil de conception visuelle

- Module de gestion des messages

- Gabarit de solutions

- Logiciels de serveurs

- Gestionnaire de sources

- Outil de documentation

- Outil (« scripts ») de tests

- Outil de « monitoring » des applications et des équipements

- Méthodologie de développement UP et Agile

- Outil de gestion de la documentation de projets, de développement, d’exploitation et de soutien

- Outil de gestion des anomalies

- Émulateur d’écran IBM5250®

- Moteur de traitement des règles d’affaires