Aller au contenu principal

Décisions | Chambre civile

1 resultats
C/23597/2016

ACJC/1208/2023 du 19.09.2023 sur JTPI/10537/2022 ( OO ) , CONFIRME

Recours TF déposé le 16.10.2023, rendu le 20.08.2024, CONFIRME, 4A_505/2023
Normes : CC.4
En fait
En droit
Par ces motifs
RÉPUBLIQUE ET CANTON DE GENÈVE

POUVOIR JUDICIAIRE

C/23597/2016 ACJC/1208/2023

ARRÊT

DE LA COUR DE JUSTICE

Chambre civile

DU MARDI 19 SEPTEMBRE 2023

 

Entre

A______ SA, sise ______, appelante d'un jugement rendu par la 20ème Chambre du Tribunal de première instance de ce canton le 13 septembre 2022, comparant par
Me Nicolas CAPT, avocat, 15, Cours des Bastions Avocats Sàrl, case postale 519,
1211 Genève 12, en l'étude duquel elle fait élection de domicile,

et

B______ Sàrl, p.a. C______ SA, ______, intimée, comparant par Me Shahram DINI, avocat, Dini Lardi Avocats, place du Port 1, 1204 Genève, en l'étude duquel elle fait élection de domicile.

 

 


EN FAIT

A. Par jugement JTPI/10537/2022 du 13 septembre 2022, notifié aux parties le lendemain, le Tribunal de première instance, statuant sur demandes principale et reconventionnelle, a débouté A______ SA de toutes ses conclusions (chiffre 1 du dispositif), condamné celle-ci à payer à B______ Sàrl le montant de 487'080 fr. avec intérêts à 5% dès le 20 juin 2016 (ch. 2), prononcé la mainlevée de l'opposition faite par A______ SA au commandement de payer, poursuite n° 1______, à concurrence du montant précité avec intérêts (ch. 3), débouté B______ Sàrl de ses autres conclusions (ch. 4), arrêté les frais judiciaires à 25'000 fr., compensés à due concurrence avec les avances de 40'400 fr. versées par les parties, soit 22'300 fr. pour A______ SA et 18'100 fr. pour B______ Sàrl, les a mis à la charge de A______ SA, a condamné en conséquence celle-ci à rembourser à sa partie adverse le montant de 2'700 fr. et ordonné aux Services financiers du Pouvoir judiciaire de restituer à B______ Sàrl le montant de 15'400 fr. (ch. 5), condamné A______ SA à payer à B______ Sàrl le montant de 26'500 fr. TTC à titre de dépens (ch. 6) et débouté les parties de toutes autres conclusions (ch. 7).

B. a. Par acte expédié le 14 octobre 2022 au greffe de la Cour de justice, A______ SA interjette appel contre ce jugement, dont elle sollicite l'annulation des chiffres 1 à 3 et 5 à 6 du dispositif. Cela fait, elle conclut - avec suite de frais de seconde instance et dépens de première et seconde instances - à ce que la Cour dise et constate que B______ Sàrl est reconnue comme sa débitrice et doit immédiatement lui payer la somme de 258'462 fr. 45 avec intérêts à 5% l'an dès le 29 avril 2016, annule la poursuite n° 1______ de l'Office des poursuites genevois, ordonne à B______ Sàrl de procéder à la radiation immédiate de cette poursuite auprès de l'Office des poursuites, sous la menace de la peine prévue par l'art. 292 CP, et déboute B______ Sàrl de toutes autres ou contraires conclusions.

b. B______ Sàrl conclut au rejet de l'appel et à la confirmation du jugement entrepris, avec suite de frais et dépens de première instance et d'appel.

c. Les parties ont répliqué et dupliqué, persistant dans leurs conclusions respectives.

d. Par avis du greffe de la Cour du 16 mars 2023, les parties ont été avisées de ce que la cause était gardée à juger.

C. Les éléments suivants résultent du dossier :

a. A______ SA (anciennement D______ SA; ci-après : A______ SA) – qui est une filiale de A______ HOLDING sise en Ukraine – a pour but le commerce de matières premières, de matériaux finis et semi-finis, de même que les affaires commerciales, financières et mobilières qui s'y rapportent.

E______ en est l'administrateur président.

b. B______ Sàrl est une société offrant des services dans le domaine de l'informatique en mettant l'accent sur le niveau de satisfaction apporté à la clientèle dans la conception, le développement et l'implantation de solutions dans l'environnement du réseau informatique.

F______ a été l'associé gérant de cette entreprise, avec pouvoir de signature individuelle, depuis son inscription au Registre du commerce genevois en ______ 2014 jusqu'en décembre 2016, date à laquelle il a été remplacé par G______.

c. Auparavant, F______ a été employé par A______ SA du 1er juin 2006 au 31 décembre 2013 en qualité d'ingénieur système IT pour un revenu annuel brut de 133'900 fr., hors bonus. Devant le Tribunal, il a déclaré que son dernier salaire annuel s'était élevé à 156'000 fr. nets, bonus compris.

c.a Son supérieur hiérarchique était H______, responsable du département informatique de A______ SA de février 2005 à juin 2015, hormis durant les années 2008 à 2011, où le précité a été remplacé par I______. Durant cette dernière période, H______ a été chargé de créer un autre département informatique, en lien avec la holding ukrainienne (cf. témoignage F______). Devant le Tribunal, H______ a déclaré qu'il était entre autres chargé du contrôle interne et de la gestion des risques.

Entendu en qualité de témoin, F______ a expliqué qu'il rapportait à H______ concernant la qualité du réseau informatique. C'était ce dernier qui lui donnait les instructions.

La collaboration entre F______ et H______ se déroulait très bien. Le second était satisfait du travail du premier. F______ a déclaré que son travail n'avait jamais été critiqué et qu'il avait d'ailleurs reçu chaque année le bonus le plus élevé du département IT.

c.b A teneur du certificat de travail 2012, le cahier des charges de F______ était le suivant : maintenir l'infrastructure informatique de A______ SA, analyser les problèmes systémiques et fournir des solutions pour y remédier, sauvegarder les données, sécuriser le réseau informatique, maintenir le système anti-spam, mettre en œuvre et assurer le fonctionnement de l'infrastructure et du stockage, gérer l'Active Directory et l'Exchange Server.

Entendu par le Tribunal en qualité de témoin, H______ a exposé que F______ s'occupait de la maintenance du réseau, de la connectivité, de la sécurité et de la maintenance des serveurs. Un autre collaborateur, J______, était chargé de la gestion du réseau (logins et portails intranet). Ses tâches et celles de F______ s'imbriquaient en partie, mais J______ s'occupait plus des machines des utilisateurs.

c.c Les certificats de travail remis à F______ en 2012 et janvier 2014 relèvent notamment que les compétences techniques et les connaissances de l'intéressé avaient joué un rôle stratégique dans l'amélioration de la structure informatique de l'entreprise, permettant à celle-ci de s'aligner sur les exigences informatiques d'une société internationale.

d. La structure informatique de A______ SA était opérée depuis le site de Genève. Il existait une interconnexion avec l'Ukraine, permettant aux utilisateurs de Kiev de se connecter par le biais de protocoles d'accès distants. Le système était composé de trente-sept machines virtuelles et de huit serveurs, avec un site secondaire de sauvegarde hébergé auprès de K______ INC, permettant une synchronisation des machines et des données les plus critiques de l'entreprise sur un site distant pour assurer une reprise en cas de sinistre (cf. rapport de L______ SA, pièce 52 dem.).

e. H______ était notamment en charge du budget informatique. A ce sujet, il a expliqué qu'à partir de 2010, le processus de décision ne dépendait plus de la société genevoise mais de la holding en Ukraine, le reporting et les demandes de financement, notamment pour l'achat de logiciels, devant s'effectuer auprès de la holding. Il était alors beaucoup plus compliqué d'obtenir un budget pour le bon fonctionnement du service informatique, qui avait de la difficulté à tourner avec les fonds octroyés. Avec le budget alloué, l'infrastructure informatique de A______ SA était en "mode survie" et n'était pas alignée aux standards à respecter. Cette modification avait eu un impact sur le travail de F______ et H______, ce dernier qualifiant la situation de "bombe à retardement".

Pour sa part, E______ a assuré que les dépenses informatiques étaient coordonnées au sein du groupe. L'aval de toute l'équipe responsable devait être obtenu, mais cela n'était pas difficile pour les dépenses nécessaires, à savoir celles qui étaient critiques pour maintenir l'infrastructure.

f. Le 31 octobre 2013, A______ SA a communiqué à F______ sa décision d'externaliser la gestion de son infrastructure informatique et de mettre un terme à son contrat de travail pour fin décembre 2013.

La décision d'externaliser ce poste était guidée par des raisons économiques (cf. témoignage de H______ et interrogatoire de E______). E______ a déclaré que cela permettait à F______ de développer sa clientèle et à A______ SA de payer moins cher pour obtenir les mêmes services.

g. A partir du 1er janvier 2014, F______ a fourni ses services en matière informatique à A______ SA par le biais de la société B______ Sàrl. Devant le Tribunal, F______ a expliqué que cette société avait été fondée dans le seul but d’assurer l'activité informatique de A______ SA, qui était son unique cliente.

Ce n'est cependant que le 11 juillet 2014 que B______ Sàrl et A______ SA ont conclu un "Service Agreement for Operations and Maintenance" (ci-après : le Service Agreement), mentionnant une entrée en vigueur au 1er janvier 2014 pour une durée d'une année.

Le Service Agreement prévoyait que B______ Sàrl assumerait les tâches suivantes:

-                 maintenance du serveur hardware et software;

-                 maintenance et support des postes de travail;

-                 maintenance des infrastructures de stockage;

-                 maintenance de l'équipement du réseau (interrupteur, pare-feu et autres dispositifs du réseau existants);

-                 maintenance de la reproduction/copie entre la production et le site distant;

-                 maintenance de l'infrastructure du site distant;

-                 assistance pour tout autre service lié à l'infrastructure maintenue par des sociétés tierces, incluant notamment la communication (fax, voix et vidéos), l'impression, le scanner, la gestion des droits d'accès, la protection de l'infrastructure physique tant interne qu'externe.

B______ Sàrl devait également fournir un centre d'assistance permettant de gérer les tickets en direct et leur résolution. Il était en outre tenu d'établir des rapports mensuels, à remettre la première semaine de chaque mois, ceux-ci devant présenter un rapport d'activités (volume des tickets, délai moyen de résolution, nombre de tickets non résolus ou dépassant le délai imparti au cours de la période), le niveau de disponibilité de l'infrastructure informatique, le niveau de performance des principaux services, le diagramme de l'infrastructure IT et l'état des travaux en cours incluant les recommandations des éléments importants dans les six et douze mois.

Les honoraires convenus s'élevaient à 20'500 fr. plus 8% de TVA pour les services d'au moins une personne sur le site durant les horaires de travail (étant précisé que durant la période où les parties étaient en négociation, F______ a perçu une rémunération mensuelle de 10'000 fr. et que le contrat prévoyait temporairement une rémunération de 16'800 fr. plus TVA tant que la société B______ Sàrl ne disposerait que d'un ingénieur système). D'autres prestations, dont la nature n'a pas été convenue, pouvaient également être fournies par B______ Sàrl selon un tarif horaire préétabli.

g.i D'après le témoin H______, les tâches incombant à B______ Sàrl impliquaient d'assurer la maintenance de la sécurité de l'infrastructure informatique. Selon lui, le niveau de sécurité requis était le niveau standard pour l'industrie. Les tâches listées dans le contrat correspondaient à celles dont F______ avait la responsabilité du temps où il était employé de A______ SA.

g.ii L'obligation de remettre des rapports constituait cependant une nouveauté par rapport aux tâches effectuées par F______ lorsqu'il était employé de A______ SA. L'idée était d'avoir un suivi et une continuité des services qui se faisaient auparavant et de pouvoir remettre ces rapports à la direction (cf. témoin H______).

Dans les faits, B______ Sàrl n'a pas systématiquement fourni les rapports en question dans la forme requise. Une partie de ce qui était demandé était communiqué de façon informelle, à la légère, selon le témoin H______. Ce dernier a cependant déclaré que F______ lui transmettait régulièrement toutes les informations pour qu'il puisse avoir une vue d'ensemble du réseau informatique. Au début des rapports contractuels entre A______ SA et B______ Sàrl, F______ et H______ avaient continué à travailler côte à côte et leurs échanges étaient permanents. Il arrivait toutefois également à F______ de travailler à distance.

h. Le 1er septembre 2014, B______ Sàrl a engagé M______ en qualité de technicien de support, l'intéressé travaillant à plein temps au sein des locaux de A______ SA.

i. Fin 2014, les parties ont négocié la continuité de leurs rapports contractuels. H______ était satisfait du travail effectué par B______ Sàrl, pardonnant l'absence de remise des rapports mensuels. Il a alors été renoncé à la remise automatique de ces rapports puisqu'il y avait une communication fluide entre les parties (cf. témoignage H______).

