Aller au contenu principal

Développement informatique

Sur-mesure et en gardant la main

La qualité avant tout

Vous voulez une application fonctionnelle et de qualité, nous n'aimons pas réaliser une mission par-dessus la jambe : nous sommes faits pour nous entendre.

Maintenable et évolutif

Les solutions que nous développons sont durables : elles sont testées manuellement et automatiquement, et sont documentées pour être reprises en main facilement.

Réactifs au bon moment

Si vous avez besoin d'une réalisation en urgence, on peut s'arranger ! Notre seule contrainte est de ne pas décaler les rendus de nos autres clients : on leur doit bien ça.

Concrètement, on retrouve quoi dans le développement informatique ?

Le développement informatique, c'est tout ce que l'on peut réaliser avec de la programmation informatique, certes. Mais concrètement, cela décrit des domaines très précis. On va le faire avec une comparaison, pour faciliter la compréhension des personnes n'y connaissant rien, et pour agacer les perfectionnistes.

Prenons l'exemple d'une maison. On y retrouvera :

  • Le jardin, la décoration extérieure, le revêtement extérieur : c'est tout ce que les personnes voient sans rentrer dans votre maison. En informatique, c'est le design graphique, le marketing, la communication et le site web vitrine. Si vous avez une belle devanture, vous maximisez les chances que des gens souhaitent découvrir l'intérieur en tant que visiteurs, qu'habitants, qu'acheteurs potentiellement. Si ça n'attire personne, c'est soit souhaitable, soit embêtant. Quand on parle de développement informatique sur l'extérieur, on appelle cela du développement "frontend".
  • La boîte aux lettres et la sonnette : tout équipement qui permet aux personnes extérieures d'interagir avec votre maison. On préfère qu'elles soient en état de marche, mais après tout chaque personne fait comme elle l'entend. En informatique, ce sont un peu les formulaires de contact et autres calendriers d'événements, foire aux questions...
  • Les endroits où l'on range le courrier, factures et autres documents importants : en général, on souhaite qu'ils ne soient pas en extérieur, et qu'ils soient facile à recherche. Ca, c'est la base de données. Si on la perd, on est en général très vite en difficulté.
  • Les interrupteurs, ampoules, prises et câbles dans les murs : quand ils marchent bien, on n'y fait pas attention. Quand un ne fonctionne plus, c'est embêtant mais on s'en sort. Quand plus rien ne marche, c'est invivable. On peut associer tout cela au développement "backend" : tout ce qui est fait dans ce domaine est rarement visible de l'extérieur, mais indispensable au bon fonctionnement.
  • L'électroménager, comme le lave-vaisselle, lave-linge, réfrigérateur : dès qu'un de ces outils ne fonctionne plus, c'est très embêtant. On peut faire le lien avec les logiciels internes dans une structure, qu'ils aient été développés en interne ou achetés sur étagère. Il y en a des bien, et des moins bien.
  • L'isolation, les combles, les fondations, les murs, bref, tout ce qui est "en dur" : ça ressemble un peu à ce que font les gens du système d'information qui ne sont pas dans le développement. On appelle cela "système & réseau", "sysops" ou "responsable de la sécurité". On a parfois l'impression que ce n'est pas utile de garder ces compétences après construction de la maison, jusqu'à ce que ça casse. Attention : ça casse toujours, et très souvent au pire moment.

Il y a trois types de maisons : les sites web, les applications mobiles, et les logiciels de bureau. En soi ce sont les mêmes choses, mais on ne les construit pas pareil. Un peu comme les buildings, les maisons et les aéroports, sans associer ces bâtiments aux technologies. Enfin, on peut relier plusieurs maisons entre elles via internet.
Si vous avez appris quelque chose de cette comparaison, il n'est pas nécessaire de trop y réfléchir : plus on étire une comparaison, moins elle tient la route ! On a déjà envie de la réécrire pour tenter de faire mieux.

Notre société, ls-a, a une grande expérience dans la construction de ces outils informatiques. Nous savons réparer des logiciels, créer des sites web ou des applications mobiles, interconnecter ces différents systèmes entre eux, et les sécuriser.

Vous avez peut-être remarqué que cela couvre de nombreux domaines : c'est vrai. Et nous sommes meilleurs dans certains domaines que dans d'autres. Sans tout lister :

  • On adore le développement frontend et backend, ainsi que les bases de données
  • On est un peu moins fan de la partie système & réseau mais on sait faire
  • On s'adapte à la méthodologie DevOps (que l'on a pas listée) mais ce n'est pas vraiment notre tasse de thé

Quelles différences entre ces différents domaines ?

Il y a énormément de différences entre les domaines du développement informatique. On va être obligés de faire une liste détaillée.

Le développement frontend

