Ingénierie logicielle
Choix de la stack, frameworks front-end, arabe et écriture de droite à gauche, natif ou multiplateforme, cloud, outils de test et systèmes anciens.
12 questions
Comment choisissez-vous la pile technologique ?
Nous partons de ce que votre équipe sait exploiter et peut recruter, de ce qu’utilisent vos autres systèmes et de ce que le logiciel doit faire. Pour la plupart des logiciels métier, cela signifie un langage courant comme TypeScript, Java, C# ou Python, une base de données relationnelle comme PostgreSQL ou SQL Server, et le cloud que vous utilisez déjà. Nous évitons les outils de niche, sauf s’ils résolvent un problème réel, et nous consignons chaque choix et ses raisons.
En savoir plus : Développement de logiciels sur mesureLien vers cette question
Quel framework front-end utilisez-vous ?
Nous utilisons React avec Next.js pour la plupart des nouvelles applications, car il prend en charge le rendu côté serveur, dispose d’un outillage solide et est largement connu des ingénieurs. Nous travaillons aussi avec Angular et Vue, et nous poursuivons dans le framework que vous utilisez déjà lorsque c’est le choix le plus judicieux. La décision dépend des compétences de votre équipe, de ce que l’application doit faire et de ce que vous maintiendrez ensuite.
L’application peut-elle prendre en charge l’arabe et d’autres langues ?
Oui. Nous séparons chaque texte du code afin qu’il puisse être traduit, et nous mettons en page avec des propriétés logiques pour que les pages s’inversent correctement dans les langues écrites de droite à gauche comme l’arabe. Les dates, les nombres et les devises suivent les conventions de chaque langue et région. Nous le prévoyons dès le départ, car ajouter une deuxième langue à une application conçue pour une seule représente beaucoup plus de travail.
Faut-il développer en natif ou en multiplateforme ?
Les applications natives en Swift et en Kotlin offrent l’accès le plus complet aux fonctionnalités de l’appareil et l’intégration la plus fidèle à chaque plateforme. Les applications multiplateformes en React Native ou en Flutter partagent l’essentiel de leur code entre iOS et Android, ce qui réduit le coût de développement et d’évolution. Nous recommandons le natif lorsque l’application dépend fortement de l’appareil, par exemple pour du matériel de paiement ou des médias complexes, et le multiplateforme pour la plupart des applications professionnelles et grand public.
En savoir plus : Applications mobilesLien vers cette question
L’application peut-elle fonctionner sans connexion ?
Oui, lorsque les parcours le permettent. Nous stockons sur l’appareil, de façon chiffrée, les données dont l’utilisateur a besoin, et nous mettons ses modifications en file d’attente jusqu’au retour de la connexion. Des règles de synchronisation déterminent ce qui se passe lorsqu’un même enregistrement a été modifié à deux endroits. Nous définissons ces règles avec vous, car ce sont des décisions métier autant que techniques.
En savoir plus : Applications mobilesLien vers cette question
Quel fournisseur cloud devons-nous choisir ?
En général, celui que vous utilisez déjà, sauf raison claire d’en changer. Amazon Web Services, Microsoft Azure et Google Cloud exécutent tous trois très bien des charges de travail d’entreprise. Les facteurs décisifs sont vos contrats et compétences existants, les services managés dont vous avez besoin, les règles de localisation des données et la manière dont vos autres systèmes se connectent. Nous travaillons sur les trois et limitons le code propre à un fournisseur aux endroits où il en vaut la peine.
Quels outils de test utilisez-vous ?
Nous utilisons les outils adaptés à votre pile technologique et à votre équipe : Playwright ou Cypress pour les tests web de bout en bout, Appium pour le mobile, Jest, JUnit ou pytest pour les tests unitaires, Postman pour les contrôles d’API, k6 ou JMeter pour la performance et OWASP ZAP pour les analyses de sécurité. Nous conservons les tests dans votre dépôt et, autant que possible, dans le langage de vos ingénieurs, afin qu’ils puissent les maintenir.
En savoir plus : Assurance qualité (QA) et automatisation des testsLien vers cette question
Comment testez-vous les intégrations avec les banques, les prestataires de paiement ou les ERP ?
Nous utilisons l’environnement de test ou le bac à sable du partenaire lorsqu’il existe, et des simulateurs dans le cas contraire, pour que les tests puissent s’exécuter à chaque modification sans dépendre d’un tiers. Les données de test couvrent les cas d’échec : paiements rejetés, délais dépassés, messages en double et défaillances partielles. Des contrôles de bout en bout confirment que les totaux se rapprochent d’un système à l’autre, et pas seulement que chaque appel a renvoyé un succès.
En savoir plus : Assurance qualité (QA) et automatisation des testsLien vers cette question
Pouvez-vous concevoir pour l’arabe et les autres langues écrites de droite à gauche ?
Oui. Concevoir de droite à gauche ne consiste pas simplement à retourner l’écran. La navigation, les indicateurs de progression, les graphiques et les icônes qui suggèrent une direction doivent être inversés, alors que les nombres, les logos et les commandes multimédias ne le sont généralement pas. Le texte arabe exige sa propre police, sa propre taille et son propre interlignage. Nous concevons les deux sens ensemble et les faisons relire par des lecteurs natifs.
Qu’est-ce qu’un système de design, et en avons-nous besoin ?
Un système de design est un ensemble partagé de couleurs, de typographies, d’espacements et de composants, assorti de règles d’usage, maintenu en cohérence entre les fichiers de design et le code. Il devient nécessaire lorsque plusieurs équipes ou plusieurs produits doivent avoir une apparence et un comportement cohérents, ou lorsqu’un produit va évoluer pendant des années. Pour un petit outil isolé, une bibliothèque de composants plus légère suffit souvent.
Quand vaut-il mieux encapsuler un système que le remplacer ?
Lorsque l’ancien cœur est stable et correct, mais difficile d’accès. Des API modernes placées devant lui permettent aux nouveaux canaux, partenaires et produits d’utiliser ses fonctions sans toucher à son fonctionnement interne, avec un risque bien moindre qu’un remplacement. Nous recommandons le remplacement lorsque le système bloque le changement, ne peut pas être sécurisé ou ne trouve plus les compétences nécessaires.
En savoir plus : Modernisation des systèmes héritésLien vers cette question
Avec quelles technologies anciennes pouvez-vous travailler ?
Nous travaillons avec les piles technologiques sur lesquelles de nombreux systèmes de gestion ont été construits, notamment les anciennes versions de Java et de .NET, des bases de données relationnelles comme Oracle Database et SQL Server, des services SOAP et des interfaces à base de fichiers. Pour les plateformes plus rares, nous évaluons d’abord le code et vous disons franchement si nous disposons des compétences nécessaires, ou si un spécialiste doit rejoindre l’équipe.
En savoir plus : Modernisation des systèmes héritésLien vers cette question
Autres questions
- IA et donnéesModèles et fournisseurs, précision, recherche augmentée ou fine-tuning, plateformes de données, temps réel et automatisation des documents.12 questions
- IntégrationsSystèmes ERP, middleware, formats bancaires, ISO 8583, terminaux, host-to-host ou EBICS, open banking et API tierces.19 questions
- SecteursCore banking, ISO 20022, détection de la fraude, magasins, EDI et transporteurs, HL7 et FHIR, accessibilité et mises à niveau ERP.15 questions
- Coûts et tarifsCe qui détermine le coût d’un projet ou d’une équipe, et notre façon d’estimer.31 questions
- DélaisLe temps nécessaire pour démarrer et pour livrer, et ce qui le fait varier.18 questions
- Propriété et contratsÀ qui appartiennent le code, les données et les résultats, et comment fonctionnent les contrats.9 questions
- Sécurité et donnéesComment nous protégeons vos systèmes, votre code et vos données pendant notre intervention.32 questions
- Équipes et staffingQui travaille sur votre projet, comment ces personnes sont choisies et comment les équipes évoluent.22 questions
- Méthode et communicationComment le travail est planifié, suivi et réceptionné.43 questions
- Assistance et exploitationCe qui se passe après la mise en production : assistance, supervision et évolutions.17 questions
- À propos de XSISQui nous sommes, où nous sommes et comment nous joindre.7 questions
Dites-nous ce que vous devez construire ou connecter.
Décrivez les systèmes, le calendrier et les contraintes. Les ingénieurs concernés prennent ensuite le relais.