Le 5 janvier 2015, les parties ont conclu un nouveau contrat intitulé "Enterprise Agreement for Operations and Maintenance" (ci-après : Enterprise Agreement), prévoyant des tâches identiques à celles mentionnées dans le Service Agreement, sous réserve du centre d'assistance et des rapports mensuels qui devaient désormais être fournis uniquement sur demande de A______ SA.

Les honoraires s'élevaient à 20'500 fr. plus 8% de TVA, dont une réduction de 15% pour l'année 2015 (soit 17'425 fr. HT par mois). D'autres prestations, dont la nature n'a pas été convenue, pouvaient également être fournies par B______ Sàrl selon un tarif horaire préétabli, notamment des honoraires additionnels pour tous les services supplémentaires comme l'installation et le remplacement de matériel, upgrade, etc.

Ce contrat était conclu pour une durée de trois ans du 1er janvier 2015 au 31 décembre 2017 et était reconduit automatiquement pour une durée d'un an, sauf dénonciation par l'une ou l'autre des parties moyennant le respect d'un préavis écrit donné au moins trois mois à l'avance.

Il était prévu que si une partie enfreignait une condition importante du contrat ("if the other party breaches any material term or condition of the enterprise agreement") et ne remédiait pas à cette violation dans un délai de trente jours suivant la réception de la mise en demeure, l'autre partie pouvait résilier le contrat par écrit. En cas d'impossibilité de remédier à la violation dans le délai de trente jours, un délai raisonnable supplémentaire, n'excédant pas soixante jours dès réception de l'avis, devait être octroyé à la partie ayant violé le contrat afin de lui permettre de remédier à la violation de manière prompte et diligente. En outre, chaque partie pouvait résilier le contrat avec effet immédiat en cas d'inexécution des obligations contractuelles ou en cas d'entrave à la bonne exécution desdites obligations en raison d'un comportement fautif intentionnel ou d'une négligence grave.

Il était précisé que tous les avis, consentement et approbation requis par le contrat devaient être effectués par écrit et envoyés par courrier recommandé.

Enfin, le contrat prévoyait une élection de droit suisse et de for à Genève.

j. Le témoin H______ a déclaré que lorsque A______ SA sollicitait un rapport de B______ Sàrl, celle-ci refusait presque systématiquement de le faire, ne fournissant au surplus que quelques rapports partiels, lacunaires et inutiles.

D'après les pièces figurant au dossier, B______ Sàrl a notamment remis des rapports à A______ SA en janvier, février, mars, avril, mai, août, septembre, octobre et novembre 2015, ainsi qu'en janvier et février 2016.

k. Par courriel adressé le 26 mars 2015 à E______ avec copie à H______, F______ s'est plaint de retard dans le renouvellement de contrats (en particulier les contrats de maintenance pour les serveurs HP et le système d'archivage de N______, O______, etc.), H______ n'ayant pas validé l'offre qui lui avait été soumise. F______ s'est dit préoccupé par le fait que ce type de retard avait un impact négatif considérable sur l'ensemble des fonctions du département. Il a ajouté qu'il continuerait à faire le maximum d'efforts pour fournir un service de qualité dans les conditions données, mais a précisé qu'il refuserait d'endosser une quelconque responsabilité causée par un retard, une négligence ou un manque de gestion, non seulement en ce qui concerne l'aspect administratif, mais aussi l'aspect opérationnel de l'infrastructure informatique.

Confronté à ce courriel par le Tribunal, le témoin H______ a confirmé que les éléments mentionnés par F______ avaient une incidence sur le fonctionnement du service informatique.

l. Entre-temps, le 19 mars 2015, H______ a remis sa démission à A______ SA pour la fin du mois. Devant le Tribunal, il a expliqué que sa décision était motivée par le fait que son poste était devenu moins intéressant et plus compliqué avec un budget plus restreint.

Le 15 juin 2015, il a fondé la société P______ SA, active dans la commercialisation de logiciels et produits informatiques. Il a expliqué que l'idée était de s'occuper du service informatique de A______ SA en attendant de trouver d'autres clients, puis de transférer ces compétences à une nouvelle équipe au sein de A______ SA.

Le 1er juillet 2015, P______ SA a conclu un contrat de services avec A______ SA. Ce contrat prévoyait la gestion complète des applications Q______ (logiciel de négociation et de gestion des risques employé dans le cadre du commerce de matières premières), la maintenance et l'assistance par rapport au système SAP, le reporting, l'assistance générale au département IT, le transfert des compétences, la maintenance, l'assistance et la formation web utilisées par A______ SA, le conseil technique et stratégique, l'assistance informatique au management, le contrôle interne et la gestion des risques.

m. Il est admis que H______, y compris lorsqu'il a créé la société P______ SA, était chargé de superviser l'activité de F______.

Ainsi, d'après les explications de H______, B______ Sàrl, soit pour elle F______, suivait ses instructions, puis celles de P______ SA jusqu'à la nomination du nouveau chef du département informatique de A______ SA (R______; cf. let. p ci-après) le 1er avril 2016.

Le témoin F______ a déclaré que pour lui, il n'y avait aucun changement lorsque A______ SA avait conclu le contrat avec P______ SA, dont il ne connaissait pas les détails. Pour lui, H______ restait le chef informatique de A______ SA et son activité au sein de B______ Sàrl restait subordonnée aux décisions du premier nommé.

La collaboration entre F______ et H______ s'est bien déroulée jusqu'à la fin 2015. Leur relation s'est ensuite dégradée et F______ s'est opposé à rendre des comptes à P______ SA. Il communiquait alors directement avec E______ (cf. notamment témoignage de H______).

m. A______ SA faisait l'objet chaque année d'un audit externe (réalisé entre autres par BDO S______ SA en 2008, puis par T______ SA de 2009 à 2016), et d'un audit interne (effectué par un spécialiste en sécurité de la holding; cf. témoin H______), lesquels portaient notamment sur le service informatique et étaient réalisés dans les règles. Ces audits ont rarement relevé des problèmes concernant ledit service, sous réserve de quelques recommandations, qui ont été suivies (il a par exemple été constaté en 2009 qu'aucune procédure de tests des sauvegardes n'était en place, alors qu'il existait un risque que ces dernières ne fonctionnent pas lorsqu'elles seraient restaurées, ce qui pouvait avoir un impact sur les affaires; il a dès lors été recommandé à l'ingénieur système, dans un délai échéant à avril 2010 puis finalement reporté à juin 2011, de mettre en place une procédure formelle pour la réalisation de tests des sauvegardes et la conservation de preuves lorsque de tels tests seraient réalisés).

Aucun incident ou problème de sécurité ou encore de panne due à une attaque du réseau informatique n'a jamais été rencontré durant la collaboration avec F______, puis B______ Sàrl (cf. témoignages de H______, R______, U______ et M______).

n. Par courriel envoyé courant novembre 2015, A______ SA a demandé à ses employés, sur une base volontaire, de réduire leur temps de travail de 20% en raison des difficultés financières de la société (pièce 125 déf.).

o. A______ SA n'a pas versé à B______ Sàrl la mensualité du mois de mars 2016.

p. Le 1er avril 2016, R______ a été engagé par A______ SA en qualité de chef du département informatique, pour un salaire mensuel brut de 8'000 fr. durant le temps d'essai, puis de 9'250 fr. A ce titre, il devait superviser les activités menées par ce département, notamment celles effectuées par B______ Sàrl.

La relation entre R______ et B______ Sàrl a immédiatement été tendue.

q. Par courriel du 12 avril 2016 (cf. pièce 130 déf. et les documents joints), B______ Sàrl a répondu à la requête de R______ relative au statut actuel de l'infrastructure informatique. Il y a annexé la documentation relative au réseau, notamment un plan de celui-ci, comprenant tous les éléments matériels, ainsi qu'un document comprenant une liste des problèmes du moment, notamment l'obsolescence du matériel (par exemple, il était mentionné que la bibliothèque des bandes de sauvegarde était très ancienne et ne convenait pas à l'infrastructure actuelle et que le serveur de fax devait être mis à jour; concernant le matériel de réseau, il était indiqué que les anciens commutateurs de réseau [switches] devraient être remplacés et qu'il était recommandé de remplacer le pare-feu externe).

F______ a affirmé ne jamais avoir reçu de réponse à ce courriel.

Devant le Tribunal, F______ a confirmé qu'il avait signalé l'obsolescence du matériel, mais que A______ SA refusait de le remplacer. Il en parlait constamment et H______ le savait.

r. Questionné par le Tribunal sur ce qu'il avait constaté au sujet de la gestion et de la maintenance de l'infrastructure IT à son arrivée le 1er avril 2016 au sein de A______ SA, le témoin R______ a déclaré avoir rapidement remarqué que les infrastructures informatiques (hardware et software) étaient en fin de vie. Il s'était par ailleurs aperçu du fait que certains patchs (soit des mises à jour, notamment de la sécurité ou l'ajout de fonctionnalités manquantes; cf. explications du témoin F______) de sécurité n'avaient pas été appliqués et qu'il manquait presque partout les mises à jour nécessaires sur les serveurs, sur le réseau, les ordinateurs personnels, les routers et les périphériques. Sur ce point, il a ajouté que certains éléments étaient tellement vieux ("end of life") qu'on ne pouvait pas appliquer de mises à jour (voire que celles-ci étaient inexistantes du fait que la société qui les produisait ne faisait elle-même plus de mise à jour). Dans la salle du serveur, le matériel était partiellement obsolète. Au niveau du réseau, le matériel (les switches [soit les boîtiers pour la connectivité du réseau] et les routers) était très mauvais. R______ s'est dit très mécontent du système de mises à jour.

F______ a confirmé que R______ était très mécontent des mises à jour de Windows, un patch n'ayant pas été appliqué. C'était la première semaine après son entrée en fonction. F______ a affirmé qu'il avait dès lors immédiatement remédié à la situation. Il n'avait cependant reçu aucun avertissement ou autre remarque au sujet de l'exécution de ses tâches entre le 1er et le 29 avril 2016. R______ lui avait demandé des informations, qu'il lui avait fournies.

s. Au vu des éléments constatés par R______, A______ SA a confié à la société V______ SA la mission d'effectuer une analyse rapide de son système informatique.

V______ SA est intervenue dans les locaux de A______ SA le 26 avril 2019 et a rendu son rapport le 29 avril 2016. Cette société a indiqué qu'en raison du temps limité qui lui avait été accordé et des informations manquantes au sujet de la situation réelle, la configuration des appareils n'avait pas pu être analysée de manière détaillée.

