Lexique : Quelques définitions

Agilité
Arrow icon
Le terme « Agile » définit une approche de gestion de projet qui prend le contre-pied des approches traditionnelles prédictives et séquentielles (cycle en V ou waterfall). Le développement agile permet de supprimer l’effet tunnel traditionnel en donnant davantage de visibilité, en impliquant le client du début à la fin du projet et en adoptant un mode itératif et incrémental. Selon cette approche, le besoin ne peut être figé et elle permet au contraire de s’adapter aux changements de ce dernier.

Ainsi, dans les faits, si le client a correctement priorisé son besoin, il peut accélérer le « time to market » s’il estime que le produit en l’état (partiel) peut aller en production. Il économise ainsi son budget et peut récolter un premier retour sur investissement. Il a aussi la possibilité de changer en cours de route la priorité des fonctionnalités qui n’ont pas encore été développées.

Simplicité offre cette souplesse et facilite le développement suivant une méthodologie agile qui permet de travailler de manière plus formelle sur la conception d’une application, plutôt que sa réalisation/exécution technique. Il suffit de déclarer/paramétrer son besoin, dire à la plateforme de le charger pour l’utiliser ou le voir apparaitre. Cet apport permet donc une plus grande réactivité au changement sans jamais remettre en cause la stabilité du livrable final.
APaaS
Arrow icon
« aPaaS » est un acronyme de Gartner pour « application Platform-as-a-Service ». Gartner en donne la définition suivante : « highly productive, easy to learn and use development environment that delivers business applications that are customizable, changeable, capable of implementing serious business functionality and, when deployed, offered with massive scalability, high-end enterprise-class (and beyond) performance and reliability, supporting massive amounts of data, all at SMB prices. »

Les services Cloud se segmentent en 3 couches : les Software-as-a-Service (SaaS), les Platform-as-a-Service (PaaS) et les Infrastructure-as-a-Service (IaaS). Alors que les deux premiers marchés se stabilisent, le marché du PaaS est encore en pleine structuration. L’aPaaS est une sous-couche du PaaS.

L’APaaS fournit des services intégrés de développement, déploiement et gestion, optimisés pour un environnement de cloud computing et prenant en charge la fourniture de l’application finale qui est distribué comme un service, connu sous le nom de SaaS. Simplicité en est un exemple.
Application métier
Arrow icon
L’application métier est destinée à être interne à l’entreprise : elle est orientée sur son métier et son fonctionnement pour ses employés, ses clients ou ses partenaires, par exemples :

- Application interne : logiciel comptable, gestion RH/paye
- Application commerciale : CRM, gestion des clients, force de vente
- Application client : site de vente en ligne, logistique de livraison, gestion des catalogues/stocks,
- etc.

Quand il s’agit de mettre en place une application métier, une société est souvent confrontée à deux possibilités : l’achat d’un progiciel ou la réalisation d’une application sur mesure.

L’achat de progiciel

Cette approche convient bien lorsqu’il s’agit d’une application qui instrumente des processus, non stratégiques ou non concurrentiels, basées sur des normes ou des standards. Cette solution n’est plus du tout pertinente lorsque le métier est spécifique à l’entreprise, ou que sa stratégie l’amènera à se différencier de ses concurrents ou à proposer des fonctionnalités nouvelles.

Les progiciels sont robustes mais généralement inadéquats aux besoins de changement terrains avec une très faible réactivité comparée aux coûts d’intégration associés.

Le développement spécifique

Le frein de cette approche réside dans la difficulté à maintenir et à faire évoluer l’application une fois déployée. En effet, le code technique est couplé au métier de l’application. Par conséquent, si le besoin fonctionnel (usage métier) ou technique (migration technologique) change, il faut généralement retoucher à tout ou partie du code source avec tous les risques de régressions que cela comporte, et repartir dans un cycle de spécifications, de développements et de tests de plus en plus lourds.

