Pourquoi la maintenance d'applications Web devrait être plus une chose
Les développeurs de logiciels traditionnels nous cachent un secret à la vue de tous. Ce n'est même pas un fait contesté. Cela fait partie de leur modèle d'affaires.
Peu importe que nous parlions de fournisseurs de logiciels d'entreprise haut de gamme ou de petits éditeurs de logiciels qui écrivent les outils que nous utilisons tous les jours dans nos emplois ou nos entreprises. C'est juste là devant et au centre. Des coûts supplémentaires qu'ils ne cachent pas et que nous avons coutume de payer.
Eh bien, beaucoup de fournisseurs de logiciels traditionnels gagnent plus d'argent en conservant le logiciel qu'ils écrivent qu'ils ne le font dans la version initiale. En outre, cet article de l'université Stanford affirme que la maintenance représente normalement entre 60% et 90% du coût total de possession d'un produit logiciel.
Cela vaut la peine de laisser cela une minute . Ils dépassent largement le prix d'achat initial en vendant des plans de support et de maintenance continus.
Nous ne poussons pas la maintenance
Le problème est que dans l'industrie du développement web, la maintenance des applications Web n'est pas nous nous concentrons sur. Nous pourrions le mettre dans nos propositions parce que nous aimons l'idée d'une provision mensuelle, mais ils couvriront probablement de simples tâches d'entretien ou de nouvelles demandes de fonctionnalités.
Il n'est pas rare de cacher des mises à niveau et optimisations essentielles pour nos itérations ultérieures parce que nous ne sommes pas convaincus que le client voudra payer pour les choses que nous considérons comme des améliorations essentielles. Nous essayons de les faire passer par la porte arrière. Ou, en d'autres termes, nous ne sommes pas ouverts et transparents que, tout comme les logiciels plus traditionnels, ces applications ont besoin d'être conservées.
Quelles que soient les raisons, il devient clair que nous accumulons des problèmes pour l'avenir. Les applications logicielles que nous construisons sont ici pour le long terme . Nous devons penser comme des fournisseurs de logiciels traditionnels. Notre logiciel fonctionnera encore dans 10 ou 15 ans, et il devrait être maintenu bien entretenu.
Alors, comment pouvons-nous changer cela? Comment pouvons-nous tous, en tant qu'industrie, veiller à ce que nos clients soient protégés afin que les choses restent sécurisées et à jour? De même, comment pouvons-nous obtenir une part de la tarte de maintenance ?
Qu'est-ce que la maintenance?
Dans leur article de 2012 Effective Application Maintenance Heather Smith et James McKeen Définir la maintenance comme (emphase la mienne):
Porter une application sur un nouveau serveur, s'interfacer avec un autre système d'exploitation, passer à une version plus récente, modifier une table des taxes ou se conformer à de nouvelles réglementations. Par conséquent, la maintenance est axée sur la mise à niveau d'une application pour s'assurer qu'elle reste productive et / ou rentable . La définition de la maintenance d'application préférée par le groupe de discussion est – toute modification d'une application pour corriger les fautes; améliorer les performances ou pour adapter l'application à un environnement modifié ou à des besoins modifiés. Ainsi, ajouter de nouvelles fonctionnalités à une application existante (ie, amélioration) n'est pas, à proprement parler, considéré comme une maintenance .
Autrement dit, la maintenance est un travail essentiel qui doit être effectué sur un logiciel donc il peut continuer à fonctionner de manière fiable et sécurisée.
Il n'ajoute pas de nouvelles fonctionnalités. Il ne vérifie pas les fichiers journaux ni ne vérifie que les sauvegardes ont bien été exécutées (il s'agit de tâches d'administration interne). Il travaille sur le code et la plate-forme sous-jacente pour s'assurer que les choses sont à jour, qu'elles fonctionnent comme leurs utilisateurs l'attendent et que les lumières restent allumées.
Voici quelques exemples:
Les bibliothèques tierces ont besoin d'être mises à jour. Le langage sous-jacent nécessite une mise à jour, par ex. PHP 5.6 à PHP 7.1 Les systèmes d'exploitation modernes envoient régulièrement des mises à jour. Garder le dessus est la maintenance et parfois il faudra également modifier la base de code, car les anciennes façons de faire certaines choses deviennent obsolètes.Mise à l'échelle
À mesure que l'application se développe, des problèmes de ressources surviennent. Routines dans le code qui a bien fonctionné avec 10.000 transactions par jour luttent avec 10.000 par heure. L'application doit être surveillée, mais il faut aussi prendre des mesures lorsque les alertes sont déclenchéesCorrection de bogue
Il est évident mais cela vaut la peine d'être explicite. Le logiciel a des bugs, et ils ont besoin d'être corrigés. Même si vous incluez une petite période de corrections de bogues gratuites après l'expédition d'un projet, le client devra à un moment donné commencer à payer pour cela.
Difficile à vendre?
Fait intéressant, quand j'en discute avec mes pairs, ils Il est difficile de convaincre les clients qu'ils ont besoin d'entretien. Ils sont préoccupés par le fait que leurs clients n'ont pas le budget et qu'ils ne veulent pas trouver trop cher.
Eh bien, voici la chose: c'est en fait une vente plutôt facile. Nous traitons avec des gens d'affaires, et nous devons simplement leur parler de la maintenance en termes commerciaux. Les gens d'affaires comprennent que les biens doivent être entretenus sinon ils deviendront passifs. C'est juste un autre frais généraux mensuel standard continu. Un coût de faire des affaires. Nous devons juste mettre ceci dans nos propositions et nous assurer que nous suivons cela .
Une méthode extrêmement efficace consiste à offrir un dispositif de retenue qui incorpore la maintenance à la base mais qui englobe aussi beaucoup de Valeur ajoutée pour le client, des choses comme:
- Rapport sur les progrès par rapport aux KPI (par exemple trafic, conversions, volumes de recherche)
- Temps limité "libre" chaque mois pour de petites modifications sur le site
- mises à jour du serveur ou travaux de développement terminés
- Accès à des membres de votre équipe ou à des membres spécifiques de votre équipe par téléphone pour répondre aux questions
En effet, vous pouvez faire en sorte que l'acompte épargne le client et paye pour lui-même. Un bon exemple de ceci serait l'exigence d'un client d'obtenir un rapport simple ou d'exporter de la base de données chaque mois pour le traitement hors ligne.
Vous pourriez citer un certain nombre de jours de développement pour construire un – probablement plus complexe qu'initialement supposé – signaler l'interface utilisateur ou bien pointer le client vers votre mandat. Inclure à l'intérieur de lui une tâche chaque mois pour un développeur d'exécuter manuellement une requête SQL prédéfinie pour fournir manuellement les mêmes données.
Une tâche triviale pour vous ou votre équipe;
Un exemple pratique
Vous aurez, bien sûr, votre propre façon d'écrire des propositions, mais voici quelques extraits d'un exemple de pitch.
Dans la section de votre proposition où vous pourriez peindre votre vision pour l'avenir, vous pouvez ajouter quelque chose sur la maintenance. Utilisez ceci comme une opportunité pour planter la graine sur la formation d'une relation à long terme.
Vous cherchez à minimiser le risque à long terme.
Vous voulez vous assurer que votre application fonctionne bien, qu'elle reste sûre et qu'elle
Vous comprenez également l'importance de la maintenance pour tout actif commercial.
Plus loin, dans la section des livrables, vous pouvez ajouter une partie sur la maintenance en tant qu'option indépendante ou
Dans l'exemple suivant, nous conservons la simplicité et nous l'associons à une provision de développement prépayée:
Nous recommandons fortement que tous les clients considèrent la maintenance comme un avantage essentiel pour leur site Web. . Les applications Web modernes nécessitent une maintenance, tout comme votre maison ou votre voiture; vous gardez votre actif maintenu à réduire le risque tangible qu'ils deviennent des responsabilités plus tard .
En tant que client qui est raisonnablement désireux de rester au courant de la maintenance de l'application ainsi que d'ajouter de nouvelles fonctionnalités, nous Nous suggérerions N jours par mois (comme point de départ) pour la maintenance générale et la rétention de développement.
Nous étendrions les choses de sorte qu'un développeur travaille sur votre système au moins [some period per week/month] vous donnant l'avantage distinct d'avoir un développeur capable de passer à quelque chose de plus important si des problèmes surviennent pendant la [same period]. En fonction de vos priorités, vous pouvez consacrer du temps à de nouvelles fonctions ou les diviser avec la maintenance, c'est votre appel. Nous suggérons normalement une répartition de 75% / 25% entre les nouvelles fonctionnalités et la maintenance importante.
Comme mentionné précédemment, c'est aussi une excellente opportunité d'intégrer la maintenance à d'autres services continus à valeur ajoutée tels que les rapports de performance. des tâches comme la vérification des sauvegardes et peut-être un appel mensuel pour discuter des progrès et des priorités.
Ce que vous trouverez probablement, c'est qu'après avoir atterri le travail, le mandat n'est plus mentionné à nouveau. Cela est compréhensible car il y a beaucoup de choses à considérer pour vous et votre client au début d'un projet, mais comme le projet se termine, c'est le bon moment pour le réintroduire dans le cadre du processus de désapprobation de votre projet.
il s'agit de la phase 2 ou simplement de présenter les factures finales et de les remettre, de leur rappeler la maintenance. Rappelez-leur la formation continue, les rapports, et être disponible pour le soutien . Faites l'effort d'un serviteur, rappelez-vous de parler dans les mêmes termes commerciaux: leur nouvel atout doit rester brillant
La maintenance peut-elle être ennuyeuse?
devenir un fardeau supplémentaire. Le souci est que les clients vous appellent constamment et demandent de petites modifications dans le cadre de votre mandat. C'est une préoccupation particulière pour les petites équipes ou les consultants solo.
Ce n'est généralement pas le cas, cependant. Peut-être qu'au début, le client aura une liste de problèmes qui doivent être résolus, mais c'est normal pour le cours; Si vous avez de l'expérience, vous l'attendez. Ceux-ci sont facilement gérés en améliorant les canaux de communication (utilisation d'un outil de suivi des problèmes) et en regroupant toutes les demandes ensemble, c'est-à-dire en travaillant dessus en un seul clic.
mode tick-over. C'est là que le mandat devient particulièrement précieux pour les deux parties. Cela dépend évidemment de comment vous avez structuré la provision mais de votre point de vue, vous vous efforcez de rappeler au client chaque mois à quel point vous êtes précieux. Vous pouvez leur envoyer votre rapport mensuel, leur dire comment vous avez corrigé un ralentissement dans cette routine et que le serveur a été corrigé pour l'exploit de système d'exploitation global de cette semaine.
Vous étiez, bien sûr, également disponible pour travailler sur un certain nombre de nouvelles fonctions demandées qui étaient en outre payantes . Du point de vue de votre client, ils voient que vous êtes là, ils voient des progrès, et ils peuvent enlever «s'inquiéter du site Web» de leur liste. De toute évidence, «ces clients existent, cependant, le plus important est d'obtenir le bon libellé et de gérer les attentes en conséquence.
Si votre client attend la lune sur le bâton pour un faible coût mensuel, repousser ou renégocier. Vous payer pour faire – disons – deux heures d'entretien et d'entretien ménager par mois pour fournir un rapport mensuel et d'autres tâches auxiliaires est exactement cela; Ce n'est pas un chèque en blanc pour faire beaucoup de changements ad hoc. Rappelez-leur ce qui est inclus et ce qui ne l'est pas
Comment faciliter la maintenance?
Enfin, pour assurer le meilleur rapport qualité-prix pour vos clients et vous faciliter la vie, utilisez certaines de ces tactiques lors de la construction de vos applications
Support à long terme (LTS)
- Utiliser des plateformes technologiques avec des versions LTS et des chemins de mise à niveau bien documentés.
- Les mises à niveau OS, langage, framework et CMS continues devraient être prises en compte pour tous les projets. La version LTS est une évidence.
- Tout devrait fonctionner sur une version prise en charge. Les grosses cloches d'alarme devraient sonner si ce n'est pas le cas
Good Project Hygiene
- Avoir des tâches de maintenance publiques dans votre backlog de fonctionnalité ou système de suivi des problèmes et convenir des priorités avec votre client. Ne cachez pas les tâches de maintenance.
- Les tests au niveau du code et les tests fonctionnels vous permettent de garder un œil sur un code particulièrement problématique et aident à extraire les modules pour le refactoriser.
- Surveiller l'application et comprendre où se trouvent les goulots d'étranglement sont. Tout problème peut être ajouté au retard de développement et être hiérarchisé en conséquence.
- Surveiller les demandes de support. Les utilisateurs finaux vous fournissent-ils des commentaires utiles qui pourraient indiquer les besoins de maintenance?
L'application doit être portable
- Tout développeur devrait être capable de mettre en place le système facilement et localement – pas seulement vous! Utilisez des serveurs ou des conteneurs virtuels pour vous assurer que les versions de développement des applications sont identiques à la production.
- L'application doit être bien documentée. Au minimum, les workflows de provisioning et de déploiement et toutes les incantations spéciales requises pour le déploiement en direct doivent être écrites.
La maintenance est un vrai gagnant-gagnant
La maintenance est le travail que nous devons faire sur une application pour qu'elle puisse rester immobile en toute sécurité. C'est un coût d'entreprise standard. En moyenne 75% du coût total de possession sur la durée de vie d'une application logicielle.
En tant que professionnels, nous avons le devoir d'éduquer nos clients sur la maintenance dès le départ. Il y a une énorme opportunité ici pour un revenu supplémentaire tout en offrant une valeur tangible à vos clients. Vous maintenez une relation commerciale continue et vous serez la première personne à qui ils s'adresseront lorsqu'ils auront de nouvelles exigences.
Continuer de fournir de la valeur grâce à votre mandataire renforcera la confiance du client. Vous obtiendrez une plate-forme pour suggérer des améliorations ou de nouvelles fonctionnalités. Travaillez que vous avez une grande chance de gagner. Vos clients réduisent leurs coûts de durée de vie, ils réduisent leurs risques et ils cessent de se soucier des performances ou de la sécurité.
Faites-vous plaisir à vous-même, à votre client et à toute notre industrie. 19659073] Éditorial brisant « /> (rb, ra, hj, il)
Source link