En ce qui concerne le design et la performance, il ressort de ce rapport que le réseau, dans sa configuration, n'avait pas été mis à l'échelle adéquate et que des redondances n'avaient pas été conçues. En dehors du manque de redondances, les performances ne correspondaient pas aux standards actuels. Il était ainsi recommandé de discuter du design et des possibilités d'amélioration. Au sujet de la sécurité, le rapport révélait un manque de mises à jour des logiciels sur presque tous les appareils, ce dont il fallait déduire que le réseau présentait des failles de sécurité (à titre d'exemple, il était mentionné qu'aucune mise à jour du logiciel n'avait été effectuée sur le pare-feu W______ depuis 2010). A propos de l'équipement (hardware), le rapport constatait une grande disparité dans les appareils utilisés, qui provenaient de différents fabricants, ce qui augmentait la complexité du réseau et pouvait conduire à des problèmes. Il était également relevé que le matériel utilisé était globalement désuet et devait être remplacé. Par ailleurs, certains produits (pare-feu W______, switches) n'étaient plus commercialisés (end-of-sale) voire étaient en fin de vie et devraient également être remplacés prochainement.

Entendu par le premier juge en qualité de témoin, X______, employé de la société V______ SA, a indiqué que la société qui l'employait avait été mandatée pour évaluer le système informatique de A______ SA. Avant son audition, il avait relu le rapport qui avait été rédigé sur ce point. V______ SA devait indiquer ce qui était à changer. Il ne se souvenait pas si la situation était grave, dans la mesure où il s'agissait de son travail quotidien et qu'il voyait ce type de cas tous les jours.

Questionné par le Tribunal au sujet de ce rapport, F______ a indiqué qu'aucune information ne lui avait été demandée, notamment sur la manière de fonctionner. Il ignorait ce que R______, alors en place depuis trois semaines, avait dit à ces auditeurs. F______ a admis que le pare-feu n'avait pas été mis à jour depuis 2010, pour éviter des changements et des effets secondaires. Il s'agissait d'un pare-feu externe uniquement. Selon lui, le patching sur un pare-feu n'avait aucun sens, il fallait remplacer le logiciel. Parfois, il n'y avait pas de patch proposé pendant deux ans pour des pare-feu externes.

F______ a par ailleurs contesté que le système présentait des failles de sécurité, tout en relevant qu'aucun système au monde ne pouvait être fiable à 100%.

t. Par courrier recommandé du 29 avril 2016, soit le même jour que le remise du rapport V______ SA, A______ SA a résilié l'Enterprise Agreement avec effet immédiat pour cause de négligence grave.

Elle a fondé cette résiliation sur la découverte de nombreuses violations, à la fois contractuelles et des bonnes pratiques admises dans le domaine de l'informatique, qui avaient entraîné des brèches de sécurité majeures. Il s'agissait du non-respect des standards et normes de sécurité, des lacunes et omissions en relation avec les services et la maintenance, une absence caractérisée d'informations sur les lacunes qui avaient été ou auraient dû être constatées, mais aussi d'autres violations (absence de tests, mauvaises configurations, etc.).

Elle a en particulier listé les violations suivantes :

-                 sécurité : absence de mises à jour du pare-feu W______ durant toute la durée du contrat, aucune documentation sur le pare-feu n'avait été mise à disposition malgré une demande spécifique en ce sens, l'accès à distance était très peu sécurisé, sur 97 systèmes gérés, 77 étaient considérés comme très vulnérables, seuls des correctifs (patchs) et des mises à jour négligeables ayant été effectués sur tous les serveurs concernés;

-                 maintenance : quasi absence de documentation disponible sur l'infrastructure (réseau et serveur) et omission d'avertir l'entreprise que pour certains systèmes d'exploitation de serveurs, le cycle de vie de l'assistance Microsoft était arrivé à son terme, ce qui avait exposé l'entreprise à un risque inacceptable;

-                 renouvellement quotidien du mot de passe de l'administrateur local sans que cela soit nécessaire;

-                 bandes de sauvegarde non cryptées ("unencrypted"), absence de test du site distant auprès de K______ INC.

Elle en a déduit que le lien de confiance était rompu et a réservé ses droits quant à d'éventuels dommages et intérêts.

t.i Dans le cadre de la présente procédure, A______ SA a allégué qu'au vu des conclusions du rapport établi par V______ SA, elle n'avait pas d'autre choix que de résilier le contrat la liant à B______ Sàrl avec effet immédiat.

Interrogé par le Tribunal, E______ a expliqué que la résiliation du contrat de B______ Sàrl se fondait tant sur les constats effectués par R______ durant le mois d'avril 2016 que sur le rapport V______ SA. Il ne faisait pas de doute pour lui que B______ Sàrl avait mis en danger le système informatique de A______ SA et n'avait pas effectué son travail.

Pour sa part, Y______, chef du service juridique de A______ SA d'octobre 2015 à août 2017, entendu en qualité de témoin, a déclaré qu'il estimait qu'il n'y avait pas d'autres possibilités que la résiliation du contrat, vu l'ampleur des violations et omissions révélées par l'audit externe, ajoutant que F______ avait toujours refusé de collaborer pour identifier les dysfonctionnements. Selon le témoin, le précité et sa société avaient omis de respecter le standard de la sécurité.

t.ii Confronté à la lettre de résiliation susvisée, R______ a indiqué ne pas avoir signé ce document, dont il n'avait pas eu connaissance. Il partait du principe qu'il avait été consulté sur des questions techniques avant la rédaction de ce courrier. Il a ensuite affirmé que sur le plan technique, il était d'accord avec le contenu dudit courrier. Mais il n'était pas là pour valider une quelconque résiliation sur le plan juridique. Il avait certainement survolé le contrat qui liait A______ SA à B______ Sàrl mais il ne se souvenait pas de son contenu. Il ne pouvait dès lors pas s'exprimer sur les éventuelles violations dudit contrat. Il s'agissait dans tous les cas de violations des bonnes pratiques admises dans le domaine informatique. Lorsque la lettre de résiliation lui a à nouveau été soumise par le Tribunal, il a confirmé qu'il y avait le non-respect des normes de sécurité, ce qu'il avait personnellement constaté avant le 29 avril 2016. Le témoin a confirmé que les infrastructures étaient en fin de vie. Il avait par ailleurs constaté qu'il n'y avait pas de documentation. Il a ajouté qu'en lisant les motifs de résiliation, il constatait qu'il s'agissait de motifs graves. Lui-même ne pouvait cependant pas répondre à la question de savoir si B______ Sàrl avait gravement violé ses obligations contractuelles. Le témoin ne se souvenait pas si la résiliation faisait suite au rapport V______ SA ou si un autre rapport plus complet avait été réalisé à la demande de A______ SA. Il estimait que quand on résiliait un contrat, on ne s'appuyait pas uniquement sur un rapport comme celui de V______ SA.

Le témoin a précisé qu'on ne pouvait pas parler de manquements, mais que lorsque les mises à jour n'étaient pas effectuées, il y avait plus de risques d'incidents. A la question de savoir si la rupture du contrat de B______ Sàrl faisait suite à la découverte de graves manquements, en particulier ceux liés aux mises à jour, R______ a répondu qu'il ne lui appartenait pas de juger ce qui avait justifié la résiliation du contrat. Il ignorait pourquoi ce contrat avait été résilié; il devait y avoir d'autres motifs.

R______ a relevé que les défaillances constatées risquaient de paralyser l'activité commerciale de A______ SA, mais que cela ne s'était pas produit durant les six mois au cours desquels il avait travaillé pour elle. Il a expliqué que les sauvegardes auprès de K______ INC n'étaient pas satisfaisantes et qu'il avait été décidé de migrer tout le système auprès d'un autre hébergeur.

Le précité a encore déclaré qu'il ne pouvait pas se prononcer sur les compétences techniques de F______ et de M______ pour maintenir le système informatique de A______ SA, car il n'avait été en contact avec eux que durant un court laps de temps. Lorsqu'il a été demandé au témoin de confirmer le fait que le travail de F______ s'était révélé a posteriori catastrophique, celui-ci a répondu qu'il ne pouvait pas se prononcer, car celui-ci avait travaillé, respectivement rendu des services à A______ SA pendant plusieurs années, alors que lui-même n'avait été employé de la société que durant un temps limité.

t.iii Pour sa part, H______ a expliqué que le constat d'absence de patchs ne constituait pas une faute puisque parfois c'était justement la pose d'un patch qui pouvait entraîner une faute.

H______ a par ailleurs exposé qu'à sa connaissance, B______ Sàrl n'avait pas violé gravement ses obligations contractuelles ni mis en danger l'ensemble de l'infrastructure informatique de A______ SA. Selon lui, B______ Sàrl, soit pour elle F______, disposait des compétences requises pour la maintenance de cette infrastructure.

t.iv Quant à F______, il estimait que B______ Sàrl avait accompli ses obligations avec diligence, conformément au contrat. Il a reconnu qu'il n'y avait pas eu de mises à jour des logiciels, précisant que c'était dû à des raisons budgétaires et à l'obsolescence du matériel, qui empêchait d'effectuer les mises à jour, au risque d'entraîner des pannes. F______ a par ailleurs indiqué que H______ avait toujours donné pour instruction d'installer les patchs seulement si c'était absolument nécessaire, puisqu'un patch introduisait un changement pouvant entraîner des effets secondaires. Le système était d'ailleurs opérationnel sans patching. F______ a en outre exposé qu'il n'avait aucune autorité ni pouvoir de décision, qu'il n'était qu'un simple technicien qui exécutait les mêmes tâches pour le compte de B______ Sàrl que lorsqu'il était employé de A______ SA. Il réparait les pannes des serveurs et de l'équipement. Il devait également signaler les problèmes rencontrés, ce qu'il faisait soit par oral soit par écrit.

Concernant les sauvegardes, F______ a expliqué qu'il avait continué à les effectuer de la même façon que H______. C'était lui qui lui avait donné pour instruction de le faire de manière non cryptée. Il n'avait pas averti qui que ce soit sur le fait qu'il n'était pas conforme aux règles de l'art de procéder ainsi. Selon F______, H______ avait testé le système de sauvegarde auprès de K______ INC.

Le témoin estimait avoir maintenu le système informatique de A______ SA dans un état optimal, malgré les contraintes et les restrictions dans lesquelles il l'avait trouvé. Il avait d'ailleurs été mandaté pour maintenir le système en l'état. Il considérait disposer des connaissances techniques et pratiques suffisantes pour effectuer le travail qui lui a été confié et a rappelé qu'aucun incident ne lui avait été signalé tout au long de sa collaboration avec A______ SA. Il a assuré ne pas avoir mis en danger l'infrastructure informatique de A______ SA. Il n'avait jamais été critiqué concernant les mises à jour et les équipements de protection du réseau informatique entre 2006 et 2016.

Selon lui, il aurait d'ailleurs été impossible de cacher ce qui lui était reproché durant dix ans. A______ SA n'avait formulé aucune remarque négative ou demande de correction avant l'engagement de R______, et ne lui avait adressé aucun avertissement à lui-même, respectivement à B______ Sàrl, entre le 1er et le 29 avril 2016. Il a ajouté que s'il avait été informé des reproches mentionnés dans la lettre de résiliation, il aurait pu les réparer si le matériel avait été changé.

t.v Le témoin M______ a également affirmé qu'il n'avait jamais reçu de critique au sujet de son travail ou celui de F______ pendant qu'il travaillait pour A______ SA. Il considérait que B______ Sàrl avait fourni du bon travail et pensait que H______ en était satisfait.

u. Le 30 avril 2016, M______ s'est connecté au système afin de vérifier les sauvegardes mais ses identifiants ne fonctionnaient pas.

Le 2 mai 2016, F______ et M______ se sont rendus chez A______ SA pour travailler; il leur a été demandé de quitter les locaux.

v. Le 12 mai 2016, B______ Sàrl a répondu qu'elle contestait la résiliation du 29 avril 2016 et a mis en demeure A______ SA de lui verser les deux mensualités de 20'500 fr. plus TVA dues pour les mois de mars et avril 2016. Elle a en outre réservé tous ses droits découlant de cette résiliation.

Le 10 juin 2016, B______ Sàrl a mis A______ SA en demeure de lui payer les honoraires des mois de mars et avril 2016, ainsi que 143'500 fr. équivalant au solde des mensualités de l'année 2016, 246'000 fr. correspondant au solde des mensualités pour 2017 et 39'900 fr. à titre de remboursement du rabais de 15% octroyé à la condition que le contrat dure trois ans.

Le 27 octobre 2016, B______ Sàrl a fait notifier à A______ SA un commandement de payer, poursuite n° 1______, pour un montant total de 526'932 fr., lequel a été frappé d'opposition.

w. A la suite de la résiliation du contrat, plusieurs sociétés sont intervenues chez A______ SA, d'une part pour effectuer de nouvelles expertises du système informatique (Z______ SA en mai 2016 et L______ en juillet 2016), d'autre part pour procéder à des modifications et à du remplacement de matériel informatique.

Il a en particulier été demandé à V______ SA d'installer de nouveaux switches, à Z______ d'intervenir concernant des problèmes de sauvegardes et à AA______ SA de remplacer les serveurs de courriels et d'analyser les possibilités d'un remplacement des programmes Microsoft Office (cf. témoignages R______ et X______) ainsi que d'installer de nouveaux pare-feux en juin 2016 (cf. interrogatoire de E______).

w.i Ainsi, durant l'été 2016, les switches ont été changés par V______ SA. R______ a expliqué que les machines virtuelles avaient alors été perdues faute de connexion et que les techniciens avaient passé une nuit à les rétablir. Il leur manquait la racine du mot de passe, qu'ils avaient réussi à restaurer, mais cela avait pris du temps puisque B______ Sàrl n'était plus là et qu'ils ne pouvaient dès lors plus leur demander la racine en question. Ils avaient alors appelé AB______ de Z______ SA, qui leur avait conseillé de faire un reset.

Pour sa part, le témoin Y______ a exposé que tout le système informatique de la société avait été bloqué durant l'été en question. Selon lui, un manque de mises à jour était à l'origine de ce blocage. Les versions des logiciels étaient en fin de vie et il n'y avait pas de patch. Le remplacement de "ce" logiciel aurait dû être effectué depuis longtemps. Le hardware aurait également dû être remplacé. Le témoin a ajouté que A______ SA avait dû entièrement réinstaller son parc informatique en raison du problème de mots de passe, ceux laissés par B______ Sàrl étant faux voire manquants.

Pour sa part, B______ Sàrl a contesté être responsable de ce blocage, précisant qu'il n'y avait jamais eu pareil blocage lorsqu'elle se chargeait de l'informatique.

w.ii Le témoin AB______, administrateur de la société Z______ SA, a exposé qu'il connaissait A______ SA depuis 2002 et avait été mandaté par celle-ci à diverses reprises pour des conseils et dépannages. Il a expliqué que sa société était intervenue sur requête de A______ SA en mai 2016, afin de récupérer des données qui n'avaient pas été sauvegardées. On lui avait alors demandé de vérifier l'état des sauvegardes, des serveurs et de l'informatique en général. Lors de son intervention, il avait remarqué que la plupart des sauvegardes étaient défectueuses ou incorrectes. Ces dernières étaient effectuées sur des cassettes, mais les données ainsi copiées étaient inutilisables car incomplètes. L'absence de sauvegarde engendrait des risques de pertes de données et de production, notamment dans le domaine comptable. Il avait en outre constaté que les serveurs n'avaient pas été mis à jour depuis des années, que le matériel était en fin de vie, que les mises à jour sur les pare-feu n'avaient pas été effectuées (étant précisé qu'une partie de celles-ci étaient payantes) et qu'il y avait un risque de vulnérabilité et de perte de données. Le témoin ne savait pas pourquoi les mises à jour n'avaient pas été effectuées : soit la personne qui était chargée de les faire ne s'était pas exécutée, soit les applications n'étaient pas compatibles avec les mises à jour.

