Avec chaque produit, nous sommes confrontés à de nombreux compromis et défis qui déterminent l'avenir de l'entreprise. Cependant, c'est la technologie, ou plutôt le choix de la technologie, qui constitue le dilemme le plus important car il affecte tous les aspects de l'avenir. Dans cet article, je voudrais présenter les dilemmes associés à la prise d'une telle décision.
Avec chaque produitDans ce contexte, nous sommes confrontés à de nombreux compromis et défis qui déterminent l'avenir de l'entreprise. Cependant, c'est la technologie, ou plutôt la choix de la technologieC'est le dilemme le plus important, car il affecte tous les aspects de l'avenir. Dans cet article, je voudrais présenter les dilemmes liés à la prise d'une telle décision.
Choisir la bonne technologie pour développement de produits est un élément essentiel qui peut avoir un impact substantiel sur la qualité de l'eau. projet succès. Cet article passe en revue les variables les plus importantes à prendre en compte lors du choix de la technologie appropriée pour votre entreprise. développement de produits besoins. Voici 5 règles pour choisir la bonne technologie pour le développement de produits:
1. Définir les exigences du projet
Il est essentiel de bien comprendre les besoins de votre projet avant d'entamer le processus de sélection technologique. Il s'agit notamment de définir le problème que vous essayez de résoudre, le public cible, les caractéristiques souhaitées et tous les besoins technologiques. Une liste d'exigences bien définie peut vous aider à évaluer différentes technologies par rapport aux exigences de votre projet.
- Évolutivité
Au fur et à mesure que votre produit évolue, vous aurez besoin d'une technologie capable de suivre le nombre croissant d'utilisateurs, de données et de fonctionnalités. Examinez la facilité avec laquelle vous pouvez faire évoluer la technologie et la disponibilité des ressources d'évolution. L'utilisation d'une technologie évolutive garantit que votre produit pourra s'adapter à la croissance future.
3. Flexibilité et adaptabilité
Les exigences relatives aux produits peuvent varier au fil du temps, il est donc essentiel de choisir une technologie capable de s'adapter à ces changements. Recherchez des technologies qui facilitent l'ajout de nouvelles fonctionnalités ou la modification des fonctionnalités existantes, afin de garantir que votre produit reste pertinent et à jour.
4. Expertise des développeurs
L'expertise et l'expérience de votre équipe La maîtrise des différentes technologies est essentielle à la réussite de votre projet. L'utilisation d'une technologie familière peut stimuler la productivité tout en réduisant la courbe d'apprentissage. Si une nouvelle technologie est mieux adaptée à votre projet, assurez-vous que votre personnel est correctement formé et soutenu.
5. Sécurité
Compte tenu de l'importance croissante de la sécurité et de la confidentialité des données, il est essentiel d'évaluer les aspects sécuritaires de chaque technologie. Assurez-vous que la technologie choisie répond aux exigences de sécurité de votre produit et qu'elle est conforme aux règles applicables et aux normes industrielles.
Dans mon travail de programmeur, j'ai eu affaire à de nombreux produits et à de nombreux CTOsJ'ai pu saisir les aspects les plus importants du travail et des problèmes qu'il implique, ainsi que les difficultés liées aux projets et aux technologies, et en voici quelques-uns :
Facilité d'entretien
Votre produit doit être hautement disponible et ne pas poser de problèmes de mise en œuvre et de fonctionnement. Chaque technologie est conçue pour fonctionner correctement dans l'environnement approprié, c'est pourquoi la décision est si importante. Un choix plutôt risqué serait de mettre du C++ dans une application web hautement disponible dans un monde où nous avons Elixir et GoLang, ils peuvent vous amener à créer des applications robustes et évolutives. D'un autre côté, si nous construisons des services IOT et que nous avons peu de ressources, la décision peut être différente. Rubis peut également être la réponse à chacune des questions susmentionnées, tout dépend des compromis et de ce à quoi vous tenez lors de la maintenance de l'application ou du site web.
Maturité technologique
Chaque année, de nombreuses technologies sont créées, et certaines d'entre elles sont révolutionnaires au moment de leur création. La question est de savoir si c'est le moment de les utiliser. La maturité d'une technologie ne dépend pas seulement de la disponibilité des spécialistes, mais essentiellement de ce que fait la communauté sous forme de documentation, de bibliothèques, de cours et d'articles.
Nous ne pouvons pas comparer le nombre de nouveaux dépôts sur GitHub pour le JavaScript avec ceux de Ruby, car JavaScript comporte de nombreux nouveaux cadres et bibliothèques importants et chacun d'entre eux nécessite un développement et des paquets de construction. En Ruby, nous disposons d'un cadre principal et d'un écosystème qui lui est associé ; par conséquent, de nombreuses bibliothèques d'authentification ou clients API sont déjà établis et maintenus, et les problèmes qu'ils posent sont également bien connus. Par conséquent, nous ne pouvons pas être surpris que le système de transaction de notre banque est basé sur Java et non JavaScript et ExpressJS, et qu'une startup que vous connaissez a des problèmes pour maîtriser l'architecture de l'application parce que personne n'a résolu leur problème dans cette nouvelle technologie qu'ils ont choisie.
Cependant, il existe encore une tendance, car tout le monde a entendu parler de Perl ou de Cobol, des technologies anciennes et bien établies, mais qui ne sont malheureusement pas assez à la mode pour inciter les développeurs à travailler avec elles. La tendance est un facteur important pour attirer les talents, d'autant plus que plus la tranche d'âge est élevée, moins il y a de programmeurs.
Nombre de spécialistes
Lorsque nous gérons un projet informatique, nous n'allons pas programmer, mais nous devons comprendre exactement ce qui se passe. Il vaut la peine d'aller sur LinkedIn et de vérifier combien de spécialistes il y a dans votre pays ; cela nous indiquera la taille de l'environnement auquel nous avons affaire. Il est également utile d'aller sur le site Embrayage et de vérifier comment le éditeur de logiciels marché se présente comme suit. Vous devez être prêt à faire face à une croissance soudaine et à un remplissage rapide des postes vacants. Bien sûr, l'abondance de candidats potentiels n'est pas synonyme de qualité, mais elle facilite l'acquisition de talents et permet d'atteindre divers spécialistes avec votre offre.
Il faut également partir du principe que les employés de l'entreprise sont remplaçables ; dans la période post-covidique, c'est d'autant plus important que la quarantaine a pu bloquer de nombreuses entreprises. Une telle approche permet également d'éviter la crise de l'exode des spécialistes et de développer la documentation technique.
Frais de fonctionnement
La combinaison des points ci-dessus génère le coût d'exploitation, c'est-à-dire le coût réel de la maintenance de l'application et de l'équipe de développement. Nous choisissons tous une équipe qui répond à nos besoins, mais il faut penser à l'ensemble du back-end de l'application, ou éventuellement opter pour une solution IaaS et SaaS pour les services qui sont critiques pour le fonctionnement du produit.
Chaque gestion de service auto-hébergé est un coût supplémentaire pour vous et un fardeau qui vous éloigne de l'objectif. Dans la phase initiale de développement du produit, même une solution bien connue, comme Netlify ou Heroku, place l'ensemble de l'environnement dans un seul pipeline et vous ne perdez pas le temps de l'équipe à tout créer à partir de zéro.
Résumé
À long terme, une infrastructure prête à l'emploi peut s'avérer moins coûteuse que de réinventer la roue. Le coût d'exploitation, la performance de l'équipe par rapport à la fonctionnalité donnée, la maturité de la technologie et l'étendue des employés disponibles sur le marché sont d'une grande importance.
![](https://thecodest.co/app/uploads/2024/05/interested_in_cooperation_.png)