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…

27 février 2008

Le centre d’expertise Java d’AXON

Classé dans : Java, Logiciels libre, Applications Web — martin.goyette @ 19:39

Dans un contexte de pénurie de main d’oeuvre qualifiée et performante en informatique, un centre d’expertise Java tel que celui d’AXON peut contribuer au succès de plusieurs types de projets de développement et offrir une série d’avantages stratégiques importants pour une entreprise. Notre offre se compose des trois pratiques suivantes :

1.- Développement en mode projet :

  • Prise en charge totale ou partielle de projets par le centre d’expertise Java comme :
    • Mises en place d’architectures orientées services (SOA);
    • Modernisation de systèmes patrimoniaux (Legacy);
    • Développement d’applications Internet riches (RIA);
    • Développement d’applications Web B2B – B2C;
    • Développement de nouveaux sites Web et maintenance de sites existants;
    • Intégration de systèmes hétérogènes;
    • Preuves de concept.

2.- Services conseils :

  • Conseils stratégiques
    • Architecture d’entreprise
    • Stratégie de modernisation
  • Conseils technologiques
    • Accompagnement et révision de code existant
    • Coaching et formation sur les meilleures pratiques en méthodologie et gestion de projet
    • Mise en place d’un environnement de développement et de déploiement d’applications
  • Ressources d’appoints
    • Directeur de projet
    • Chargée de projet
    • PCO
    • Analystes
    • Architectes
    • Développeurs Java
      Assurance qualité

3.- Logiciels libres :

  • Identification et sélection des meilleurs logiciels libres pour répondre à des besoins d’affaires
    Installation et configuration
  • Évolution et support

En terme d’avantages stratégiques pour la réalisation des projets de développement Java, ceux qui ressortent comme les plus importants sont :

  • L’environnement de développement pré-configuré Axon Plus : cet environnement représente 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.
  • Une méthodologie de développement éprouvée : une mise en application des meilleures pratiques quant aux documents de design, stratégies de tests et d’assurances qualité, conventions de programmation, gestion des anomalies, “builds” réguliers et gestionnaires de sources.
  • Une équipe formée et supervisée : une solution pour les entreprises qui font face à des défis majeurs de recrutement, formation, gestion et rétention d’informaticiens de qualité.
  • L’expérience : plus de 10 ans de développement Java et la réalisation de projets majeurs qui ont permis d’acquérir un savoir-faire approfondi dans les environnements technologiques hétérogènes.
  • La rigueur : un processus de gestion qui suit et analyse les projets afin d’identifier rapidement les écarts potentiels en plus de produire pour les clients des indicateurs précis (feuilles de temps, statuts budgétaires, Gantt, gestion des demandes de changement).
  • La flexibilité pour réaliser des projets de moindre envergure : adaptation de la méthodologie de développement qui offre une solution économique de grande qualité.
  • Intervention en mode “swat team” dans les situations de délais serrés à rencontrer.