Par courriel du 12 mai 2016, AB______ a informé R______ des constats qu'il avait effectués. Il a recommandé une simplification du réseau, l'ajout d'une véritable redondance pour les serveurs critiques, la vérification de certains serveurs (mise à niveau ou achat d'un nouveau serveur), la reconstruction d'un véritable plan de sauvegarde en utilisant un seul logiciel. Il a proposé la location d'un serveur pendant six mois en vue de sauvegarder toutes les données et d'un autre serveur pour la redondance. Il a expliqué que cela réduirait les coûts dans l'attente de la reconstruction de la nouvelle infrastructure.

A______ SA ayant répondu favorablement à cette offre, tout a été réinstallé et les données ont été migrées sur un autre système informatique auprès de Z______ SA. Selon AB______, A______ SA avait achevé la migration de son système informatique vers les locaux de Z______ SA en décembre 2016.

E______ a, pour sa part, expliqué que la société avait le choix soit de remplacer l'équipement existant, soit de migrer la base de données vers un hébergement externe de qualité. Il était plus intéressant financièrement de migrer vers un site externe, à savoir Z______ SA, ce d'autant plus avec la migration en Ukraine qui avait suivi. Sur ce dernier point, le témoin AB______ a indiqué que le projet de migration du système informatique de A______ SA vers l'Ukraine était un projet de longue date, soit d'avant 2016.

w.iii Entre-temps, en juillet 2016, A______ SA a mandaté L______ SA pour une nouvelle expertise de son système informatique.

Lorsqu'il a été interrogé par les autorités pénales (dans le cadre d'une procédure pénale alors diligentée contre F______ et M______ du fait qu'ils auraient accédé à distance au système informatique de A______ SA le lendemain de la résiliation de contrat présentement litigieuse, étant précisé que cette procédure a été classée), U______, administrateur de L______ SA, a notamment expliqué que sa société était intervenue sur demande de Me CAPT, conseil de A______ SA, afin de vérifier si les bonnes pratiques de la sécurité informatique avaient été respectées par B______ Sàrl et de déterminer si des risques étaient encourus du fait de certaines défaillances, étant relevé qu'il a admis avoir échangé des courriels au sujet de ce dossier avec Me CAPT. C'était un collaborateur de la société L______ SA (qui est décédé) qui avait réalisé l'expertise, U______ ayant pour sa part supervisé la mission d'expertise (cf. PV d'audience du Ministère public du 23 janvier 2019).

Dans son rapport du 14 juillet 2016, L______ SA a mentionné que l'objectif était de déterminer si les opérations de maintenance menées entre janvier 2015 et le 29 avril 2016 l'avaient été correctement et, le cas échéant, d'établir la liste des erreurs et déficiences.

Pour ce faire, L______ SA a procédé à une analyse documentaire technique sur site et à un test d'intrusion sur les systèmes, les réseaux et les infrastructures en place. Elle a pris différentes conclusions en lien avec les éléments nommés dans la lettre de résiliation du 29 avril 2016 et l'Enterprise Agreement.

Les éléments suivants résultent notamment de ce rapport :

-                 Le budget IT avait été limité au cours des dernières années et ne permettait pas un investissement conséquent dans le domaine de l'infrastructure informatique;

-                 L______ SA a confirmé l'absence de mise à jour des pare-feu, l'insécurité de l'accès à distance, l'absence de patchs et celle de documentation, ainsi que la vétusté du système et le non cryptage des cassettes de sauvegarde;

-                 La maintenance des serveurs matériels et logiciels n'avait pas été correctement effectuée. La campagne de maintenance effectuée en urgence au mois d'avril 2016 avait laissé les systèmes dans un état instable. Certains serveurs n'étaient pas corrigés depuis 2011, d'autres fonctionnaient avec des versions de Windows non supportées. Les équipements réseaux et sécurité, de même que les logiciels d'infrastructure clé (sauvegarde, archivage emails et fichiers utilisateurs) fonctionnaient avec des versions obsolètes de leur logiciel, mettant ainsi en péril la sécurité et la disponibilité du système informatique. Une des deux salles informatiques n'était pas aux normes (non -respect des normes de sécurité quant à la circulation des personnes, risque d'électrocution en raison de la mise en place d'une climatisation à circuit d'eau proche des équipements informatiques, etc.). L______ SA en a déduit que les serveurs et les équipements d'infrastructure n'avaient pas été maintenus dans les règles de l'art et exposaient A______ SA à des problèmes de disponibilité ou de sécurité;

-                 Les équipements de stockage du site de production et la réplication avec le site distant de secours n'avaient ni été gérés ni maintenus. Concernant le site distant, il a en particulier été indiqué qu'il n'était pas fonctionnel, car les schémas étaient faux, que les mécanismes avaient évolué sans documentation et que certains mots de passe manquaient de sorte qu'ils n'avaient pas pu se connecter à ce site;

-                 Le reporting était incomplet;

-                 Le système d'information de A______ SA était vulnérable à des tentatives de pénétration depuis Internet en raison de nombreuses erreurs de conception, de configuration et de maintenance des systèmes exposés à Internet.

Il résulte également du rapport de L______ que le rôle de responsable de la sécurité du système d'information n'était pas formalisé au sein de la société A______ SA. Les équipements de sécurité étaient gérés par B______ Sàrl, mais la gouvernance sécurité, les politiques, les investigations, la gestion des incidents de sécurité n'incombait pas à cette dernière. L'activité de gestion de crise et DRP (plan de secours IT) était confiée à H______ dans le cadre de son rôle de responsable IT avant l'arrivée de R______.

Entendu comme témoin, U______ a mentionné que, sur le plan purement technique, la maintenance de l'infrastructure informatique de A______ SA avait été victime d'une négligence grave, d'un manque d'organisation, de suivi et de garantie de résultat. Selon lui, les manquements constatés étaient de nature à paralyser les activités commerciales de A______ SA, par exemple par le biais d'une attaque de type "ransomware", étant précisé que le backup est la seule manière de restaurer un système paralysé. Il a expliqué avoir mené un test et avoir pu s'introduire dans le système comme un pirate en une heure. Selon lui, il y avait un risque de pertes et de fuites de données, bien qu'il reconnaisse qu'aucun incident n'avait été identifié les années précédant son intervention. Il estimait qu'il y avait un manque de compétences du point de vue de la sécurité informatique car il n'y avait pas de patch informatique et une vulnérabilité exploitable depuis Internet.

U______ a par ailleurs expliqué que les mises à jour étaient gratuites et qu'aucun problème de budget ne pouvait en empêcher l'installation. Il s'agissait d'un problème de gestion des priorités. On ne pouvait pas expliquer l'absence de mise à jour par l'obsolescence du matériel. Il a cependant ajouté que parfois, le matériel était tellement obsolète qu'on ne pouvait pas effectuer de mise à jour, car elles n'existaient pas. Il s'agissait d'un problème d'obsolescence du matériel. Ils avaient constaté la coexistence de deux systèmes : l'un était obsolète et l'autre qui était là pour le remplacer. Les mises à jour n'étaient pas effectuées sur le système obsolète. Avant que ce système ne devienne obsolète, les mises à jour étaient disponibles, mais elles n'avaient pas été effectuées. Les mises à jour étaient en parties appliquées sur le nouveau système. Le nouveau système était installé partiellement et l'ancien était toujours opérationnel. Pour eux, c'était un problème d'organisation. Il avait dû y avoir un problème technique qui avait dû les empêcher de faire la bascule. Il y avait des infrastructures, mais elles n'étaient pas opérationnelles car le travail n'était pas accompli jusqu'au bout (firewall, backup des mails, backup de sites secondaires, etc.).

Le témoin U______ avait en outre constaté que les sauvegardes du système n'étaient pas effectuées, qu'il n'y avait aucune preuve de la possibilité de restaurer le système depuis le site de sauvegarde et qu'il n'y avait aucune documentation. Selon le témoin, le système n'était pas dupliqué auprès du centre K______ INC, en tout cas pas en totalité. Il était possible qu'une partie ait été transférée auprès de K______ INC. En principe, l'intégralité du système aurait dû l'être, afin de permettre une continuité des activités en cas de défaillance du site principal. Le témoin a ajouté que le serveur auprès de K______ INC n'était, à sa connaissance, pas opérationnel.

Pour le surplus, le témoin a confirmé le contenu du rapport et l'évaluation de L______ SA.

w.iv B______ Sàrl n'a été entendue par aucune des sociétés mandatées par A______ SA pour réaliser des expertises de son système informatique.

x. Le 30 septembre 2016, R______ a mis un terme à son contrat avec A______ SA.

Il a expliqué qu'entre les mois d'avril et septembre 2016, il avait consacré 75-100% de son temps à la remise en conformité du système informatique de la société.

y. AC______, employé de A______ SA entre septembre 2016 et juin 2017, a succédé à R______ en tant que responsable du département informatique. Entendu en qualité de témoin, il a indiqué qu'il avait passé la plus grosse partie de son temps à remettre en état le système informatique, qui se trouvait dans un état désastreux à son arrivée. Le problème essentiel était le manque de mises à jour de sécurité, de migrations de versions qui n'étaient pas supportées et l'absence de sauvegarde. Il a relevé que le système était fragile en cas de problème. Lors de son départ, tout était en très bon état de fonctionnement.

z. A______ SA a allégué que son système informatique avait fait l'objet d'une contamination par un virus de type "cryptolocker" en décembre 2016.

D. a. Par acte déposé en vue de conciliation le 8 novembre 2016 et introduit le 16 mai 2017, A______ SA a saisi le Tribunal de première instance d'une action dirigée contre B______ Sàrl, concluant notamment, s'agissant des conclusions demeurées litigieuses en seconde instance, à ce que celle-ci soit condamnée à lui verser le montant de 258'462 fr. 45 avec intérêts à 5% dès le 29 avril 2016, que la poursuite n° 1______ soit annulée et qu'il soit ordonné à B______ Sàrl de procéder à la radiation immédiate de cette poursuite.

Elle a détaillé les postes de son dommage comme suit :

-                 32'431 fr. 95 de frais d'audits et d'analyses des dysfonctionnements confiés aux sociétés L______ SA, V______ SA et AA______ SA;

-                 119'434 fr. 75 pour la remise en conformité du système informatique par la société Z______ SA;

-                 91'578 fr. 35 pour le temps consacré par ses employés à la résolution des problèmes causés par les manquements de B______ Sàrl (soit 24'598 fr. 35 pour l'activité déployée par AC______ durant le tiers de son temps de travail durant les mois de décembre 2016 à mai 2017, 65'760 fr. pour 80% du temps passé par R______ d'avril à septembre 2016, et 1'220 fr. pour 20 heures de travail de AD______ du département juridique);

-                 15'017 fr. pour les frais d'avocat avant procès.

A l'appui de ses conclusions, elle a fait valoir que B______ Sàrl avait gravement manqué à ses obligations contractuelles et fait preuve d'un manque de diligence patent dans l'accomplissement de ses tâches. Elle lui a reproché de ne pas disposer des compétences techniques requises pour assurer la maintenance de son système informatique et d'avoir de ce fait mis en danger de manière fautive l'ensemble de son infrastructure informatique. Elle estimait que l'état de faiblesse et de vulnérabilité de ladite infrastructure avaient rendu la continuation du contrat intolérable et que l'ensemble des violations susmentionnées constituaient de justes motifs de résiliation. Selon elle, le contrat de maintenance qui l'avait liée à B______ Sàrl impliquait pour cette dernière une obligation continue de résultat, à savoir assurer en tout temps la maintenance et la sécurité de son système informatique. Elle en déduisait une application par analogie des dispositions relatives au contrat d'entreprise.

b. B______ Sàrl a conclu au rejet de la demande de A______ SA.

Sur demande reconventionnelle, elle a notamment requis la condamnation de sa partie adverse à lui verser le montant de 487'080 fr. avec intérêts à 5% dès le 20 juin 2016 à titre de mensualités de mars 2016 à décembre 2017, ainsi que le prononcé de la mainlevée définitive de l'opposition formée par A______ SA au commandement de payer, poursuite n° 1______ à concurrence du montant de 526'932 fr.

B______ Sàrl a souligné qu'elle agissait sous la direction et la supervision du responsable du département informatique de A______ SA, lequel était chargé de prendre toutes les décisions quant au logiciel de sécurité du réseau informatique à installer et aux opérations de maintenance à entreprendre, mais aussi de valider les rapports établis et la documentation relative à l'infrastructure informatique. B______ Sàrl estimait ne pas pouvoir être tenue responsable des défauts constatés sur le réseau informatique par les experts mandatés par A______ SA. En effet, son cahier des charges portait sur la maintenance et non sur le choix des logiciels de protection du réseau informatique, ni sur le matériel ou l'équipement devant être installé. Elle a rappelé qu'elle n'avait jamais reçu aucune plainte de la part de A______ SA au cours de rapports contractuels, de sorte qu'elle mettait en doute l'existence même de défauts du système informatique. Elle a ensuite fait valoir que A______ SA ne l'avait pas avisée des défauts ni ne lui avait imparti un délai de 30 jours pour y remédier, comme prévu dans le contrat. Selon elle, aucun des reproches émis à son égard ne justifiait une résiliation immédiate, de sorte que la rupture du contrat était injustifiée. Elle estimait donc avoir droit à une indemnisation correspondant à l'exécution conforme du contrat par A______ SA, soit au paiement de 487'080 fr. pour les mensualités dues de mars 2016 à décembre 2017.

