Le développement logiciel est une affaire complexe. Chaque projet est avant tout un concept et les personnes qui lui donnent vie. Les délais, les ressources et, bien sûr, les technologies, sont généralement définis par la suite. Mais cela n’implique pas que le choix des technologies soit le moins important. Aujourd’hui, nous n’allons pas décortiquer des aspects du projet tels que l’équipe et ce qu’elle peut faire. Je crois que tout le monde réalise que pour que quoi que ce soit fonctionne, des personnes compétentes sont indispensables. Au lieu de cela, nous allons parler aujourd’hui de la manière de (ne pas) choisir une pile technologique pour votre projet.

Lors de la décision concernant les technologies fondamentales utilisées dans un projet, les aspects commerciaux exigent que vous connaissiez les réponses à ces questions :

  • Quels problèmes votre projet est-il censé résoudre ?
  • Comment va-t-il évoluer au fil du temps ?
  • Combien de ressources seraient nécessaires pour sa mise en œuvre et sa maintenance ?
  • Existe-t-il des technologies émergentes mieux adaptées à votre projet ?
  • Existe-t-il des solutions prêtes à l’emploi ?
Problèmes

Considérez le fait que différents problèmes nécessitent différents instruments. Il est donc crucial de comprendre la logique métier derrière une application avant de faire un choix définitif de la pile technologique. Par exemple, vous n’utilisez pas Python pour développer un site web promotionnel. Vous utiliserez un CMS comme WordPress, Joomla, Drupal, NetCat, HostCMS, car c’est gratuit, simple, pratique, efficace en termes de temps, offre diverses options de conception et ne nécessite pas l’aide d’experts.

Évolutivité

Vous pourriez penser qu’un choix judicieux rendra votre application pérenne et florissante pour toujours. Certaines technologies peuvent effectivement traiter les données de manière impeccable, mais seulement jusqu’à ce que la charge ne soit pas trop élevée. Mais lorsqu’une application se développe et gagne des centaines de milliers de nouveaux utilisateurs, elle peut ne plus être aussi stable.

L’évolutivité signifie essentiellement la capacité d’une application web à gérer de grandes quantités de requêtes lorsque le nombre d’utilisateurs augmente de manière significative.

Avant de choisir la pile technologique parfaite selon vos besoins, vous devez évaluer l’évolutivité à l’avance. Ce faisant, appuyez-vous sur des exemples déjà existants pour expliquer pourquoi une technologie particulière est évolutive.

Ressources

Certaines technologies sont trop chères, ou les développeurs qui les maîtrisent sont trop difficiles à trouver. C’est pourquoi certains se tournent vers des technologies bon marché comme Mendix. Cependant, ce qu’ils ne considèrent pas, c’est le défi de maintenir une telle technologie par la suite.

Pendant le processus de développement, vous devez toujours viser l’équilibre parfait entre le coût, les délais et la qualité. La plupart du temps, cela conduit les développeurs à sacrifier un système de sécurité puissant d’une technologie au profit d’une autre plus rapide et moins chère à exploiter.

Progrès

Bien sûr, vous devez toujours vous rappeler que l’infotechnologie évolue chaque jour, et que ce qui était considéré comme innovant il y a 5 ans est proche de l’extinction aujourd’hui, alors que quelque chose de plus récent a été publié le mois dernier.

Lorsque Kotlin est sorti, de nombreux développeurs Java ont été choqués par la rapidité et la facilité avec lesquelles il est possible de créer des applications Android avec cette nouvelle technologie. D’un autre côté, les nouvelles technologies ont tendance à avoir une communauté moins importante et une documentation plus pauvre par rapport aux langages et frameworks plus anciens.

Solutions clés en main

Si votre concept n’est pas entièrement nouveau, il existe probablement une solution prête à l’emploi sur le web, il vous suffit de la prendre et de l’utiliser. Cependant, il y a une chance que cette solution soit dans un autre langage de programmation, ait une documentation ou une communauté médiocre, ou qu’il y ait une poignée de développeurs capables de l’utiliser dans un projet.

Mais il y a aussi quelques préoccupations du point de vue technique :