Pour faire du développement frontend, il faut s'attacher à ce que les gens voient. C'est un métier qui nécessite beaucoup d'empathie, et de connaissances en conception graphique. Pour qu'un développement frontend soit réussi, il faut que ce que les gens en perçoivent corresponde à ce que vous souhaitez communiquer.

Si l'on prend l'exemple d'un site web, il doit être :

  • Joli (même si cela dépend des gens)
  • Simple (même si cela dépend de la culture des gens)
  • Adaptatif selon l'équipement (même s'il n'y a pas de taille fixe)
  • Accessible, pour toutes et tous
  • Informatif, pour les personnes en ayant besoin
  • Fonctionnel, en toutes circonstantes

Et nous ne parlons pas ici de la maquette du site web : on parle du site web en lui-même. Beaucoup de bonnes idées ne dépassent pas l'étape de la maquette par manque de temps ou de connaissances techniques. Pour cela, on utilise les langages suivants : HTML, CSS et JavaScript. Cela vient du fait que les navigateurs (Chrome, Firefox, ...) ne comprennent que ces langages.

Dans le cadre des logiciels de bureau ou des applications mobiles, on peut utiliser les langages suivants : XML, XAML, ou également HTML, CSS et JavaScript. Certaines technologies demandent d'autres langages utilisés dans le développement backend.

Le développement backend

Le développement backend est au développement frontend, ce que la plomberie est au jardinage. On peut faire de la belle plomberie, mais l'important est avant tout qu'il n'y ait pas de fuite.

C'est une discipline qui nécessite de parfaitement comprendre les tenants et les aboutissants d'un projet : quand on clique sur ce bouton, qu'est-ce que cela fait exactement ? On s'attarde sur les temps nécessaires à la réalisation d'une action, au fait que cela puisse ne pas fonctionner et quoi faire comme solution alternative. C'est le développement backend qui remplace une action peu intéressante de votre métier en un joli bouton. Par exemple, quand vous nous contactez via notre site web, c'est le développement backend qui transmet votre demande sous la forme d'un message électronique.

Cela impose les compétences suivantes :

  • De la rigueur
  • De la planification (et souvent de réaliser des dessins et schémas)
  • De la curiosité pour la connaissance métier
  • De la curiosité pour savoir en faire davantage
  • De la méfiance, car rien ne se passe jamais comme prévu

Il y a une multitude de langages de programmation pour le développement backend, qui dépend principalement de si l'on réalise un site web, une application mobile ou un logiciel de bureau. On peut en citer plusieurs : PHP, Python, C#, Java, Go, Rust, Ruby par exemple. Leurs différences sont principalement les mêmes que des langues vivantes ; il n'y en a pas de meilleure, mais on peut avoir sa préférence personnelle selon les cas.

Les bases de données

Faire de la base de données, c'est une promesse très simple : savoir tout archiver et tout ranger, quelle que soit sa taille, sa forme, sa quantité et tout retrouver très, très rapidement n'importe quel élément. Et c'est très subtil, car vous n'avez pas souvent à disposition tous les hangars du monde.

Pour ce faire, il n'y a pas cinquante moyens. Il faut savoir exactement tout ce qu'il y a à archiver quelle qu'en soit la forme. Par exemple, quand vous nous contactez par notre site web, chaque champ doit être consigné pour ne pas confondre votre adresse email avec votre message. Dans ce cas c'est très simple, mais consigner la totalité des informations d'une mairie devient tout de suite plus complexe.

Travailler dans le domaine de la base de données nécessite une forte compréhension du métier. Ce qui représente une personne dans la vraie vie est bien différente d'un compte sur un réseau social, d'un administré dans une commune ou d'un salarié dans une entreprise. Chaque projet est différent, et comme en ébénisterie, il faudra toujours adapter le rangement à l'existant. En termes de langages de programmation, on utilisera souvent du SQL, du JSON, du YAML ou du XML, avec un langage de développement backend.

Le système et le réseau

Pour les personnes compétentes dans ces domaines, nous sommes désolés de vous avoir mis dans la même sous-catégorie !
Dans le système et le réseau, on s'attachera à configurer. Un peu comme de la mécanique automobile, les personnes du domaine vont régler et façonner les systèmes informatique. Par exemple, un site web, pour qu'il soit visitable, doit exister sur un ordinateur allumé en permanence : on appelle ce type d'ordinateur des serveurs.

Pour que le serveur soit allumé en permanence, il faut notamment :

  • S'assurer qu'il n'est pas trop chargé (quand le serveur rame, il ne répond plus)
  • S'assurer qu'il n'est pas ouvert aux quatre vents (la sécurité informatique)
  • S'assurer qu'il est rapide, sinon les visiteurs s'en vont
  • S'assurer, quand il ne marche pas, que l'on soit prévenu rapidement pour réparer
  • S'assurer qu'il soit sauvegardé et restaurable en cas de besoin