c. A______ SA a conclu au rejet de la demande reconventionnelle formée par sa partie adverse.

Elle a maintenu que la rupture anticipée du contrat était justifiée. Elle a expliqué que le travail de F______ s'était rétrospectivement avéré catastrophique et que cela n'avait pas pu être découvert avant le 30 mars 2016 puisqu'aucun employé ne disposait des connaissances techniques nécessaires pour juger de la qualité réelle des prestations fournies par celui-ci. Elle a fait valoir qu'elle avait toujours bénéficié d'une excellente santé financière entre 2013 et 2016, de sorte que B______ Sàrl ne pouvait pas justifier ses manquements par de prétendues limitations budgétaires.

d. B______ Sàrl a dupliqué sur demande principale et répliqué sur demande reconventionnelle.

Elle a pris acte du fait que A______ SA affirmait qu'elle n'avait pas les compétences sur le plan technique pour vérifier ses prestations. Cela étant, elle a rappelé avoir travaillé sous les ordres et la supervision de H______, qui disposait selon elle des compétences techniques requises. B______ Sàrl a en outre rappelé que plusieurs audits du réseau informatiques avait été ordonnés durant son activité pour A______ SA, de sorte que si son travail, respectivement celui de F______, avait été si catastrophique, cela se serait remarqué bien avant.

e. Le Tribunal a interrogé les parties et entendu plusieurs témoins, dont les déclarations ont été retranscrites dans l'état de fait ci-dessus dans la mesure utile.

Pour le surplus, le témoin F______ a déclaré qu'après la résiliation présentement litigieuse du contrat, il avait vendu la société B______ Sàrl afin de pouvoir bénéficier du chômage. Cette société demeurait active uniquement dans le but d'obtenir réparation dans le cadre de la présente procédure, qui ne concernait toutefois pas le nouveau gérant. Le témoin a précisé qu'il s'agissait de sa propre cause, dont il assumait lui-même les coûts.

f. A la suite des auditions de témoins, A______ SA a renoncé à la demande d'expertise qu'elle avait formulée au cours de la procédure.

g. Dans ses plaidoiries finales, A______ SA a encore fait valoir, pour la première fois, que l'absence de remise des rapports mensuels par B______ Sàrl constituerait également une violation grave et flagrante de ses obligations contractuelles.

Pour sa part, B______ Sàrl a fait valoir que les prétendus manquements reprochés se référaient en réalité à un mode de fonctionnement du service informatique mis en place sous la direction de H______ durant près de dix ans, conformément à la volonté et aux moyens mis à disposition par A______ SA. B______ Sàrl était d'avis que la résiliation anticipée du contrat s'inscrivait dans le cadre d'une volonté de limitation des coûts et de migration de l'ensemble du système en Ukraine.

EN DROIT

1. 1.1 Interjeté dans le délai utile et suivant la forme prescrite par la loi (art. 130, 131, 142, 143 et 311 al. 1 CPC) à l’encontre d’une décision finale de première instance, rendue dans un litige dont la valeur litigieuse au dernier état des conclusions est supérieure à 10’000 fr. (art. 91 ss et 308 al. 2 CPC), l’appel est recevable.

1.2 La Cour revoit la cause avec un plein pouvoir d’examen (art. 310 CPC). Elle applique la maxime des débats et le principe de disposition (art. 55 al. 1 et 58 al. 1 CPC).

2. La qualification juridique du contrat conclu entre les parties n'est pas litigieuse. L'appelante fait cependant grief au Tribunal de ne pas avoir appliqué les règles relatives au contrat d'entreprise pour déterminer les conséquences de la résiliation de ce contrat.

2.1 Le contrat d'entretien ou de maintenance désigne le contrat par lequel une partie s'engage à l'égard d'une autre, contre rémunération, à contrôler un objet et à le maintenir en état de fonctionner (Tercier/Bieri/Carron, Les contrats spéciaux, 5ème éd. 2016, n. 3549). Il s'agit d'un contrat innomé s'il a une nature durable (ATF 130 III 458 consid. 4; Tercier/Bieri/Carron, op. cit., n. 3551; Venturi-Zen-Ruffinen, La résiliation pour justes motifs des contrats de durée, 2007, p. 43). Le contrat d'entretien ou de maintenance, qui n'est réglé ni par le Code des obligations ni par la loi, est un contrat innommé sui generis présentant des similitudes avec le contrat d'entreprise (arrêt du Tribunal fédéral 4C.139/2005 du 29 mars 2006 consid. 2.2; Morand, Le contrat de maintenance en droit suisse, thèse Fribourg, 2007, p. 17). Un tel contrat ne peut cependant pas être résilié selon les règles sur le contrat d'entreprise, ni selon celles du mandat (Tercier/Bieri/Carron, op. cit., n. 3551; ACJC/359/2018 du 20 mars 2018 consid. 2.1).

En présence d'un contrat de durée sui generis qui prévoyait des conditions de résiliation détaillées, le Tribunal fédéral a considéré qu'il n'était pas nécessaire de recourir à des analogies avec les règles prévues pour les contrats nommés (arrêt du Tribunal fédéral 4A_146/2016 du 18 juillet 2016 consid. 4.3).

2.2 Les parties ne remettent pas en cause l'appréciation du Tribunal selon laquelle elles avaient été liées par un contrat de maintenance, au vu de ses prestations caractéristiques, et que ce contrat était innommé, du fait qu'il avait été conclu pour une durée minimale de trois ans.

L'appelante considère toutefois que les règles relatives au contrat d'entreprise seraient applicables au présent litige, à tout le moins par analogie, puisque les prestations de maintenance à fournir par l'intimée impliquaient une obligation de résultat. Cela étant, dans la mesure où le contrat conclu entre les parties stipulait clairement les délais et le mode de résiliation de celui-ci, il n'y a pas lieu de recourir à cet égard à l'application analogique de dispositions légales prévues pour d'autres types de contrats.

Les critiques de l'appelante sur ce point sont dès lors infondées.

3. Il est admis qu'une rupture anticipée du contrat avec effet immédiat présupposait de justes motifs, conformément notamment aux dispositions topiques de l'"Enterprise Agreement". L'appelante fait cependant grief au Tribunal d'avoir nié l'existence de tels motifs.

3.1
3.1.1 
Selon un principe général, les contrats de durée peuvent être résiliés de façon anticipée par une partie lorsque de justes motifs rendent l'exécution du contrat intolérable pour elle (ATF 138 III 304 consid. 7; 133 III 360 consid. 8.1;
128 III 428 consid. 3; arrêt du Tribunal fédéral 4A_241/2017 du 31 août 2018 consid. 4.1). Ces principes sont ainsi également applicables aux contrats dits "informatiques" de durée (arrêt du Tribunal fédéral 4A_573/2020, 4A_575/2020 du 11 octobre 2021 consid. 6). L'existence d'un juste motif de résiliation dispense celui qui l'invoque d'indemniser son cocontractant pour le dommage subi, dans la mesure où il exerce un droit légitime; tel est en particulier le cas lorsque la résiliation est provoquée par une violation contractuelle commise par l'autre partie (Venturi-Zen-Ruffinen, op. cit., n. 196 et 1483).