Imaginez que vous devez choisir une pile technologique pour construire une application web à partir de zéro. Le mieux que vous puissiez faire est d’opter pour la solution la plus simple et d’utiliser un CMS (Content Management System), au moins partiellement. Nous supposons que vous choisissez WordPress comme le plus populaire d’entre eux. Nous l’utiliserons comme exemple dans les paragraphes suivants.

Difficulté de développement

WordPress n’est en aucun cas une technologie difficile. Il fait la majeure partie du travail de routine pour vous. Ainsi, la création et la modification des pages web sont rapides et faciles, même lorsqu’elles sont effectuées par un développeur non expérimenté. Et en prime : il est livré gratuitement. Donc, cette case est cochée.

Support et documentation

Le développement de cette technologie est toujours en cours. Pas à pas, ses créateurs implémentent des fonctionnalités sophistiquées comme l’asynchronisme et le traitement des transactions. Les anciennes fonctionnalités sont également prises en charge et améliorées, et la documentation est vaste. Il n’y aurait pas de situation où vous ne pourriez pas comprendre comment faire quelque chose. Vérifié.

Fonctionnalité

Un aspect majeur mais pas le plus fort de WordPress. Il peut gérer beaucoup de choses, mais il existe des solutions supérieures pour chaque usage présentes sur le marché. Si vous ne tenez pas compte de la facilité de développement, WordPress est une solution assez faible en soi.

Personnalisation

Premièrement, WordPress est un CMS. Bien sûr, il ne vous offrira pas autant d’opportunités d’exprimer votre créativité qu’un framework et encore moins un langage de programmation seul. Mais même là, vous avez quelques options. Il existe des thèmes et des maquettes prêts à l’emploi, payants ou gratuits, il vous suffit de trouver celui qui vous convient le mieux.

Adaptabilité

Un site web WordPress s’affichera aussi bien sur un ordinateur de bureau que sur un appareil mobile, et il en va de même pour les performances. Ce n’est pas le CMS le plus rapide, mais il ne vous laissera pas tomber si quelqu’un essaie d’accéder à votre site web depuis un smartphone. Vérifié.

Sécurité

Il existe des moyens de pénétrer les défenses de WordPress. Dans ce cas, polyvalent signifie vulnérable. Vous pouvez accidentellement tomber sur un paquet ou un thème qui contient une sorte de porte dérobée. Cela peut se produire avec n’importe quel CMS et dans n’importe quel langage de programmation, mais ceux-ci ont beaucoup de paquets éprouvés, presque classiques. Et WP n’a pas beaucoup de ces choses.

Charge

Et voici notre éléphant dans la pièce. Nous avons choisi WordPress pour notre site web parce que nous savions que ce n’est pas un portail d’actualités ou un réseau social. C’est toujours une solution décente pour un site web d’entreprise. Si vous n’avez pas plusieurs millions d’utilisateurs par jour, vous vous en sortirez bien avec WP. Mais si votre site web doit supporter une charge supplémentaire, soyez attentif au choix de votre pile technologique.

Imaginez que vous ayez quand même réussi à créer un site web à forte charge avec WordPress. Il aura l’air et se comportera bien jusqu’au premier test de performance. Dès que la charge du site web atteindra des chiffres réels, il créera d’abord un goulot d’étranglement frustrant, puis plantera tout simplement.

En fait, vous pouvez développer pratiquement n’importe quoi en utilisant n’importe quelles technologies si vous y mettez suffisamment d’efforts. Cela peut varier en certaines qualités, mais c’est toujours possible. Vous ne dépensez pas seulement un montant différent de temps et d’argent sur des projets avec des piles technologiques différentes, mais vous obtenez également un logiciel complètement différent, même s’il porte la même idée.

Mais peut-être est-ce juste une exagération. Dire qu’un mauvais choix technologique ruinera votre projet serait probablement faux. Il y a tellement d’autres aspects du développement logiciel.

Même une technologie inappropriée peut donner de bons résultats entre de bonnes mains. Et une mauvaise équipe peut faire échouer le projet le plus prometteur. Le développement logiciel ne consiste pas seulement à appliquer des technologies. Il s’agit de résoudre des problèmes. Et les technologies seules ne les résolvent pas. Les gens le font.