C'est complètement différent des autres catégories listées plus haut, car il n'y a pas de "code" à proprement parler : on règle tout, on planifie tout. On utilise des logiciels existants pour sauvegarder, restaurer, servir, protéger, et on les configure à nos besoins. Si le code c'est écrire un roman, le système est le publier, avec toutes les étapes correctives.

Pour faire du système et réseau, il faut avoir une grande culture informatique, des systèmes d'exploitation (Windows, Mac et Linux), des logiciels dédiés, une connaissance de comment fonctionne internet et des comportements malveillants, pour autoriser uniquement ce qui doit l'être. Les langages que l'on est amené à rencontrer sont Bash, Batch et PowerShell, même si l'on voit aussi du Python et du PHP de temps à autres.

L'architecture logicielle

Pour mettre en danse tous ces domaines, on a souvent besoin de plans détaillés en amont. L'architecture logicielle, comme l'architecture dans la construction, permet d'avoir une hauteur de vue et d'orchestrer tout ce qui se passe dans la réalisation d'un projet informatique. Il est nécessaire d'avoir une connaissance dans le développement backend, la base de données, le système et le réseau, pour choisir les meilleures solutions. Parfois, au lieu de faire un seul gros développement backend, on le découpera en quatre petits ! C'est la même logique avec les logiciels de bureau : si un seul logiciel faisait toute une suite Office en mélangeant Word, PowerPoint et Excel, ce serait un vrai bazar.

Les personnes qui s'occupent d'architecture logicielle sont souvent moins mises en avant : si vous n'en avez jamais rencontrée, c'est sans doute parce que vous n'êtes qu'usagers des outils informatiques qu'ils et elles ont conçu.

L'importance de lier ces différents domaines

A la création d'un logiciel, d'une application mobile ou d'un site web, il est important de se poser toutes les questions associées à ces différents domaines, parce que leurs réponses détermineront avec quel outil nous travaillerons :

  • L'outil doit-il être le plus rapide possible, ou juste rapide ?
  • Quelle tolérance aux pannes ? Pour combien de temps maximum d'affilée ?
  • Quelles sont les fonctionnalités bien précises que nous souhaitons ?
  • Les données doivent-elles être sauvegardées fréquemment ou très fréquemment ? A-t-on suffisamment de disques durs ?
  • Qui se servira de l'outil ? Qui sera amené à le modifier dans le futur ?

Et les réponses sont fondamentalement différentes en fonction du besoin : une boulangerie de quartier n'aura pas les mêmes besoins qu'une application bancaire.

Créer un site web en ne se préoccupant que de l'aspect visuel est une erreur, car cela ne dit rien des modifications à apporter au fur et à mesure du temps. Une application mobile, si elle n'est pas bien pensée, tombera vite aux oubliettes. C'est très fréquent : les applications mobiles des collectivités territoriales ont un succès mitigé selon les régions trop souvent par manque d'analyse ou de recul concernant les besoins des administrés. Ceci n'est pas une attaque contre les collectivités territoriales, le problème existe aussi dans toutes les startups qui se sont effondrées avec une promesse mal calibrée. Tout le monde fait des erreurs dans un domaine non maîtrisé, nous également.

Comme vous n'avez pas le temps de connaître tous ces domaines en détail, de maîtriser toutes leurs arcanes, nous sommes à votre disposition pour développer vos outils informatiques. Cela peut se faire en accompagnement si vous disposez de compétences techniques, en sous-traitance si vous n'avez pas le temps de tout faire, ou sous votre responsabilité si vous avez une idée sans disposer des compétences.

Pourquoi faire appel à nous ?

Le développement informatique, c'est un domaine très large, dans lequel beaucoup d'acteurs sont présents. On retrouve majoritairement :

  • Les indépendants : c'est une bonne solution pour réaliser de la sous-traitance, dès le moment où vous proposez la totalité de la structure du projet. Il vous faudra déterminer le périmètre des missions, le niveau de qualité exigée et la capacité de la valider, les durées, les technologies, le graphisme si nécessaire, l'architecture puis faire votre choix. Tout le monde ne peut pas se permettre de faire cela ! Vous pouvez aussi cumuler les indépendants, mais attention au château de cartes : la responsabilité du projet reste entre vos mains.
  • Les ESN (Entreprises de Services du Numériques, anciennement SSII) : c'est une bonne solution si vous avez une vague idée de ce dont vous voulez faire, mais pas de comment le faire. Les ESNs vont créer un cahier des charges, choisir les technologies, la partie graphique, et vous plus ou moins vous faire confirmer chaque étape du projet. Les ESNs sont connues pour réduire les temps en recrutant pour les besoins d'un projet. Il existe des ESNs de toute taille, mais on cite généralement les grandes ESNs françaises : CapGemini, SopraSteria, Docaposte.