La résiliation pour justes motifs suppose que la continuation du contrat jusqu'à l'expiration de sa durée convenue (s'il s'agit d'un contrat à durée déterminée) ou jusqu'au prochain terme de résiliation ne puisse pas être exigée selon les règles de la bonne foi (Venturi-Zen-Ruffinen, op. cit., p. 69). Les justes motifs peuvent consister dans l'inobservation ou la violation de clauses contractuelles par une partie, mais aussi être d'une autre nature (ATF 138 III 304 consid. 7; 128 III 248 consid. 3c; arrêt du Tribunal fédéral 4A_241/2017 du 31 août 2018 consid. 4.1). Des violations contractuelles spécialement graves fournissent généralement un juste motif de résiliation (ATF 138 III 304 consid. 7; arrêt du Tribunal fédéral 4A_241/2017 du 31 août 2018 consid. 4.1). Un manquement au contrat de moindre importance mais répété peut également justifier la résiliation du contrat pour justes motifs. Dans ce cas, un avertissement est en principe nécessaire. De même, plusieurs violations du contrat qui, prises en elles-mêmes, ne sont pas suffisamment graves pour justifier la résiliation du contrat peuvent justifier la résiliation pour justes motifs lorsque, considérées dans leur ensemble, elles sont propres à détruire définitivement le lien de confiance entre les parties. Il n'est pas nécessaire que les (différentes) violations soient intervenues en même temps. Ainsi, des violations antérieures peuvent également être invoquées à l'appui d'une résiliation pour justes motifs. L'on ne peut cependant en tenir compte que si la partie qui entend résilier le contrat a réagi à ces violations lors de leur survenance, faute de quoi elle est présumée les avoir tolérées et ne peut plus s'en prévaloir après coup (Venturi-Zen-Ruffinen, op. cit., p. 150 s.).

Le juge apprécie librement, au regard des principes du droit et de l'équité déterminants selon l'art. 4 CC, s'il existe des justes motifs. A cette fin, il prend en considération tous les éléments concrets du cas particulier (ATF 132 III 109 consid. 2; 128 III 428 consid. 4). Parmi les circonstances particulières du cas et les intérêts en présence, il est tenu compte notamment des responsabilités des parties, de la nature et la durée des rapports, ainsi que de la nature et l’importance des manquements contractuels (Jaccard/Robert, Les contrats informatiques, in : Pichonnaz/Werro (éd.), La pratique contractuelle : actualité et perspectives, Symposium en droit des contrats, 2009, p. 118). On admettra d'autant plus difficilement la rupture du lien de confiance que le contrat a été exécuté régulièrement pendant longtemps (Venturi-Zen-Ruffinen, op. cit., p. 158).

Selon la jurisprudence, la partie qui veut résilier le contrat avec effet immédiat doit agir sans tarder à compter du moment où elle a connaissance d'un juste motif, sous peine d'être déchue du droit de s'en prévaloir. Si elle tarde à agir, elle donne à penser qu'elle a renoncé à la résiliation anticipée, respectivement qu'elle peut s'accommoder de la continuation des rapports de travail jusqu'à l'échéance ordinaire du contrat (ATF 138 I 113 consid. 6.3.1; 127 III 310 consid. 4b p. 315; arrêt du Tribunal fédéral 4A_236/2012 du 2 août 2012 consid. 2.4, in SJ 2013 I 65).

Dans la mesure où le principe de la fidélité contractuelle domine le droit des obligations, la résiliation anticipée d'un contrat de durée ne peut entrer en ligne de compte qu'exceptionnellement (arrêts du Tribunal fédéral 4A_573/2020; 4A_575/2020 précité consid. 6.2 et les références citées).

3.1.2 L’objectif du contrat de maintenance informatique est d’assurer le bon fonctionnement d’un programme ou d’un système informatique par le biais de son entretien technique. Le contrat de maintenance peut donc être conclu de manière indépendante ou en annexe à d’autres contrats. Chaque contrat de maintenance pourra prévoir des prestations pouvant varier d’une simple obligation d’assurer le bon fonctionnement d’une solution informatique à l’obligation de garantir l’évolution du programme ou du système, en passant parfois par la sauvegarde des données qui y sont exploitées (Alberini/Pfammatter-Boillat, Prestations digitales et indications de provenance, SJ 2023 p. 153 ss, 159), voire encore sur la fourniture de mises à jour lorsque celles-ci existent, des obligations de surveillance ou des garanties de fonctionnement (Ancelle/Ferdjani, Les contrats informatiques – État des lieux et questions choisies, in : Richa Alexandre/ Canapa Damiano (éd.), Droit et économie numérique, Berne 2021, p. 142)

Le contrat de maintenance sous sa forme la plus traditionnelle (maintenance curative) consiste à assurer le bon fonctionnement d’un système informatique par le biais de la suppression des anomalies pouvant affecter celui-ci (Alberini/Pfammatter-Boillat, op. cit., p. 167).

3.1.3 Le tribunal établit sa conviction par une libre appréciation des preuves administrées (art. 157 CPC).

Il n'est pas arbitraire en soi de prendre en compte la déposition d'un témoin enclin à soutenir les intérêts d'une partie (arrêt du Tribunal fédéral 5P_312/2005 du 14 décembre 2005 consid. 3.1.2). Par ailleurs, le témoignage d’une personne ne peut être exclu du seul fait qu’elle pourrait avoir un intérêt au sort du procès (arrêt du Tribunal fédéral 4A_673/2016 du 3 juillet 2017 consid. 2.1.2).

Les témoins ne doivent s’exprimer que sur les faits qu’ils ont perçus, mais non sur leur appréciation de ces faits, ni communiquer ou appliquer des connaissances spécialisées (arrêt du Tribunal fédéral 5A_723/2017 du 17 décembre 2018 consid. 6.4.2).

Une expertise privée établie pour l'une ou l'autre des parties ne constitue pas un moyen de preuve dans un éventuel procès, mais n'a que la valeur d'une simple allégation de la partie qui la produit en cause (arrêt du Tribunal fédéral 4D_8/2008 du 31 mars 2008 consid. 3.2.2). Le fait qu'une expertise privée n'ait pas la même valeur qu'une expertise judiciaire ne signifie toutefois pas encore que toute référence à une expertise privée dans un jugement soit constitutive d'arbitraire. Il se peut en effet que ladite expertise ne soit pas contestée sur certains points ou encore qu'elle se révèle convaincante, à l'instar d'une déclaration de partie. Il est également possible que l'expert privé, entendu comme témoin, confirme des éléments de fait précis de son rapport (arrêt du Tribunal fédéral 4D_71/2013 du 26 février 2014 consid. 2.5). Dans la mesure où les déclarations de l’expert privé entendu comme témoin ne concernent pas directement ses propres perceptions, mais des conclusions qu’il a retirées, sur la base de ses perceptions, de faits d’expérience accessibles de manière générale et en tout temps, l’audition de l’expert privé n’est pas plus un moyen de preuve adéquat que l’expertise privée elle-même. Si toutefois le tribunal ne se fonde pas seulement sur le rapport et sur l’audition de l’expert privé, mais aussi sur les déclarations d’autres témoins et un e-mail, même l’expertise privée, à laquelle s’ajoutent des indices – établis par des moyens de preuves – peut apporter la preuve (arrêt du Tribunal fédéral 4A_309/2017 du 26 mars 2018 consid. 2.3.6).

3.2 En l'espèce, l'appelante reproche au Tribunal d'avoir violé le droit et d'avoir mal apprécié les preuves en considérant que les motifs indiqués dans la lettre de résiliation n'étaient pas propres à fonder une rupture anticipée du contrat pour justes motifs.

3.2.1 L'appelante fait tout d'abord grief au premier juge d'avoir omis d'examiner les violations contractuelles alléguées à l'aune de l'obligation de résultat à laquelle l'intimée était, selon elle, tenue. L'appelante perd cependant de vue que les clauses contractuelles ne permettent pas de discerner le niveau de service qui était attendu de l'intimée et quelles éventuelles garanties y auraient été associées. Aucun indicateur n'ayant été défini par les parties, il semble difficile d'établir que les prestations fournies par l'intimée n'auraient pas atteint le seuil minimal de qualité qui était attendu d'elle. D'ailleurs, l'appelante fait preuve d'une certaine mauvaise foi en se plaignant a posteriori de ce que les prestations de l'intimée étaient déficientes, alors qu'elle était censée être dûment et régulièrement informée de l’activité déployée par celle-ci – puisqu’elle avait chargé son chef du département informatique (respectivement une société externe créée par son ancien chef du département informatique) de la superviser – et qu'elle n'a pas démontré avoir émis la moindre critique à leur égard jusqu'au moment de la rupture prématurée du contrat.

Il convient de relever au passage que l'appelante est malvenue de reprocher au Tribunal une "certaine méconnaissance des réalités en matière informatique" alors qu'elle-même a osé prétendre qu'aucune personne au sein de son entreprise – soit pas même le chef de son département informatique chargé de superviser le travail de maintenance de F______ puis de B______ Sàrl – ne disposait des compétences techniques nécessaires pour réellement juger de la qualité des prestations fournies. D'ailleurs, il apparaît surprenant que malgré ses affirmations sur ce point, qui semblent mettre en doute que H______ ait accompli son devoir de supervision à satisfaction (alors que si tel avait été le cas, cela aurait permis de déceler les prétendues carences de F______ bien plus tôt), l'appelante ne s'est pas départie du contrat qui la lie à P______ SA, l'entreprise fondée par H______.

3.2.2 Quoi qu'il en soit, avant d'examiner plus spécifiquement les autres critiques de l'appelante, il y a lieu de rappeler que la convention conclue par les parties prévoyait un mécanisme de résiliation anticipée du contrat en cas de violation, par le cocontractant, d'une condition importante dudit contrat, si celui-ci ne remédiait pas au défaut ou à la situation contraire au contrat dans un délai de trente jours à réception de la mise en demeure, ce délai devant être prolongé (d'au maximum trente jours) en cas d'impossibilité de pallier le manquement signalé dans le premier délai imparti. Les parties avaient donc instauré un mécanisme contractuel pour sauvegarder leurs relations contractuelles même en cas de violation d'obligations importantes prévues par la convention. Quand bien même la notion de "violation d'une condition importante du contrat" ("breach of any material term or condition") n'est pas explicitée par des exemples concrets dans leur accord, cela permet néanmoins de retenir qu'aux yeux des parties, même la violation d'éléments importants du contrat ne constituait pas un manquement particulièrement grave propre à détruire immédiatement le rapport de confiance et à empêcher la continuation de la relation contractuelle.

Aussi, seule une totale inexécution des obligations contractuelles, voire un comportement fautif intentionnel ou une négligence grave faisant obstacle à la bonne exécution des obligations contractuelles pouvait justifier une résiliation immédiate du contrat.

L'appelante l'a bien compris, puisqu'elle plaide que les irrégularités reprochées à l'intimée constitueraient de graves violations des obligations contractuelles de l'intéressée ou à tout le moins des négligences graves et des manquements aux règles de l'art les plus élémentaires en matière de sécurité informatique.

3.2.3 Pour appuyer sa thèse, l'appelante se réfère essentiellement aux expertises privées qu'elle a versées au dossier – qui, comme telles, n'ont pas plus de valeur que de simples allégations de sa part, à moins d'être confirmées par d'autres éléments du dossier – ainsi qu'aux témoignages de U______ et de R______.

L'appelante reproche notamment au premier juge de ne pas avoir accordé davantage de crédit au témoignage de U______, qui aurait permis, selon elle, de démontrer que l'intimée a commis des négligences graves dans le cadre de son activité.

Or, il convient de relever que U______ n'a a priori effectué aucun constat sur place dans les locaux de l’appelante, puisqu'il a uniquement assuré la supervision de la mission d'expertise privée réalisée par un collaborateur de sa société (désormais décédé). Ses déclarations ne semblent ainsi pas reposer sur ses propres perceptions de l'état du système informatique de l'appelante à l'époque des faits présentement litigieux. Quand bien même des témoignages indirects peuvent en principe constituer des moyens de preuve et être pris en compte dans l’appréciation des preuves (arrêt du Tribunal fédéral 4A_259/2019 du 10 octobre 2019 consid. 1.3), c'est à bon droit que le Tribunal a considéré que la force probante des propos du précité devait être relativisée, du fait que sa société a été mandatée par l’avocat de l’appelante et, qui plus est, postérieurement à la rupture de contrat présentement litigieuse. Dans la mesure où la lettre de résiliation a été remise à L______ SA en vue de réaliser la mission d’expertise et que U______ a admis avoir échangé des courriels avec l’avocat de l’appelante dans ce contexte, le Tribunal était en effet fondé à émettre l'hypothèse que sa société avait été mandatée dans le but de justifier la résiliation immédiate. Pour le surplus, dans la mesure où il est également établi que du matériel a été changé entre la fin du contrat liant l’appelante et l’intimée et le moment où L______ SA est intervenue dans les locaux de l’appelante, trois mois plus tard, c'est avec raison que le premier juge a relevé que le système informatique audité par cette société n'était pas celui laissé par l'intimée. De surcroît, dans la mesure où les témoins sont uniquement appelés à faire part des faits qu'ils ont perçus (directement ou indirectement), les appréciations émises par le témoin U______ au sujet de ce qu'il considère comme des négligences graves n'ont pas à être prises en considération par le juge. Enfin, indépendamment de la portée du témoignage du précité, l'appréciation des faits présentement litigieux ne doit pas reposer uniquement sur les déclarations qui accréditent la thèse soutenue par l'appelante, mais doit être effectuée en prenant en compte tous les autres éléments du dossier.

Par ailleurs, dans la mesure où l'appelante tente d'asseoir son argumentation sur les réponses données par le témoin R______ à la question de savoir si l'intimée aurait gravement violé ou non ses devoirs contractuels, il convient de relever que celles-ci sont dénuées de pertinence. Il s'agit en effet d'une question juridique à laquelle il n'appartient pas à un témoin de répondre.

3.3 Il convient désormais de se pencher sur les diverses violations invoquées pêle-mêle par l'appelante, cette dernière reprochant au Tribunal d'avoir minimisé la gravité des manquements qu'elle impute à l'intimée.

3.3.1 Il est vrai qu’il a été établi que de nombreux patchs et mises à jour n’ont pas été appliqués ou installés par l'intimée (respectivement par F______, puisque certaines mises à jour n'ont pas été effectuées depuis 2010 déjà) sur les serveurs, sur le réseau, les ordinateurs personnels, les routers et les périphériques. Il ne peut cependant être retenu de manière toute générale que cela constituerait une violation des règles élémentaires en matière de sécurité informatique. Cette problématique doit assurément être analysée en relation avec l'état de l'équipement sur lequel ils auraient dû intervenir. Il est en effet avéré que l’ensemble de l’infrastructure informatique (hardware et software) de l’appelante était en fin de vie (cf. témoins F______, H______, AB______, R______, Y______ et rapport établi par V______ SA), cette situation étant principalement due au fait que le budget alloué au département informatique était fortement restreint (cf. notamment témoin H______ et rapport établi par L______ SA), et ce déjà à l'époque où F______ était employé par l'appelante (cf. témoin H______). Cet élément a, à juste titre, été pris en compte pour déterminer si les omissions de l'intimée sur ce point constituaient effectivement des négligences graves. Contrairement à ce que soutient l'appelante, le Tribunal n'a pas retenu que la vétusté de son système informatique aurait eu pour effet d'absorber "par une forme de causalité dépassante" les éventuels manquements au niveau des prestations de maintenance fournies, mais a examiné la situation dans son ensemble.

Comme relevé par le témoin F______, la décision de ne pas procéder à certaines mises à jour – qui était prise, selon lui, par H______, le chef du département informatique de l'époque, qui supervisait l'activité de B______ Sàrl – reposait sur la crainte que cela engendre des effets secondaires, tels que des pannes, étant précisé que cette situation durait depuis 2010-2011 au moins. Le témoin H______ a, quant à lui, expliqué qu'il ne s'agissait pas nécessairement d'une faute lorsqu'un patch n'était pas posé, puisque c'était parfois justement le fait d'y procéder qui pourrait s'avérer fautif. Le témoin R______, bien qu'insatisfait de la politique de mises à jour qui était en place à son arrivé au sein de l'appelante, a lui-même indiqué qu'on ne pouvait pas parler de manquements si les mises à jour n'étaient pas faites. Pour le surplus, plusieurs témoins ont admis que les mises à jour étaient parfois impossibles voire n’existaient même pas en raison de l’obsolescence du matériel ou des logiciels (cf. témoins R______ et U______). Au vu de ce qui précède et quand bien même la plupart des mises à jour et patchs étaient gratuits, il n'apparaît pas, dans le cas d'espèce, que le fait de ne pas les avoir installés serait constitutif d'un manquement grave de l'intimée à ses devoirs contractuels ou d'une violation des bonnes pratiques en matière de maintenance informatique.

Le risque de paralysie des activités commerciales qui pouvait en découler (comme mentionné en particulier par les témoins U______ et R______ ainsi que dans le rapport V______ SA, en raison de possibles intrusions dans le système ou d'éventuelles pertes de données) ne s'est jamais réalisé, et ce durant toute la période où F______ ou sa société a été sous contrat avec l'appelante. Les choix opérés par l'intimée, sous la supervision de H______, semblent au contraire avoir été favorables au maintien du bon fonctionnement du système informatique, puisque celui-ci a toujours été opérationnel du temps où F______ ou la société qu'il a créée était chargé(e) de la maintenance de ce système. Cela est d'autant plus vrai qu'il est apparu par la suite que le fait d'installer tous les patchs et mises à jour disponibles – comme R______ s'est attelé à le faire depuis son arrivée dans le but recherché de renforcer la sécurité – n'a pas eu pour effet d'améliorer le système informatique de l'appelante. En effet, celui-ci se trouvait dans un état désastreux à l'arrivée du remplaçant de R______ au mois de septembre 2016, alors même que du matériel avait été remplacé entre-temps, durant l'été 2016.

Au demeurant, comme mentionné de manière convaincante par le témoin F______, il ne peut être garanti qu'un système informatique ne présente aucune faille. Cela est d'ailleurs confirmé par le fait que malgré les diverses interventions, depuis mai 2016, de divers spécialistes sur le système informatique de l'appelante – dont le travail est censé avoir été fait conformément aux bonnes pratiques en la matière – , cela n'a pas empêché ledit système de faire l'objet d'une contamination par un virus de type cryptolocker (soit "un cheval de Troie à destination finale d'effectuer du ransomware", selon la définition donnée par Wikipedia) en décembre 2016.

Même si l'on devait considérer (ce qui n'est pas le cas au vu des développements qui précèdent) que les manquements invoqués par l'appelante en lien avec les mises à jour et les patchs seraient objectivement graves, il n'en demeure pas moins que cette situation perdurait depuis plusieurs années, soit à tout le moins depuis 2010 (comme cela fut par exemple le cas du pare-feu W______, mentionné dans la lettre de résiliation). Or, il ne peut valablement être soutenu que cette situation n'était pas connue du chef du département informatique, puisque celui-ci a admis qu'il travaillait côte à côte avec F______ et que leurs échanges étaient permanents. Il est au demeurant peu plausible que H______, au regard de ses fonctions, ne disposait pas des capacités nécessaires pour se rendre compte que des mises à jour n'étaient pas installées sur des logiciels importants ou sur d'autres éléments du système.

L'appelante ne peut dès lors pas justifier une résiliation immédiate du contrat sur des faits connus et tolérés de longue date, même antérieurement aux rapports contractuels présentement litigieux. En effet, elle n'a pas considéré à l'époque qu'il s'agissait d'un manquement grave qui aurait conduit à une perte du rapport de confiance et justifié une résiliation immédiate du contrat de travail de F______. Au contraire, malgré cette situation et les autres problématiques relevées par l'organe de révision, l'appelante a remis un certificat de travail élogieux à F______ lorsque les rapports de travail ont pris fin et a ensuite conclu un contrat avec la société créée par le précité lorsqu'elle a décidé d'externaliser les prestations de maintenance de son infrastructure informatique.

Or, il apparaît indéniable que des événements durables et connus depuis plusieurs années ne peuvent pas soudainement être transformés en justes motifs de résiliation. L'appelante est donc forclose à prétendre que ces faits connus rendaient tout d'un coup insupportable la poursuite des relations contractuelles entre les parties à compter du mois d'avril 2016. Cette appréciation est renforcée par le fait que dans le cas où l'appelante aurait estimé que cette situation durable n'était désormais plus acceptable, il lui aurait été loisible de mettre en demeure sa cocontractante de remédier à ce défaut dans un certain délai avant de rompre le contrat, conformément aux dispositions contractuelles convenues entre les parties.

3.3.2 A propos de la maintenance logicielle (software), l'appelante se prévaut du fait que les expertises privées auraient révélé des lacunes de maintenance et de sécurité extrêmement importants, soit en particulier un "paramétrage généralement défaillant", y compris des "paramètres essentiels pour assurer la sécurité de l'infrastructure", l'absence de redondances et d'importantes "lacunes dans le traitement des rapports d'erreur".

En dehors du fait que des notions aussi imprécises ne permettent pas de comprendre quels manquements exacts sont reprochés à l'intimée (hormis éventuellement en ce qui concerne l'absence de redondances), il convient de rappeler que les problèmes mentionnés dans ces rapports ne constituent que des allégués, qui doivent être confirmés par d'autres éléments du dossier, puisqu'ils sont contestés par l'intimée. Or, l'appelante ne précise pas quel témoignage serait de nature à accréditer sa thèse sur ces aspects.

