Charte qualité consulting

Conseil en développement logiciel

Ordisoftware™ vous communique des propositions et des recommandations qui sont issues de l’expérience et qui sont appuyées par une évaluation mettant en évidence les éléments adaptés ou inadaptés et les zones critiques des systèmes étudiés.

Quels que soient les objectifs à atteindre, les contraintes organisationnelles et technologiques, les domaines considérés, et les activités mises en oeuvre.

Orientation technique des projets

Méthodologie

Les méthodes agiles sont le fruit de la pratique et de la réflexion consécutive à l’utilisation des méthodes dites «traditionnelles» qu’elles englobent et étendent en se fondant sur les notions suivantes :

  • Procédé itératif : le projet est réalisé par compartiments ou portions, grâce aux concepts d'objets, de composants et de paquets.
  • Procédé incrémental : le projet est réalisé par progression ou affinage, grâce à l'implémentation de l'abstraction, du polymorphisme et de la généricité.

  • Scénario : ces procédés de production sont basés sur les spécifications unitaires des fonctionnalités qui sont réparties en tâches ou en étapes.
  • Livrable : une application fonctionnelle est fréquemment et régulièrement construite afin de conduire l'avancée de ces procédés, depuis la maquette initiale jusqu'au dernier prototype qui devient le logiciel final.

Contrôle de l'oeuvre

Trois axes d’action sont mis en pratique pour garantir le contrôle de l’oeuvre :

  • Partenariat avec l'équipe métier décisionnaire.
  • Responsabilité de l’expertise des solutions techniques.
  • Instruction et assistance des groupes utilisateurs.

Maitrise des architectures

Les méthodes agiles s’appuient sur quatre valeurs fondamentales afin de maitriser les architectures :

  • Interaction : la communication a la priorité sur les procédés et les outils.
  • Résultat : un programme qui fonctionne a la priorité sur la documentation.
  • Adaptabilité : la participation régulière a la priorité sur les négociations.
  • Amélioration : le changement a la priorité sur la planification.

Ces valeurs sont détaillées en douze principes :

  • Satisfaction du résultat : la priorité est de livrer à l’utilisateur un logiciel utile.
  • Amélioration : la capacité de changement est un avantage compétitif.
  • Feedback : l'action est basée sur la livraison régulière et la réaction de l’utilisateur.
  • Contribution : les différents intervenants spécialisés sont régulièrement sollicités.
  • Motivation : l’environnement et le soutien sont indispensables à la réussite.
  • Interaction : la communication est le moyen de transmettre l’information.
  • Utilisabilité : le fonctionnement du logiciel est l’indicateur de la progression.
  • Efficacité : adopter un rythme convenable est le moyen d’obtenir le résultat.
  • Aptitude : l’expertise et la qualité sont continuellement évaluées.
  • Pragmatisme : la simplicité est d’autant plus essentielle que le projet est complexe.
  • Organisation : le partage des activités permet d’obtenir les meilleurs logiciels.
  • Adaptabilité : l’introspection mutuelle et régulière au sujet de l’efficacité permet d’ajuster le comportement de l’équipe.

Architectures logicielles

Le projet est généralement abordé selon quatre considérations et cinq point de vues :

  • Métier & Cas d’utilisation : acteurs et scénarios.
  • Information & Conception : modèles et bases de données.
  • Application & Implémentation : aspects statiques et dynamiques.
  • Technologie & Déploiement et processus : infrastructure et composants.

Importance de la modélisation

Qu'ils soient pensés ou représentés, les modèles précèdent, sous-tendent, documentent et valident la production de logiciels de qualité.

L'utilisation de la modélisation relationnelle et orientée objet apporte simplicité, clarté et modularité dans la représentation conceptuelle des choses réelles.

Ordisoftware™ utilise habituellement le Modèle entité-association et le standard UML pour spécifier et visualiser les structures, les fonctions et les interactions des systèmes.

Afin d'obtenir le résultat désiré, la modélisation et l'implémentation sont continuellement mis en correspondance.

La constante revue des modèles et du code, associée au refactoring, sont des procédés essentiels de la réussite.

La quête de l'amélioration

Tout comme la mutation de la programmation classique vers la programmation orientée objet a nécessité du temps pour atteindre sa maturité, depuis la création des cartes perforées, plusieurs méthodes agiles sont mises au point selon la sensibilité de leurs créateurs et selon les exigences industrielles.

  • Unified Process (1996)* : Fondé sur les cas d'utilisation, centré sur les vues d'architecture UML, piloté par les procédés itératif et incrémental.
  • Extreme Programming (1999)* : Fondé sur la construction de l'application, avec des cycles de livraison très courts, l'intégration privilégiée du client dans l'équipe, et l'usage de techniques de codage spécifiques (simplicité, refactoring, conventions, vocabulaire commun, tests unitaires, travail en binôme, partage du code, intégration continue, respect de la réalité et des contraintes).
  • Kanban (2010)* : Inspiré du Lean pour la gestion des processus, focalisé sur l'organisation, sur la communication et sur la connaissance.
  • Feature Driven Development (1999) : Similaire à RAD, avec priorité aux fonctionnalités porteuses de valeur, et l'usage de cinq activités (élaboration d'un modèle global, liste des fonctionnalités à construire, plan par fonctionnalité, design par fonctionnalité, construction par fonctionnalité).
  • Scrum (2001) : Fondé sur le but et la complexité du projet selon la philosophie du rugby.
  • Lean Software Development (2003) : Fondé sur l'élimination du gaspillage, sur l'apprentissage, sur la qualité, sur le retour de livraison rapide, sur la prise de décision tardive, sur le pouvoir accordé à l'équipe, et sur la vision globale.
  • Crystal Clear (2004) : Fondé sur la communication et la collaboration utilisateur, pour des projets de petite taille.

* Méthodes utilisées préférentiellement par Ordisoftware™

Plus d'informations