Dans un univers concurrentiel où il faut être hyper réactif et toujours plus productif, une application totalement adaptée aux besoins du métier et évolutive est indispensable.
BPM
Arrow icon
L’approche BPM (Business Process Management soit la gestion des processus métiers) vise à analyser et à modéliser dans un logiciel l’intégralité des processus métiers de l’entreprise.  « Qui fait quoi ? » ,  « Avec qui ? » ,  « Quand ? » ,  « Dans quel ordre ?  » sont des questions capitales permettant d’identifier les flux d’information et le dialogue entre tous les acteurs du processus.

L’objectif de cette démarche est d’aboutir à une meilleure vue globale de l’ensemble des processus métiers de l’entreprise et de leurs interactions afin d’être en mesure de les optimiser et, dans la mesure du possible, de les automatiser au maximum à l’aide d’applications métier.

D’un point de vue outillage, un système BPM est composé généralement :

- de logiciels qui permettent de modéliser les acteurs et les processus,
- d’agents qui permettent de les orchestrer (exécution, relance, alerte, escalade…)
- de consoles pour les administrer,
- et de tableaux de bord pour les piloter et en faire des analyses opérationnelles.

Le terme BPM est désormais utilisé pour tout ou partie de ces fonctionnalités.

La complexité de mise en œuvre d’un BPM est exponentielle car liée au niveau d’urbanisation du système d’information dans son ensemble, à sa capacité de traitement massif d’activités au fil de l’eau et en parallèle, à la volumétrie des données par activité à échanger/transformer, et à l’interopérabilité de logiciels hétérogènes entre eux (langage, version, technologie, règle de gestion…) qui changent dans le temps. Il s’appuie généralement sur des middlewares de communication/transformation de données (ESB ou ETL) pour y déporter la complexité d’intégration inter-système.

Face à une telle complexité, les systèmes BPM actuels ont tendance à ne traiter qu’un sous-ensemble des processus de l’entreprise, chaque application étant responsable de ses données et de ses propres processus.

Simplicité permet de modéliser et d’exécuter les processus dont il a la charge, et de dialoguer simplement avec les autres systèmes.
Devops
Arrow icon
Devops est un terme issu de la contraction des mots anglais « development » (développement) et « operations » (exploitation), souvent considérés comme contradictoires.
Ce mouvement repose sur un rapprochement entre les équipes de développement et les équipes d’exploitation afin d’accélérer les processus de livraison et de mise à jour des applications. L’objectif final est d’aligner le système d’information sur les besoins de l’entreprise.
La plateforme Simplicité simplifie toutes les étapes de la vie de vos applications d’entreprise en conformité avec des principes « DevOps » pragmatiques.
Model-driven
Arrow icon
L’approche » Model Driven » est une démarche de développement informatique piloté par les modèles. Le modèle, en tant qu’abstraction du monde réel, est le véritable outil de communication entre le métier et les concepteurs. Le modèle fait ainsi office de spécifications pour tous. De nombreux avantages en découlent:

- découplage métiers/technologie
- maintenance simplifiée
- évolutivité …

Issue des années 2000, le MDA (Model Driven Architecture) consiste à modéliser l’application dans un langage décrivant les besoins (comme UML, BPEL), puis au moyen de transformation (compilateur) de dériver ces langages en programmes compilables et exécutables (génération de code ou d’artéfacts exécutables).

L’approche » Model Driven Engeneering » a fait surface courant 2007/2008 dans la continuité de l’approche MDA. Celle-ci donne un éclairage plus structuré des différents aspects de la nécessité d’utiliser des modèles et des langages dédiés pour des domaines données (DSML Domain Specific Modeling Languages).
Simplicité s’appuie sur une approche totalement innovante : le moteur d’exécution de modèle (MDE ou Model Driven Engine). Il s’agit d’un moteur universel et agnostique offrant des principes génériques d’interprétation du méta-modèle, qui garantit une totale bijection en temps-réel entre les modèles et leurs interprétations à l’exécution.