Du reste, en ce qui concerne les redondances, le rapport établi par L______ SA mentionne précisément que le site secondaire de sauvegarde hébergé auprès de K______ INC permettait une synchronisation des machines et des données les plus critiques de l'entreprise sur un site distant pour assurer une reprise en cas de sinistre. Il s'ensuit qu'un système de redondances avait bien été mis en place. L'appelante ne prétend pas que l'un ou l'autre des témoins entendus aurait relaté avoir constaté un problème au niveau des redondances, en dehors du témoin U______, qui a affirmé que "le système n'était pas dupliqué auprès du centre K______ INC, en tout cas pas en totalité", tout en ajoutant qu'il était "possible qu'une partie ait été transférée auprès de K______ INC". Le seul autre élément du dossier qui contient une référence à cette question est le courriel de AB______ (administrateur de Z______ SA) du 12 mai 2016, qui fait part d'une recommandation visant à simplifier le réseau et à ajouter "une véritable redondance" pour les serveurs critiques. Les termes employés par U______ (qui semblent davantage relever de la supposition que de constats effectifs) et AB______ ne permettent pas de retenir qu'aucune réplication des données critiques n'était effectuée ou que celle-ci était défectueuse du temps où l'intimée était chargée de la maintenance. Les éléments avancés par l'appelante sur ce point sont en tout état impropres à démontrer que l'intimée aurait fait preuve de négligences graves dans la maintenance des logiciels informatiques de l'appelante.

3.3.3 En ce qui concerne la question du backup, les seuls griefs listés dans la lettre de résiliation sont le fait que les bandes de sauvegardes étaient non cryptées et que le site distant auprès de K______ INC n'aurait pas été testé.

A cet égard, le Tribunal a retenu que les cassettes de sauvegarde n'avaient pas été cryptées depuis de nombreuses années sans qu'aucun reproche n'ait été formulé à l'intimée sur ce point. Cette question n'est plus discutée en appel.

Au sujet du site de K______ INC, l'appelante se prévaut à nouveau du témoignage de U______, qui a affirmé avoir notamment constaté qu'il n'y avait aucune preuve de la possibilité de restaurer le système depuis le site de sauvegarde, qu'il n'y avait aucune documentation et que le serveur auprès de K______ INC n'était, à sa connaissance, pas opérationnel.

Pour les mêmes raisons que mentionnées ci-dessus (consid. 3.2.3), la force probante des déclarations du témoin précité doit être relativisée, ce d'autant plus qu'aucun élément concret du dossier ne permet de retenir que le site distant n'était pas opérationnel.

Le témoin R______ a par exemple déclaré de manière toute générale que les sauvegardes auprès de K______ INC n'étaient pas satisfaisantes, mais il n'a pas confirmé que le système n'avait pas été testé. Par ailleurs, aucune information n'a été demandée à F______ à l'occasion des expertises privées réalisées avant ou après la fin du contrat de B______ Sàrl. L______ SA a par exemple indiqué qu'elle n'était pas parvenue à se connecter au site distant car elle ne disposait pas du mot de passe, ce qui ne suffit pas à démontrer que le système mis en place pour assurer la continuité des activités de l'appelante en cas de sinistre n'aurait pas été exploitable.

Quoi qu'il en soit, il y a lieu de rappeler que le défaut de test du système de sauvegarde avait déjà été mis en exergue à l'occasion de deux rapports de l'organe de révision rendus en 2009 et 2010, du temps où F______ était encore employé de l'appelante. L'organe de révision – non spécialisé en matière informatique mais néanmoins apte à identifier des carences lorsqu'elles sont manifestes – avait alors recommandé à l'ingénieur système (soit F______) de mettre en place une procédure formelle pour la réalisation de tests des sauvegardes et la conservation de preuves lorsque de tels tests seraient réalisés. Or, il résulte de l'état de fait du Tribunal qu'il a toujours été donné suite aux recommandations de l'organe de révision et l'appelante n'a émis aucun grief sur ce point. Elle n'a pas davantage fait valoir que les tests du site de sauvegarde auraient été correctement effectués et documentés du temps où F______ était son employé (postérieurement aux rapports de T______ SA), puis qu'ils ne l'auraient plus été par la suite, depuis que le service de maintenance a été externalisé. Il est dès lors peu plausible que les critiques émises sur ce point à l'occasion de la résiliation du contrat en 2016 seraient fondées.

Au demeurant, quand bien même il aurait été établi que le site distant n'avait pas été testé ou que le plan de secours aurait été insuffisamment documenté, il ne s'agirait pas d'un élément nouveau qui serait apparu en avril 2016. Les développements figurant à la fin du considérant 3.3.1 ci-dessus s'appliquent ainsi mutatatis mutandis aux présents motifs invoqués par l'appelante, de sorte que celle-ci est forclose à s'en prévaloir pour justifier une rupture immédiate du contrat de l'intimée.

Par surabondance, il convient encore de relever que le rapport établi par L______ SA indique que c'était H______ qui était en charge de l'activité de gestion de crise (disaster recovery plan) – ce qui est confirmé par le fait que le contrat conclu entre l'appelante et P______ SA prévoit que cette société, soit pour elle H______, était chargée du contrôle interne et de la gestion des risques, comme du temps où le précité était encore employé. Il s'ensuit que la responsabilité de vérifier que le site auprès de K______ INC fonctionnait correctement et de documenter le processus y relatif incombait à H______ (puis à P______ SA à compter du mois de juillet 2015) et non pas à l'intimée.

3.3.4 La même remarque s'impose concernant le prétendu non-respect des normes de sécurité des personnes dans certains locaux, ainsi qu'aux allégués de l'appelante relatifs aux intrusions dans le système d'information réalisées par L______ SA dans le cadre de son "audit", au vu des responsabilités incombant à H______. Il en va d'ailleurs également de même en tant que l'appelante a fait état de problèmes – non précisés – au niveau des paramètres destinés à assurer la sécurité du système (consid. 3.3.2 ci-dessus).

3.3.5 En ce qui concerne la documentation descriptive du système, il résulte du dossier que l'intimée a bien remis à R______, à sa demande, des diagrammes de l'infrastructure informatique, par courriel du 12 avril 2016. Si ce dernier ou la société estimait que ces plans étaient insuffisants, il leur appartenait de demander davantage de précisions à l'intimée. Or l'appelante n'a pas démontré (ni même allégué) avoir demandé des compléments ou des explications au sujet de la documentation descriptive remise par F______, respectivement par l'intimée.

Les considérations qui précèdent sont également valables en ce qui concerne les allégués de l'appelante selon lesquels les rapports mensuels remis par l'intimée auraient été lacunaires et inutiles, puisqu'il n'a ni été allégué ni prouvé qu'elle s'en serait plainte au cours des rapports contractuels.

En n'avisant pas l'intimée en temps utile de ce qu'elle considérait comme une violation du contrat, l'appelante est réputée avoir accepté les prestations de la première nommée sur ces points et ne peut plus s'en prévaloir pour justifier une rupture immédiate des rapports contractuels.

3.3.6 Concernant la mauvaise gestion et le désordre dans les salles informatiques, l'appelante ne conteste pas que cette situation n'est pas apparue seulement en avril 2016 et qu'elle n'a pas demandé à l'intimée d'y remédier. L'état des salles a ainsi été toléré par l'appelante, le Tribunal ayant de surcroît souligné à juste titre que celui-ci était demeuré le même, trois mois après la fin du contrat, lorsque L______ SA a effectué son audit, de sorte qu'il ne pouvait pas s'agir d'un juste motif de résiliation.

3.3.7 Par ailleurs, il n'a pas été démontré que B______ Sàrl aurait failli à son devoir d'informer et de conseiller sa cocontractante, puisqu'il ressort notamment du dossier qu'elle a attiré son attention, par exemple par courriel adressé le 26 mars 2015 à E______, avec copie à H______, du retard pris dans le renouvellement de certains contrats de maintenance et du fait que cela pouvait avoir un impact sur l'ensemble des fonctions du département informatique. F______ a par ailleurs informé R______ à son arrivée à la tête du département informatique, de toute une liste de problèmes répertoriés par sa société, en particulier au sujet de l'obsolescence du matériel. H______ était lui-même parfaitement au courant de la situation lorsqu'il était chargé de superviser l'activité de F______, respectivement de B______ Sàrl, puisqu'il travaillait auparavant aux côtés du précité (et de M______) et que leurs échanges étaient permanents.

F______ avait dès lors bien attiré l'attention de l'appelante au sujet de la vétusté de son système informatique et de la nécessité de renouveler certains contrats ou appareils, mais ses recommandations et propositions n'ont pas été suivies, faute de budget alloué au département informatique de la société.

3.3.8 Enfin, l'appelante a fait valoir que les manquements qu'elle imputait à l'intimée avaient mis en évidence son absence de compétence pour assurer les obligations contractuelles auxquelles elle était tenue.

Le fait que le témoin U______ ait affirmé que l'intimée manquait de compétences du point de vue de la sécurité informatique (du fait notamment que les patchs n'étaient pas installés et qu'il existait une vulnérabilité depuis Internet) ne permet aucunement de confirmer les allégués de l'appelante, puisqu'ils sont contredits par plusieurs autres éléments du dossier.

Le témoin H______ a déclaré que l'intimée, soit pour elle F______, disposait des compétences nécessaires pour assurer la maintenance de l'infrastructure informatique et cette appréciation n'a pas été remise en cause par le témoin R______, malgré les problèmes qu'il avait constatés à son arrivée au sein de l'appelante. D'ailleurs, il convient de relever que ce témoin a affirmé ignorer les raisons pour lesquelles le contrat de l'intimée avait été résilié, puisque selon lui, un rapport tel que celui établi par V______ SA ne pouvait servir de fondement à une rupture immédiate d'un contrat, ce dont il faut déduire que les manquements reprochés à la précitée n'ont pas le niveau de gravité que le prétend l'appelante.