Les ESNs sont souvent critiquées pour deux problèmes principaux. Premièrement, il est difficile d'avoir un contact direct avec les personnes réalisant l'application, le contact est soit un service Support, soit un service Commercial. Cela peut poser des soucis sur des problématiques techniques précises. Deuxièmement, les coûts et les dates de rendu peuvent s'envoler, car une mauvaise conception au départ demande de nombreux travaux de refondation. L'évolutivité de votre application n'est pas toujours une priorité et l'outil a du mal à s'adapter à vos problématiques quotidiennes. Comme la maintenance et l'évolutivité est facturée à des tarifs moins attractifs que les débuts de projet, d'aucuns diront que ce problème du client est une manne financière pour l'ESN ; ce n'est pas notre cas, nous pensons que ce souci est dû à la structure même des ESNs.

Notre ambition, c'est de cumuler les avantages des deux structures, ou de réduire les défauts des deux structures, selon le point de vue. Nous n'avons pas souhaité travailler comme des indépendants, car le périmètre donné des projets est souvent trop restreint pour avoir une vision d'ensemble : le risque est de produire de la mauvaise qualité. Parfois, le cahier des charges est trop flou et il n'y a pas de compétence chez le client pour le préciser : c'est un autre problème. Nous n'avons pas souhaité créer ou rejoindre une ESN, car nous pensons qu'un département commercial comme point de contact est synonyme de trop de frictions. Nos clients sont les vrais concepteurs de nos applications, car ils savent ce dont ils ont besoin, ils connaissent leurs problématiques métier. De fait, nos clients peuvent comprendre ce qui risque de poser souci au long court, ce qui devra être mis à jour dans le temps.

Si nos clients sont inclus dès le départ, s'ils ont un résumé clair et précis de ce que nous réalisons, alors :

  • Ils comprendront davantage les tenants et aboutissants de ce projet, sauront mieux expliquer les coûts associés, sans pour autant nécessiter une compétence du numérique ;
  • Ils pourront mieux faire leur choix entre une réalisation robuste et de qualité, ou une réalisation temporaire (pour une action publicitaire par exemple) ;
  • Ils pourront mieux faire coincider leurs priorités avec notre planning ;
  • Ils pourront avoir une gestion raisonnée de leurs coûts ;
  • Ils seront davantage satisfaits de notre collaboration, en anticipant une relation de long terme ;
  • Ils auront davantage la capacité de changer de prestataire par la suite s'ils le souhaitent. Nous considérons qu'il s'agit d'un service rendu à nos clients, car nous détestons être enfermés comme clients d'une entreprise nous-même.

Si vous faites appel à nous pour votre projet, c'est tout cela que nous vous proposons : une conception co-construite de votre outil sans nécessiter de compétence informatique au préalable, une réalisation à la qualité adaptée à vos besoins, évolutive par conception, avec des coûts compréhensibles, une transparence dans la réalisation et après, avec une certitude de ne pas être enchaînés à notre structure. Comme nous nous situons entre les indépendants et les ESN, notre tarif est souvent entre les deux ; la contrepartie de notre qualité élevée, c'est un coût moins compétitif qu'une personne indépendante.

Ce que nous pouvons réaliser pour vous

Voici ce que ls-a peut réaliser pour vous :

  • Des systèmes d'APIs pour interconnecter vos logiciels internes entre eux, qu'il s'agisse de services ou de microservices ;
  • Des applications web sur-mesure, qu'il s'agisse d'intranets, d'extranets ou de portails, respectueux du RGAA, éco-conçus, élégants et rapides ;
  • Des sites web vitrine ou e-commerce, quel que soit leur niveau de complexité, en vous laissant si vous le souhaitez la capacité de le mettre à jour, toujours respectueux du RGAA, éco-conçus, élégants et rapides ;
  • Des logiciels de bureau compatibles uniquement Windows ou multi-plateformes, en respectant au mieux l'accessibilité numérique, élégants et rapides ;
  • Des applications mobile Android et iOS, qu'elles soient natives ou en WebView, toujours en respectant au mieux l'accessibilité numérique, élégantes et rapides ;
  • Des systèmes supportant une grande volumétrie de données, avec du suivi, de la traçabilité et de la résilience ;
  • De l'infogérance sur l'hébergement de nos réalisations. Ce n'est pas obligatoire, nous savons que vous préférez parfois les héberger vous-même ! Nous ne proposons pas d'infogérance sur les produits que nous n'avons pas réalisé, car nous voulons une parfaite connaissance de ce que nous hébergeons.

Si le sujet vous intéresse

Si vous avez appris quelque chose sur cette fiche thématique et souhaitez en apprendre davantage, nous vous conseillons de parcourir ces ressources :