Quand votre entreprise doit-elle développer son propre logiciel ?
Chaque entreprise a besoin et utilise des logiciels, et certains sont un facteur important de réussite commerciale. Mais à mesure que les petites entreprises deviennent des tailles moyennes, des écarts de performances logicielles peuvent apparaître. La recherche de nouvelles solutions logicielles peut résoudre les problèmes et les inefficacités et aider les équipes à développer des produits et services innovants. Mais les PDG des entreprises de taille moyenne sont souvent confrontés à un choix difficile : s’il faut mettre à niveau via un fournisseur ou développer (c’est-à-dire développer) leur propre code.
Il est largement admis que les mises à niveau logicielles sont toujours coûteuses et souvent perturbatrices. Parfois, ils échouent complètement ou ne tiennent pas leur promesse initiale. Cela signifie peu ou pas de retour sur l’argent dépensé. Mais parfois, il n’y a tout simplement pas de logiciel standard disponible pour résoudre un problème unique à l’entreprise.
Pour les petites entreprises, il est généralement plus facile (et presque toujours moins cher) de faire des solutions de contournement manuelles lorsque leur logiciel d’exploitation n’est pas à la hauteur de la tâche. Mais les entreprises de taille moyenne peuvent perdre beaucoup d’argent et ralentir leur croissance en raison des inefficacités qui découlent inévitablement de telles solutions de contournement. Et ces processus manuels torturés peuvent empêcher les entreprises de saisir les opportunités en temps opportun. Pour ces entreprises, le codage personnalisé est une option viable. (Les grandes entreprises avec des poches profondes peuvent constituer des équipes de développement de logiciels et ont souvent le talent à bord pour le faire.)
La plupart des entreprises de taille moyenne ont un super utilisateur capable d’aider tout le monde avec les capacités déjà intégrées à leur logiciel (comme les rédacteurs de rapports, les tableaux de bord, etc.). Et la plupart des logiciels de planification des ressources d’entreprise (ERP) modernes ont des couches qui permettent la personnalisation, souvent une couche où les revendeurs à valeur ajoutée (VAR) peuvent apporter des modifications et une couche client pour les personnalisations client. Si une entreprise de taille moyenne peut obtenir ce dont elle a besoin, c’est fantastique. Mais et si ça ne peut pas ?
De nombreuses entreprises de taille moyenne sont bloquées en essayant de décider si elles doivent acheter un nouveau logiciel ou essayer d’écrire leur propre code, même si cela signifie simplement connecter des systèmes disparates. D’autres essaient de sous-traiter le problème à une entreprise de logiciels. Bien que l’externalisation de la création de code puisse faire partie d’une solution, le faire avec succès nécessite une gestion de projet rigoureuse, une capacité que toutes les entreprises de taille moyenne ne possèdent pas.
Pendant ce temps, l’horloge tourne toujours. Les efficacités qui pourraient être réalisées avec le logiciel ne sont pas récupérées, ce qui ronge les marges. Les opportunités de marché sont perdues pour les concurrents. Comment les dirigeants d’entreprises de taille moyenne peuvent-ils déterminer quand il est judicieux de créer leur propre logiciel ?
Quand lancer votre propre code
Il est inefficace de développer des programmes personnalisés pour les fonctions commerciales de base telles que la comptabilité, la paie, la taxe de vente, l’inventaire et la gestion de la relation client (CRM), et de nombreuses options sont facilement disponibles. Mais s’il n’y a pas de logiciel qui fait ce dont vous avez besoin, vous n’aurez peut-être pas d’autre choix que de lancer le vôtre, surtout s’il y a une opportunité de grande valeur à saisir ou une efficacité significative à gagner. (Créer votre propre code ne vaut la peine que s’il y a un gros gain ; sans un retour sur investissement solide, oubliez-le.)
Par exemple, en 2007, BF&S Manufacturing prenait de l’ampleur en tant que sous-traitant de composants complexes, à faible volume mais critiques pour les secteurs verticaux de l’aérospatiale, de l’armée, de la médecine et de l’industrie. Ses clients voulaient superviser les travaux, mais BF&S était basé au Mexique et nombre de ses clients ne voulaient pas investir le temps et l’argent pour voyager et rester là-bas.
BF&S dépendait d’une relation étroite avec ses clients, se tournant souvent vers leurs ingénieurs pour résoudre les problèmes de production. Mais la distance et une frontière rendaient cela de plus en plus difficile. Le partage d’écran et les caméras à eux seuls n’allaient pas suffire à ses clients, et BF&S craignait de les perdre au profit de fabricants plus proches, même si ces entreprises facturaient plus cher. BF&S devait être en mesure de transférer des données de production précieuses de son système ERP de base dans un format que ses clients pourraient utiliser.
Le PDG de BF&S, Carlos Fernandez, a regardé autour de lui mais n’a pas trouvé de solution d’achat. Au lieu de cela, dit-il, nous nous sommes lancés dans un programme logiciel qui fournirait des données en temps réel 24h/24 et 7j/7 sur les versions de produits de l’entreprise. Tout a commencé avec leur informaticien, comme l’appelle Fernandez, à la sortie de l’université, en créant un outil pour suivre les stocks de matières premières, de travaux en cours et de produits finis et fournir une visibilité interne et externe.
Il a été achevé et utilisé pour la première fois en 2010. Les clients l’ont adoré. Fernandez a commencé à développer l’équipe de développement de logiciels au Mexique, soutenant quatre installations dans l’État de Sonora avec un effectif combiné de 500. Les clients pouvaient désormais voir la vidéo des postes de travail, la progression de leurs produits à chaque étape, les stocks de produits bruts et finis de BF&S, qui travaillait sur leur travail, et toutes les histoires et spécifications du produit.
Ce codage personnalisé nécessitait une compréhension approfondie à la fois des activités de l’entreprise et des besoins de ses clients. Dirigée à l’origine par Fernandez, l’équipe d’ingénieurs et de responsables des opérations planifie et gère désormais le support et le développement continus de l’outil.
Aujourd’hui, bien que Fernandez ne prétende pas que le code maison de son entreprise est un énorme différenciateur concurrentiel, il pense qu’il donne à ses clients ce qu’ils veulent et ce qu’il ne pourrait pas fournir grâce à un logiciel standard : la transparence et une mesure de contrôle sur le fabrication de leurs produits.
Le voyage et les coûts
Faire rouler votre propre code n’est ni simple ni bon marché. Les ingénieurs logiciels sont très bien payés. Aux États-Unis, cela signifie des salaires à six chiffres. Les coûts de recherche et d’embauche d’ingénieurs impliquent souvent des cabinets de recherche, qui facturent 15 à 30 % du salaire des premières années, et depuis plusieurs années, même eux ont du mal à trouver de bons candidats. En plus des coûts de sourcing, vous devez interviewer et évaluer les compétences techniques des candidats, former et intégrer les nouvelles recrues, et fournir un environnement numérique pour le développement et les tests.
Et puis vous devez gérer les tâches de développement du code, en vous assurant qu’elles soient productives. Comme le département de développement dépasse cinq ou six ingénieurs, vous aurez besoin d’un responsable DevOps pour le superviser si les programmeurs sont sous-gérés, des jours et des semaines peuvent être perdus alors que la productivité s’effondre.
Et vous ne pouvez pas simplement embaucher des développeurs et des gestionnaires et vous attendre à ce que la magie opère. Les ingénieurs font ce que l’entreprise leur dit de faire. Ils prospèrent sur la clarté. Ainsi, vous devrez passer du temps à saisir les opportunités de votre entreprise et à être en mesure de décrire les fonctionnalités, les fonctions et les options que vous souhaitez. Cette feuille de route logicielle doit être terminée avant que vos ingénieurs ne commencent à coder. Si vous ne faites pas tout cela correctement et à temps, vous aurez des talents très coûteux qui seront probablement à la recherche d’autres endroits où travailler.
Enfin, lorsque vous développez du code personnalisé, vous devez le maintenir. Le logiciel tombe en panne tout le temps. Les pirates informatiques trouvent continuellement de nouveaux vecteurs d’attaque. De nouveaux besoins apparaissent et les utilisateurs demandent des modifications. Même les langages de programmation vieillissent, donc tous les cinq à dix ans, les logiciels peuvent avoir besoin d’être réécrits. Les coûts continuent d’affluer.
Cependant, bien que le codage personnalisé soit difficile, il peut être un facteur crucial et en vaut la peine pour certaines entreprises qui proposent des solutions innovantes à leurs clients.
Corefact (un client Mastering Midsize) est un fournisseur de services de marketing à service complet pour les secteurs de l’immobilier et des prêts hypothécaires. En 2005, l’entreprise a eu une nouvelle idée. Si un agent immobilier pouvait envoyer une carte postale à un client potentiel avec une URL unique qui conduirait le client à un site Web avec sa propre maison en son centre, cela pourrait être extrêmement attrayant et changer la donne. Les clients de Corefacts, les agents immobiliers, étaient enthousiasmés, non seulement par l’attrait potentiel pour leurs clients, mais aussi par toutes les données que ce type d’engagement leur fournirait.
Corefact ne pouvait pas acheter de logiciel pour ce faire, c’était nouveau. Le fondateur et PDG de Corefacts, Chris Burnley, a toujours été un technologue. Avant Corefact, il a lancé plusieurs entreprises axées sur la technologie. Grâce à cette compétence technologique, l’entreprise a trouvé un moyen d’imprimer des URL uniques de données variables sur des cartes postales, puis de les transférer sur des serveurs Web qui attendraient qu’un propriétaire saisisse l’URL, après quoi un nouveau site Web unique serait créé instantanément. . En 2006, le logiciel a été lancé avec un seul ingénieur.
Aujourd’hui, l’équipe d’ingénieurs compte 10 personnes, situées aux États-Unis et à l’étranger. Ils ont créé un code personnalisé qui n’est pas seulement orienté client, mais qui rassemble également efficacement des milliers de commandes quotidiennes via la saisie des commandes, les graphiques et le prépresse et automatise le flux de travail efficace sur les presses et jusqu’à la finition.
Burnley déclare : Notre concept original nous a mis sur une rampe de croissance rapide, mais notre capacité à innover avec la technologie continue de nous propulser. Bien sûr, l’investissement dans les ingénieurs est énorme et continu, mais la liste des opportunités est longue.
Mais ils ne construisent pas tous les logiciels qu’ils utilisent. Lorsqu’il s’agissait de mettre à niveau leur ERP, ils ont choisi un produit standard de Netsuite, auquel ils connectent leurs systèmes de gestion des commandes qu’ils ont eux-mêmes créés. De même, ils ont récemment abandonné un CRM auto-fabriqué en faveur de Salesforce, gardant leur équipe de développement concentrée sur la création de logiciels qu’ils ne peuvent pas acheter.
Les trois compétences dont vous avez besoin pour développer la vôtre
Les exemples que j’ai abordés nécessitent des quantités différentes des trois compétences suivantes, selon la complexité de vos exigences en matière de code personnalisé :
Traduire les besoins de l’entreprise en projets logiciels.
L’identification des besoins de l’entreprise et de ses solutions est un processus nécessairement itératif, en gardant à l’esprit les limites des logiciels existants, ainsi que vos ressources et données disponibles. Il ne s’agit ni de développement de logiciels ni de gestion d’entreprise ; c’est une forme d’ingénierie où une jambe se trouve dans l’entreprise et l’autre dans une compréhension approfondie du fonctionnement de vos systèmes logiciels actuels.
Cette compétence pourrait être détenue par un cadre dans une entreprise de taille moyenne plus petite, ou par une petite équipe à mesure que l’organisation se développe. Ce qui entre est un problème ou une opportunité, ce qui en ressort est une série d’étapes détaillées pour créer et maintenir le code : quelles données exactement doivent être utilisées et quelle logique ou quels processus doivent être utilisés pour produire une solution. Sans toutes ces étapes, tenter de créer un code personnalisé n’a aucun sens.
Développement de codes.
Selon les circonstances, une entreprise de taille moyenne peut avoir un programmeur ou un service d’ingénierie complet. Par exemple, dans mon entreprise précédente, nous avions Dave, un jeune employé d’entrepôt qui code comme passe-temps, qui montait de temps en temps à l’étage pour de petits projets de codage. Pour de plus grandes opportunités, le développement de code peut se transformer en une série d’équipes d’ingénierie avec des compétences et des objectifs différents travaillant dans un département DevOps complet, dirigé par un vice-président ou un directeur de la technologie.
Opérations logicielles.
L’aspect opérationnel de la gestion des applications personnalisées est coûteux. Vous devez maintenir l’intégrité du code personnalisé et vous assurer que vos processus, vos personnes et vos outils sont tenus à jour. Les éléments des opérations incluent le support utilisateur/les services d’assistance, la formation, la gestion des risques de sécurité, la correction des bogues, la personnalisation supplémentaire continue, les attributs de disponibilité et de performances, etc.
Tirer parti de logiciels maison pour apporter de l’innovation à votre marché ou pour créer des opérations plus efficaces peut être un puissant moteur de croissance. Mais la décision d’achat ou de construction est cruciale. S’il n’est tout simplement pas possible d’acheter le logiciel dont vous avez besoin, il peut être judicieux de le créer. Mais on ne peut nier que c’est un chemin difficile, et cela ne vaut la peine que si l’avantage est important. Avant de créer, assurez-vous de comprendre les coûts réels pour réussir à long terme, et ne vous lancez que dans les efforts d’écriture de code dont vous êtes sûr que votre entreprise est capable.