Chez J2S

Innovation et développement

Le domaine du logiciel est réputé innovant

Certains logiciels connaissent le succès tandis que d’autres restent (volontairement ou pas) dans l’ombre. Leur diversité est incroyable, ils touchent tous les domaines, et ont un effet
« feed-back » sur toutes les activités abordées.

Un exemple ? Dans les années 1970, certains chercheurs en informatique pensaient mettre au point des outils de traduction automatisée en quelques années. Trois ans plus tard, après avoir mieux compris ce qu’était un langage humain, les mêmes évoquaient plutôt un délai de 10 ans. En fait, il aura fallu attendre 50 ans pour que les outils de traduction deviennent crédibles. Ces années auront permis de mieux comprendre qu’un langage est une abstraction qui repose sur nos expériences, nos connaissances, nos émotions, etc. Pas simple à modéliser ! Cette histoire de la traduction automatique illustre ces évolutions.

De l’innovation

Sur le plan théorique, on peut parler d’innovation lorsqu’on aborde un domaine dans lequel il existe un écart entre l’état de l’art (la somme des connaissances humaines du/des domaines concernés) et la réalisation visée ou étudiée. Soit dit en passant, cela suppose pour un individu de connaitre l’état de l’art, ce qui n’est pas une mince affaire en soi : le savoir de l’humanité est étendue, et chaque domaine tout aussi spécialisé fut il requiert de réels efforts pour être maitrisé. Comment faisions-nous avant le partage de connaissances offert par le web ?

En pratique, chacun d’entre nous s’appuie sur ses connaissances pour apprécier l’écart avec la réalisation visée. Est-ce que j’ai le savoir me permettant d’imaginer et réaliser un moteur de voiture performant ? Me concernant, j’en sais assez pour dire que mes connaissances sont largement insuffisantes. Et que dire d’un smartphone qui regroupe des milliards de transistors ?

On le voit intuitivement, l’innovation est un processus vraiment complexe qui la plupart du temps tire profit du travail en équipe. Même s’il existe des inventeurs plutôt solitaires comme Nicolas Tesla , la très grande majorité des innovations qui nous entourent – y compris les logiciels – sont le fruit du travail d’équipes pluridisciplinaires. Les spécialistes des processeurs reposent sur des logiciels qui leur permettent de créer et émuler des circuits de 11 milliards de composants (!), quand les spécialistes des matériaux conçoivent et produisent le verre tactile de nos smartphones. De leur côté, les architectes logiciels et développeurs inventent et mettent au point IOS et Android, etc. Et ne parlons pas du domaine médical ou de l’astrophysique et tant d’autres domaines !

Face à ce foisonnement, des organismes décrivent ce qui relève des processus innovants et de recherche (OCDE, Manuel de Frascati ), d’autres enregistrent les innovations sous forme de brevets ( BNF ), d’autres les publient avec un scoring « relecture par les pairs » ( publications scientifiques ).

Chacun d’entre nous a innové à un moment ou un autre à titre personnel ou en groupe, pour trouver une solution à un problème, sans pour autant que cela ait été consigné : il faut distinguer ce qui relève de l’innovation locale (écart entre mes connaissances ou mon expérience et la solution, non publié) de l’innovation globale (écart entre l’état de l’art et la solution, en général publié).

Du logiciel

Alors, un logiciel est-il innovant parce qu’il existe ?

Développer un logiciel demande des connaissances : on ne part pas de zéro, au contraire, on s’appuie sur une masse outils (langages, bases de données, réseau, IA, OS, cloud, CI/CD, librairies, etc.) dont certains sont propriétaires, d’autres open source. Certains évoluent bien et deviennent pérennes, beaucoup d’autres n’évoluent pas ou disparaissent ; or ils interopèrent les uns avec les autres, et demandent souvent une courbe d’apprentissage qui peut être longue.

Ces outils impactent largement les équipes qui développent, et il existe de réelles « chapelles » selon les partisans de tel langage ou tel outil. Disons que l’adéquation entre les outils choisis et la réalisation visée impactera favorablement ou négativement les équipes, et qu’en conséquence, leur choix peut devenir assez stratégique. Ceux qui ont investi dans Flash/ActionScript s’en souviennent encore ! Mais comment choisir les outils adaptés, faut-il tous les connaitre pour faire le meilleur choix ? Quoi qu’il en soit, de l’expérience et des connaissances sont nécessaires !

Au-delà des outils, se pose la question de la connaissance du domaine visé : est-il concevable de développer un logiciel de comptabilité sans disposer d’une solide expertise à ce sujet ?

Non seulement, il faut avoir une idée précise du domaine mais aussi de ce que l’on veut apporter de nouveau à ce domaine : il existe de nombreuses solutions concurrentes et il faut apporter un ou des paradigmes innovants pour engager l’investissement que représente le développement d’un logiciel. On est encore une fois dans l’appréciation des connaissances (locales, globales) rapportées à la réalisation visée.

Cela étant posé, reste le logiciel en tant que tel : une architecture faite de concepts interopérants, dont le nommage et les rôles vont grandement influer d’une part sur la capacité d’un logiciel à remplir ses objectifs, et d’autre part sur sa capacité à évoluer. Vous rappelez vous de la première version d’Excel et de ce qu’il est aujourd’hui ? Je ne suis pas certain qu’il reste une seule ligne du code original ! La capacité à évoluer d’un logiciel est l’une de ses caractéristiques essentielle – même si elle n’est pas immédiatement visible pour l’utilisateur.

Au-delà de sa clarté interne, un logiciel peut s’acquitter de ses tâches avec célérité ou avec une lenteur exaspérante. Il peut être fiable ou instable, agréable à utiliser ou crispant. Il peut même tenter d’anticiper pour vous aider avec plus ou moins de perspicacité. Tous ces aspects demandent des connaissances et de l’innovation, tant sur le plan technique qu’en matière d’ergonomie.

R&D J2S

La réalisation du logiciel Simple Workspace, que l’on peut schématiquement diviser en deux parties (le client qui s’exécute dans le navigateur de l’utilisateur, les serveurs qui s’exécutent dans le cloud) est une alchimie qui équilibre tous les paramètres que nous venons d’évoquer.

Simple Workspace repose sur un grand nombre de composants, certains gérés par d’autres équipes (ex. open source) et d’autres développés en interne. Leur mise en œuvre a demandé des connaissances, leur développement aussi ainsi que plusieurs innovations.

Reconnu depuis plusieurs années par les clients de plus en plus nombreux qui l’utilisent, Simple Workspace absorbe sans difficulté l’évolution de ses besoins propres (besoins guidés par les clients et l’équipe développement) et l’évolution des composants qu’il utilise (l’écosystème utilisé, des OS à Adobe InDesign en passant par les bases, etc.).

 

Prenez contact avec nous : nous serons ravis d’échanger.

D. Lantier

Business Developer

(Article Chez J2S du 12/9/2022)