Développement informatique
Sur-mesure et en gardant la main
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.
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.
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.
Le développement informatique, c'est tout ce que l'on peut réaliser avec de la programmation informatique ; cette définition est aussi vague que les domaines de l'informatique sont précis. Pour faciliter la compréhension aux plus novices, et agacer les perfectionnistes, faisons une analogie avec une maison, dans laquelle :
On distingue trois types de réalisations dans le développement informatique : les sites web ; les applications mobiles ; les logiciels de bureau. La logique globale est la même, on ne les construit juste pas de la même manière. Si l'on devait utiliser une dernière fois la comparaison avec notre maison, cela reviendrait à comparer une maison basse consommation, une maison sur pilotis et une maison en pierre.
Notre société, ls-a, a une grande expérience dans la construction de ces outils informatiques. Nous savons créer ou réparer des logiciels, des sites web ou des applications mobiles, interconnecter ces différents systèmes entre eux, et les sécuriser. Cela couvre de nombreux domaines, pour lesquels nous sommes meilleurs dans certains que dans d'autres. Sans tout lister :
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 :
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 réaliser celui-ci, on utilise les langages suivants : HTML, CSS et JavaScript. Cela vient du fait que les navigateurs (Chrome, Firefox, etc.) ne comprennent que ces langages.
Dans le cadre des logiciels de bureau ou des applications mobiles, on peut utiliser des langages dédiés, comme le XML et le XAML, ou également le trio HTML, CSS, JavaScript. Certaines technologies demandent d'autres langages utilisés dans le développement backend.
Le développement backend est au développement frontend, ce que la plomberie est au jardinage. Un beau jardin fait partie des objectifs principaux du jardinage, là où de la belle plomberie est possible mais ne répond pas à ses objectifs principaux : acheminer l'eau et ne pas avoir 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 :
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.
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) rapidement, peu 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 salarié dans une entreprise ou d'un administré dans une commune. 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.
Pour les personnes compétentes dans ces domaines, nous sommes désolés d'avance de vous avoir regroupés 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 :
C'est complètement différent des autres catégories listées plus haut, car il n'y a pas obligatoirement 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.
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.
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 :
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 d'ailleurs 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 mais un simple exemple, 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.
Le développement informatique, c'est un domaine très large, dans lequel beaucoup d'acteurs sont présents. On retrouve majoritairement deux types de profil :
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 proposer un troisième profil qui cumule les avantages des deux autres, ou qui en réduit les défauts, 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 :
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.
Voici ce que ls-a peut notamment réaliser pour vous :
Si nous avons réussi à piquer votre curiosité et que vous souhaitez en apprendre d'avantage, nous vous recommandons les ressources suivantes :
Cela va sans dire, vous pouvez également nous contacter, que ce soit pour une formation ou pour que l'on vous accompagne sur votre projet !