Comprendre le métier, puis construire
« Je veux un interlocuteur qui comprenne ce que mon logiciel doit faire. »
Un devis, un mouvement de stock ou un calcul comptable dépend de règles précises. Les écrans, les échanges de données et les contrôles sont définis à partir de ces règles.
Cette pratique s’appuie sur plus de vingt-cinq ans en informatique : une formation d’informaticien de gestion achevée en 1997, un premier ERP de consolidation financière livré en 1999, puis plusieurs développements d’ERP aux côtés de comptables.
L’expérience comprend aussi la direction d’une équipe et de systèmes informatiques importants. Aujourd’hui, Karbonic est une structure à taille humaine, avec un interlocuteur du besoin métier à la mise en service.
- Comprendre les opérations, les exceptions et les données qui font référence.
- Relier l’application aux équipements, aux accès et aux outils déjà utilisés.
- Prévoir les contrôles, la reprise des données et la maintenance.
Pour commencer
Une opération réelle, un exemple de résultat attendu et ce qui vous limite aujourd’hui suffisent pour un premier échange.
Développement sur mesure · Organisation du travail et budget
Produits distribués
« Je cherche un outil déjà utilisé pour un besoin précis. »
K-Shield, NetWatch et HTML Editor sont des logiciels développés par Karbonic. Leur mise à disposition et l’accompagnement nécessaire sont précisés selon votre contexte.
K-Shield — remettre un site en service et le sécuriser
Un site compromis doit être examiné, réparé et suivi. K-Shield associe la remise en place d’un cœur sain à la recherche de portes dérobées par signatures et heuristiques.
- Les éléments détectés sont nommés dans le rapport ; une mise en quarantaine restaurable permet de traiter les fichiers concernés.
- Le nettoyage de la base et le durcissement font partie des fonctions de remise en état.
- Selon la configuration retenue, un pare-feu applicatif et une analyse comportementale complètent la surveillance.
La remise en service est menée en conservant votre maîtrise des accès. Les constats et les limites de l’analyse restent identifiables.
Pour commencer
L’adresse du site et les symptômes constatés, sans transmettre de mot de passe dans le premier message.
NetWatch — voir le parc et la protection des postes
Un outil de protection installé ne suffit pas à décrire l’état de tout un parc. NetWatch, déployé en clientèle, rapproche l’inventaire du réseau local et les informations de protection des postes.
- Les équipements et la couverture de protection sont recensés.
- Les écarts sont rendus visibles dans les rapports et les alertes.
- Des commandes peuvent être exécutées depuis une station du réseau, dans le périmètre d’intervention défini.
Pour commencer
Un inventaire, même incomplet, et les outils de gestion et de sécurité déjà utilisés.
Découvrir NetWatch · Gestion du parc et des serveurs
HTML Editor — structurer et publier la documentation
La documentation doit pouvoir suivre les évolutions du produit. HTML Editor réunit l’édition structurée, la publication PDF et les échanges avec les documents de traitement de texte, avec une organisation en DITA ou DocBook selon le besoin.
- Les contenus sont organisés pour être réutilisés et maintenus.
- Les échanges documentaires et les sorties sont contrôlés sur des exemples représentatifs.
- Le pilotage par IA s’inscrit dans les méthodes de rédaction et de relecture.
Pour commencer
Un document représentatif, ses variantes et les formats dans lesquels il doit être publié.
Découvrir HTML Editor · Rédaction et traduction
Savoir-faire & R&D
« Mon besoin ne correspond pas à un logiciel prêt à l’emploi. »
Les travaux ci-dessous illustrent des développements en cours. Ils présentent des compétences mises en œuvre ; leur présence ici ne signifie pas qu’un produit complet est disponible à la vente.
Un ERP construit autour des opérations métier
Le développement couvre les devis, les factures, les achats, les stocks, les heures, la comptabilité et les salaires. Une passerelle avec un logiciel de bureau existant prépare une transition progressive vers son remplacement.
- Les relations entre les opérations et leurs conséquences comptables sont prises en compte.
- La reprise des données et les échanges avec l’outil existant font partie du développement.
Pour commencer
Un parcours métier, du document initial au résultat comptable, et les données à conserver.
Une messagerie reliée à plusieurs services
Un client de bureau réunit plusieurs connecteurs de messagerie et de calendrier. Les traitements lourds sont organisés séparément de l’interface.
- Les connexions aux boîtes et aux calendriers sont intégrées dans un même outil.
- Les traitements en arrière-plan et la synchronisation sont pris en compte dans l’architecture.
Pour commencer
Les services à relier et les opérations qui vous obligent aujourd’hui à passer d’un outil à l’autre.
Des synthèses dont les faits restent reliés aux pièces
Un moteur de synthèse documentaire est développé autour d’une grille de fidélité : chaque fait doit être rattaché à sa source et passer des contrôles définis. Les éléments qui ne passent pas ces contrôles sont écartés de la synthèse et signalés pour examen.
- La pièce et le passage utilisés restent identifiables.
- Les faits retenus et les éléments à vérifier sont distingués.
- La concordance entre un énoncé et sa source doit être contrôlée : une référence, à elle seule, ne la démontre pas.
Pour commencer
Un dossier anonymisé, les questions auxquelles répondre et les pièces qui doivent faire référence.
Une gestion documentaire où les fichiers restent accessibles
Une gestion électronique des documents est développée autour d’un principe : les dossiers et les fichiers restent lisibles sans l’application.
- La reconnaissance de texte et le classement automatique facilitent le traitement des documents.
- Les circuits de validation organisent le travail autour des dossiers.
- L’accès aux fichiers est conservé indépendamment de l’interface de gestion.
Pour commencer
Un dossier type, son organisation actuelle et les étapes de traitement ou de validation.
Étudier un logiciel sur mesure · Automatiser les tâches · Maîtriser les données et leurs traitements
Comment nous construisons
« Je veux savoir comment les erreurs sont repérées et les résultats contrôlés. »
Une application créée, un logiciel repris ou un prototype produit avec une IA est examiné à partir de son usage : données d’entrée, règles métier, résultat attendu et cas d’échec.
Les exemples suivants illustrent des principes d’ingénierie. Ils sont génériques et simplifiés ; ce ne sont pas des extraits des produits Karbonic.
Reprendre des données avec des contrôles explicites
Pour un import, les correspondances entre les champs sont définies avant le transfert. Les traitements sont regroupés lorsque cela convient, puis contrôlés : nombre d’enregistrements, clés, relations, valeurs et totaux utiles au métier.
Exemple SQL pour MariaDB : la source est figée pendant le contrôle, la cible est vide, les types des champs sont identiques et ref est une clé unique non nulle. Le transfert est effectué en une requête, puis les mêmes champs sont comparés des deux côtés.
-- Same field types; stable source, empty target, unique non-null ref.
INSERT INTO cible (ref, libelle, montant)
SELECT ref, libelle, montant FROM source_normalisee;
-- Compare all keys and row hashes, including missing or extra keys.
SELECT ref, MD5(JSON_ARRAY(ref, libelle, montant)) AS empreinte
FROM source_normalisee ORDER BY ref;
SELECT ref, MD5(JSON_ARRAY(ref, libelle, montant)) AS empreinte
FROM cible ORDER BY ref;
Les deux jeux de résultats doivent ensuite être rapprochés par clé : empreintes différentes, clés absentes et clés supplémentaires. Le nombre de lignes est également contrôlé. L’empreinte par ligne évite de dépendre de la taille d’une concaténation globale ; elle ne constitue pas une garantie d’authenticité.
Une empreinte calculée sur des données normalisées peut compléter la comparaison. Elle ne remplace ni le contrôle des règles de transformation ni celui du résultat métier. Les conditions de validation et de retour arrière sont définies avant la bascule.
Mesurer une étape pour localiser un ralentissement
Un journal peut indiquer l’étape concernée, sa durée et son éventuel échec. Les noms d’étapes sont définis à l’avance ; le contenu des documents n’a pas besoin d’être inscrit dans ce journal.
import logging
from time import perf_counter
def run_step(name, operation):
start = perf_counter()
try:
return operation()
except Exception:
logging.error("step=%s status=failed", name)
raise
finally:
# Record timing without logging the processed content.
logging.info("step=%s elapsed_ms=%.1f",
name, (perf_counter() - start) * 1000)
La mesure donne un point de départ pour l’investigation. Elle aide à distinguer un traitement lent d’une attente réseau ou d’une erreur à une étape précise.
Séparer un fait contrôlé d’un élément à examiner
def select_supported(facts, sources):
accepted, pending = [], []
for fact in facts:
source = sources.get(fact.get("source_ref"))
# A reference alone does not validate a claim.
checked = fact.get("support_checked") is True
if source is not None and checked:
accepted.append(fact)
else:
pending.append(fact)
return accepted, pending
Ce filtre applique le résultat d’un contrôle effectué en amont. Il ne vérifie pas lui-même le sens d’une pièce. Le statut de validation doit provenir du contrôle de concordance prévu, puis les éléments en attente doivent rester visibles.
Ces méthodes sont mises en œuvre avec les langages adaptés au projet, notamment C, C++, Delphi, Java, JavaScript et Python. L’intégration de systèmes et l’investigation numérique complètent cette pratique : comprendre les dépendances, retrouver les traces et expliquer ce qui s’est passé.
Une application concrète : faire évoluer ce site
« Je veux pouvoir demander une modification sans intervenir moi-même dans les fichiers. »
Le pilotage de ce site relie une demande formulée en langage courant à une interface de lecture, de modification et de publication. Les versions sont conservées pour permettre un retour à un état précédent.
Ce fonctionnement illustre un travail d’intégration : relier un besoin, un outil d’assistance et le système qui exécute les changements. L’historique permet de retrouver une version ; la conformité du résultat reste à vérifier avant et après sa publication.
Des choix de données expliqués
« Je veux savoir où mes informations sont traitées. »
Un hébergement et des traitements en Suisse peuvent être organisés. Selon les usages, certains traitements peuvent aussi rester sur vos équipements. Les lieux de traitement, les accès, les dépendances et les possibilités de récupération sont précisés avant le choix de la solution.
Hébergement et maîtrise des données
Parlons de ce que vous voulez améliorer
Décrivez une opération, un outil qui vous limite ou un résultat difficile à obtenir. Le périmètre, les possibilités et les premières vérifications seront étudiés avec vous.
