21 mai
Publié par Goyette Martin dans Outils de développement, Applications Web, Applications Internet riches (RIA)
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…
Flux RSS pour les commentaires de cet article. URI de TrackBack.
Laisser un commentaire