L'approche de développement d'Almonix s'appuie sur plusieurs concepts.
Besoins d'affaires
La raison d'être d'un logiciel est de soutenir un ou plusieurs besoins d'affaires. Le point de départ de notre approche est leur définition. Les besoins d'affaires sont traduits en termes d'exigences fonctionnelles et non-fonctionnelles servant de guide au développement du logiciel et à sa validation.
Modélisation
Un modèle est un outil de communication. Les modèles permettent à différents intervenants d'avoir une vue d'ensemble commune du logiciel à créer. Les intervenants peuvent s'appuyer sur cette vue d'ensemble pour évaluer et modifier le logiciel avant qu'une seule ligne de code soit écrite.
Un modèle est un outil de gestion de la complexité. Les modèles constituent une simplification du logiciel à créer. Chaque modèle adopte une perspective particulière mettant l'accent sur des éléments précis du logiciel et faisant abstraction des éléments ne portant pas sur cette perspective.
Agilité
Une approche agile s'appuie sur plusieurs principes. Elle doit permettre la livraison régulière de logiciels fonctionnels en plusieurs itérations courtes. Elle doit être en mesure de gérer le changement à n'importe quel moment dans le processus de développement. En somme, une approche agile favorise le contact continu avec le client en l'informant régulièrement de l'avancement du projet et lui permettant d'intervenir à tout moment.
Interactions humain-ordinateur
L'interface utilisateur est le point de communication entre l'utilisateur et le logiciel. Une grande partie de la valeur d'affaires que procure un logiciel passe par la manière dont un utilisateur interagit avec celui-ci. La connaissance de l'utilisateur et de son environnement de travail permettent d'orienter la conception de l'interface utilisateur afin de s'assurer que l'utilisateur réalise ses tâches de manière efficace et efficiente.
Architecture de logiciel
Un logiciel est constitué d'un ensemble complexe de composants inter-reliés. La sélection et la conception des composants pertinents au bon fonctionnement du logiciel sont des activités critiques. L'architecture est une solution au problème présenté par les exigences non-fonctionnelles.