Cette dernière a au demeurant remis à F______ des certificats de travail élogieux à deux reprises dans le cadre des rapports de travail, étant rappelé que les prestations à fournir par l'intéressé sont demeurées quasiment les mêmes une fois qu'elles ont été externalisées et qu'il n'a pas été allégué que le précité aurait modifié ses pratiques une fois qu'il a fondé sa société. Par ailleurs, l'appelante a choisi de contracter avec la société créée par F______ pour la maintenance de son infrastructure informatique et a renouvelé le contrat après l'échéance du Service Agreement, ce qui démontre qu'elle était satisfaite de ses services.

Il n'a en outre pas été établi que l'appelante aurait émis des critiques à l'égard des prestations fournies par F______ et M______ durant l'ensemble des rapports contractuels. Enfin, aucune attaque externe ou panne majeure du système informatique n'a été déplorée durant les dix années où F______ ou sa société ont été au service de l'appelante.

L'appelante ne peut dès lors mettre en doute l’aptitude de l'intimée, soit pour elle de F______ en particulier, à mener à bien le contrat, alors que rien n'indique que ce dernier aurait modifié sa manière de remplir ses obligations au fil des ans, étant une fois de plus rappelé qu'il a constamment fourni ses prestations sous la supervision d'une personne désignée par la première nommée.

3.4 Il résulte de ce qui précède que les motifs invoqués à l'appui de la rupture du contrat, même pris dans leur ensemble, ne permettent pas de retenir l'existence de justes motifs, que ce soit sous l'angle des conditions contractuelles ou des principes généraux développés par la jurisprudence.

Contrairement à ce que soutient l'appelante, les circonstances du cas d'espèce ne présentent pas de similarité avec les faits ayant donné lieu à l'arrêt ACJC/359/2018. Dans l'affaire précitée, qui concernait également un contrat de maintenance informatique, la société chargée de la maintenance avait manqué plusieurs interventions prévues dans les locaux de sa cocontractante pour résoudre des pannes liées au système informatique. Sa cocontractante l'avait par ailleurs avisée plusieurs mois à l'avance de ce qu'elle était mécontente de ses prestations et qu'elle envisageait de se départir du contrat. La résiliation du contrat pour justes motifs a ainsi été admise du fait qu'il y avait eu plusieurs violations du contrat, auxquelles il n'avait pas été remédié malgré une mise en demeure.

Or, en l'occurrence, aucun avertissement n'a précédé la résiliation, l'appelante n'ayant jamais fixé à l'intimée un délai raisonnable pour supprimer les défauts qu’elle lui reprochait. Rien n'indique qu'une mise en garde aurait été vaine, ce d'autant moins si l'appelante avait accepté d'investir pour l'acquisition de nouveau matériel ou de logiciels, comme elle l'a fait par la suite par le biais des entreprises mandatées (en premier lieu) pour auditer son système informatique (et qui ont finalement toutes offert leurs services, ce qui est de nature à mettre un doute sur leur indépendance pour mener leurs missions "d'expertise").

Comme démontré ci-dessus, l'appelante n'est pas parvenue à prouver que la continuation des rapports contractuels aurait été impossible pour elle. Celle-ci a en effet toléré pendant plusieurs années les événements qu'elle a qualifiés de négligences graves dans la lettre de résiliation du contrat. A l'instar de ce qui a été retenu par le Tribunal (qui a suivi l'argumentation de l'intimée sur ce point), l'autorité de céans est d'avis que les prétendus manquements que l'appelante a imputés à l'intimée faisaient partie d'un mode de fonctionnement du département informatique mis en place sous la direction de H______ durant près de dix ans, conformément à la volonté et aux moyens mis à disposition par elle. Aucun élément du dossier n'a permis d'établir un lien de causalité entre l'état du système informatique de l'appelante au moment de la résiliation du contrat et une éventuelle insuffisance des prestations de maintenance que l'intimée s'est engagée contractuellement à effectuer. Régulièrement informée de la situation, l'appelante a choisi de conserver du matériel obsolète, que l'intimée a néanmoins su maintenir en état de fonctionner.

Avec l'arrivée de R______ en avril 2016, le mode de fonctionnement du département informatique instauré depuis de nombreuses années n'a plus été toléré, ou du moins a servi d'excuse pour mettre fin à un contrat de maintenance qui était devenu trop onéreux. En effet, le véritable motif de résiliation semble être d'ordre économique, l'appelante ayant rencontré des difficultés financières à compter de 2015, comme en témoigne le fait qu'elle a demandé à tous ses employés de réduire leur taux d'activité, par courriel du mois de novembre 2015. Il résulte en outre du témoignage de AB______, qui connaît l'appelante depuis 2002, que cette dernière avait prévu de longue date de migrer son système informatique vers l'Ukraine, ce qu'elle a finalement effectué, à une date indéterminée après la résiliation de l'Enterprise Agreement.

Les manquements dont l'appelante s'est prévalue dans sa lettre du 29 avril 2016 ne constituaient dès lors qu'un prétexte pour mettre fin au contrat de l'intimée, dont le coût mensuel des prestations était élevé, en particulier si l'on compare avec le salaire versé à R______, qui occupait pourtant le poste de chef du département informatique. L'appelante avait d'ailleurs cessé de verser la mensualité due en faveur de l'intimée au mois de mars 2016 déjà, ce qui tend à confirmer que la décision de mettre fin au contrat était déjà prise avant la prétendue "découverte" des dysfonctionnements du service informatique. L'appelante a ensuite cherché à appuyer ladite résiliation sur un rapport d'expertise censé démontrer les manquements de sa cocontractante. Le premier rapport n'étant pas suffisamment éloquent, l'appelante a mandaté après coup plusieurs autres sociétés pour tenter de justifier sa décision de mettre fin au contrat de manière anticipée, mais la démarche s'est avérée infructueuse, au vu des nombreux autres éléments discutés ci-avant.

3.5 Compte tenu de l'ensemble de ce qui précède, c'est à juste titre que le premier juge a retenu que l'appelante n'était pas légitimée à se départir prématurément du contrat avec effet immédiat.

L'appel sera dès lors rejeté sur ce point.

Au regard de la solution retenue, c'est également à bon droit que le premier juge a débouté l'appelante des fins de sa demande, sans qu'il soit nécessaire d'examiner si les conditions posées par l'art. 97 CO (notamment l'existence et la quotité du prétendu dommage qu'elle a invoqué) seraient remplies.

4. Dans l'hypothèse où la Cour confirmerait que la résiliation abrupte du contrat par l'appelante était injustifiée, celle-ci remet en cause le montant de l'indemnité allouée à l'intimée.

4.1 La résiliation injustifiée ne provoque en principe pas la fin du contrat et entraîne généralement des conséquences pécuniaires. La partie victime de la résiliation injustifiée peut par conséquent poursuivre l'exécution du contrat et en obtenir si nécessaire l'exécution forcée. Le destinataire d'une résiliation injustifiée inefficace (qui ne met donc pas un terme au contrat) peut évidemment renoncer à exiger l'exécution du contrat et réclamer des dommages-intérêts pour inexécution, aux conditions habituelles (Venturi-Zen-Ruffinen, op. cit., p. 26ss).

A défaut d'indemnité conventionnelle, la partie qui résilie le contrat immédiatement sans juste motif doit dédommager sa partie adverse pour l'intérêt positif à l'exécution du contrat jusqu'au terme ordinaire, moins les montants que cette partie a pu épargner ou gagner du fait de la cessation prématurée des rapports contractuels (arrêt du Tribunal fédéral 4A_573/2020, 4A_575/2020 précité consid. 7.4).

La réduction de l’indemnité est une exception au principe de la fidélité contractuelle qui doit être interprétée strictement et n'est prise en compte qu’en cas de manquement grave du prestataire à ses obligations (Jaccard/Robert, op. cit., p. 120 s.).

Chaque partie doit, si la loi ne prescrit le contraire, prouver les faits qu'elle allègue pour en déduire un droit (art. 8 CC). En matière de contrat d'entreprise, il appartient au maître de démontrer que les faits ne justifient pas une indemnité de l’entrepreneur. Il supporte les conséquences de l’absence de preuve de gains réalisés par l’entrepreneur ensuite de la résiliation (Chaix, Commentaire romand CO I, 2021, n. 22 ad art. 377 CO; cf. également ATF 96 II 192 consid. 3).

4.2 En l'espèce, les parties n'ont pas prévu les conséquences financières découlant d'une résiliation anticipée du contrat.

Dans tous les cas, contrairement à ce que plaide l'appelante, il n'est pas possible de convertir la résiliation immédiate en une résiliation produisant ses effets pour le prochain terme de résiliation anticipée prévue par le contrat (soit 30 voire 60 jours), puisque cela aurait supposé une mise en demeure, dont on a vu ci-dessus qu'il ne pouvait être admis qu'elle aurait été vaine. L'appelante reconnaissant elle-même que cette clause n'avait pas vocation à s'appliquer en l'occurrence, faute de mise en demeure, l'on ne discerne pas pour quel motif il conviendrait d'en tenir compte dans l'examen de l'économie du contrat. La précitée disposait d'un mécanisme lui permettant de mettre fin au contrat de manière anticipée en respectant les clauses contractuelles, de sorte qu'elle doit supporter les conséquences de sa décision de ne pas avoir opté pour cette voie.

Dans la mesure où l'intimée a le droit, conformément aux principes rappelés ci-dessus, d'être placée dans la situation qui aurait été la sienne si le contrat avait été régulièrement exécuté, elle peut prétendre au paiement des mensualités prévues contractuellement pour la période de mars 2016 (puisque l'appelante a cessé le versement desdites mensualités déjà avant de mettre fin au contrat) à décembre 2017 (première échéance prévue par les parties), soit durant 22 mois, à titre de réparation du préjudice subi du fait de la résiliation anticipée du contrat. Comme retenu par le Tribunal, sans que la méthode de calcul ne soit en tant que telle remise en cause, cela représente un montant de 487'080 fr. TTC (22 x 20'500 fr. x 8% de TVA).

L'appelante n'ayant ni allégué, ni a fortiori démontré quels montants l'intimée aurait éventuellement épargné respectivement gagné en raison de la résiliation anticipée du contrat, il n'y a pas lieu de réduire la quotité de l'indemnité qu'elle doit verser à cette dernière.

Le jugement attaqué sera dès lors confirmé en tant qu'il condamne l'appelante à verser à l'intimée le montant retenu ci-dessus, avec intérêts à 5% dès le 20 juin 2016 (le dies a quo des intérêts n'étant pas remis en cause) et prononce la mainlevée, à due concurrence, de l'opposition formée au commandement de payer, poursuite n° 1______ (ce point du jugement n'étant pas non plus critiqué).

5. Les frais judiciaires d'appel, arrêtés à 27'000 fr. (art. 95, 96 et 104 al. 1 CPC; art. 17 et 35 RTFMC), seront mis à la charge de l'appelante, qui succombe entièrement (art. 106 al. 1 CPC). Ils seront compensés avec l'avance de frais de même montant fournie par elle, qui reste acquise à l'Etat de Genève (art. 111 al. 1 CPC).

Les dépens d'appel, arrêtés à 15'000 fr., débours et TVA compris (art. 84, 85 et 90 RTFMC; art. 20, 25 et 26 LaCC; art. 25 al. 1 LTVA), seront également mis à la charge de l'appelante (art. 106 al. 1 CPC)

* * * * *


PAR CES MOTIFS,
La Chambre civile :


A la forme :

Déclare recevable l'appel interjeté le 14 octobre 2022 par A______ SA contre le jugement JTPI/10537/2022 rendu le 13 septembre 2022 par le Tribunal de première instance dans la cause C/23597/2016.

Au fond :

Confirme le jugement entrepris.

Déboute les parties de toutes autres conclusions.

Sur les frais :

Arrête les frais judiciaires d'appel à 27'000 fr., les met à la charge de A______ SA et dit qu'ils sont entièrement compensés avec l'avance de frais fournie par elle, laquelle demeure acquise à l'Etat de Genève.

Condamne A______ SA à verser à B______ Sàrl 15'000 fr. à titre de dépens d'appel.

Siégeant :

Madame Jocelyne DEVILLE-CHAVANNE, présidente; Madame Verena PEDRAZZINI RIZZI, Madame Nathalie LANDRY-BARTHE, juges; Madame Jessica ATHMOUNI, greffière.

 

 

 

 

 

Indication des voies de recours :

 

Conformément aux art. 72 ss de la loi fédérale sur le Tribunal fédéral du 17 juin 2005 (LTF; RS 173.110), le présent arrêt peut être porté dans les trente jours qui suivent sa notification avec expédition complète (art. 100 al. 1 LTF) par-devant le Tribunal fédéral par la voie du recours en matière civile.

 

Le recours doit être adressé au Tribunal fédéral, 1000 Lausanne 14.

 

Valeur litigieuse des conclusions pécuniaires au sens de la LTF supérieure ou égale à 30'000 fr.