Comment les sites sont développés à partir de 100 000 $

image

Depuis 7 ans, je gère des projets informatiques individuels dans le cadre du studio web que je dirige, et pendant ce temps, j'ai acquis une bonne expérience de travail sur de grands projets, que je souhaite partager avec vous. Mes clients viennent généralement des États-Unis, de la France et de l'Allemagne, mais il y a des projets terminés au Canada, en Suisse, au Danemark, en Australie, au Japon, etc. J'ai conçu un réseau social, une vente aux enchères en ligne, un concours de fitness, un service de sélection de pièces automobiles, de livraison de nourriture, des bureaux en ligne pour la réception et le traitement des commandes, des salles de marché et d'autres types de services. Comme vous pouvez le voir, les projets sont différents, mais ils sont unis par un trait distinctif: l'utilisateur interagit avec le service selon un algorithme donné. Ma tâche principale est de réfléchir à ces algorithmes.

Et si plus en détail, je devrais:

  • discuter en détail du projet avec le client
  • rédiger la documentation de conception
  • attribuer des tâches à des spécialistes
  • vérifier leur mise en œuvre et publier des modifications
  • remettre la fonctionnalité de travail au client
  • lui apprendre à utiliser le service
  • signer le certificat d'achèvement et transférer le projet au service support
  • se connecter périodiquement à des tâches complexes pendant le processus de maintenance

J'écrirai sur les nuances de mon entreprise et les bosses farcies dans un article séparé. Et maintenant, en fait, sur les projets ...

L'éléphant doit être mangé morceau par morceau


Je dois dire tout de suite que les projets avec lesquels j'ai travaillé n'ont pas coûté immédiatement plus de 100 000 $. De tels projets sont développés par étapes et la première étape, appelée MVP (Minimum Viable Product), est plusieurs fois moins chère. L'objectif de la première étape est de lancer un service de travail à part entière avec des fonctionnalités limitées et d'y mettre les premiers utilisateurs à des conditions préférentielles. Il est important soit de surveiller leur comportement via le Webvisor, soit de leur donner la possibilité de signaler des bugs pour chatter. Il identifie immédiatement toutes les failles qui n'ont pas pu être trouvées lors des tests, car des dizaines et des centaines d'utilisateurs peuvent utiliser le service pas comme un testeur. Le plus souvent, immédiatement après le lancement du test de la première étape de développement, une liste d'améliorations apparaît, qui sont incluses dans la deuxième étape.Cela vous permet d'ajuster le développement aux exigences des utilisateurs à la volée.

Le temps, c'est de l'argent


Même avant la livraison de la première étape, nous proposons au Client de discuter et de préparer la documentation du projet pour la deuxième étape, afin que le chargement de l'équipe de spécialistes soit continu et qu'il n'y ait pas de temps d'arrêt. De cette façon, nous économisons du temps de développement global du projet. Sans oublier le début de la programmation sans attendre la conception et la mise en page, ainsi que la connexion de plusieurs programmeurs, le partage des charges de travail entre eux et la combinaison du résultat final.

Parlez «pour l'optimisation»


À chaque itération de développement ultérieure, le code de service devient plus compliqué, le nombre d'utilisateurs et le contenu augmentent considérablement. Il est temps d'optimiser la vitesse de téléchargement. Ce processus commence par l'optimisation de la structure du serveur, car il donne immédiatement un résultat à court terme. Après cela, les requêtes côté site sont optimisées. Nous devons encore revenir à cette procédure lorsque le nombre d'utilisateurs augmente à nouveau de manière significative. Ici, nous pouvons parler de tests de résistance, mais à partir de la pratique «la cuillère est le chemin du dîner», par conséquent, un travail d'optimisation est généralement effectué lorsqu'il existe des raisons objectives à cela.

Dis moi ma lumière


Avec une certaine charge sur le serveur et le nombre d'utilisateurs, la question se pose de mettre en miroir le service. Tout d'abord, une copie miroir du service sur un autre serveur nous permet de répartir la charge en divisant les utilisateurs entre les serveurs. Deuxièmement, en cas d'arrêt d'un serveur pour des raisons techniques, le second prend la charge et les utilisateurs continuent à utiliser les services du service en continu. Troisièmement, une telle structure permet de tester une nouvelle fonctionnalité développée sans risque que tous les utilisateurs du service rencontrent un bug inattendu dans la version de travail. En augmentant la proportion d'utilisateurs qui voient progressivement de nouvelles fonctionnalités, vous réduisez considérablement ce risque.

Appelle moi, appelle


Bien sûr, un tel service ne peut exister sans ligne d'assistance et sans le temps alloué aux spécialistes qui peuvent se connecter à tout moment pour corriger de toute urgence les erreurs système pour des milliers de raisons imprévues: utiliser un appareil / système d'exploitation / navigateur non pris en charge, ne pas suivre le processus travaux sur le service, erreurs de format de document, problèmes techniques sur le serveur, etc. etc.

Mouches séparément, côtelettes séparément


Le processus de maintenance et de développement est différent ainsi que le niveau des tâches. À cet égard, nous avons depuis longtemps compris la nécessité de séparer ces deux départements - ce sont des personnes différentes avec des processus de travail différents. Bien sûr, il est important dans ce cas de transférer correctement les choses après le développement de la fonctionnalité principale, afin que la ligne de l'étrier soit en détail à jour avec les algorithmes du projet.


Il est important de comprendre que les clients ne dépenseront des budgets de développement importants que s'ils reçoivent un retour sur investissement. Ainsi, il est inutile de se concentrer sur la culture technique des solutions mises en œuvre et de considérer que si vous avez une documentation de conception détaillée et que vous avez raison de tous les côtés, car fait un service bien pensé et testé, alors vous êtes cool et vous paierez beaucoup et longtemps. Si vous ne voyez pas l'objectif ultime dans la mesure où le service se développe et ne plonge pas dans les objectifs commerciaux du client, communiquez avec les prestataires de promotion (si ce n'est pas votre département) et gardez le doigt sur le pouls du projet, votre produit idéal tombera avec succès sur l'étagère, et vous perdez la source de revenu. Malheureusement,la plupart des développeurs de logiciels mesurent leur travail avec une tâche technique complètement terminée et sont fiers de leur capacité à rejeter les plaintes des clients. C'est sans aucun doute important, mais cela ne vous donnera pas la possibilité de gagner à l'avenir.

Enfin je vais te dire


Je veux noter que pour que votre entreprise de développement Web réussisse, il n'est pas nécessaire de viser de grands projets. Il existe un bon domaine pour les entreprises dans les sites bon marché et bon marché, si vous mettez un tel travail en production. Comme spécialisation, nous avons choisi le développement de services complexes, car nous le faisons bien. Notre entreprise est arrivée dans cette entreprise grâce au développement de systèmes comptables, de sorte que l'automatisation de l'entreprise est «dans notre sang».

J'espère que ce sera utile. Merci à tous ceux qui ont lu!

Je vous serais reconnaissant de votre commentaire constructif.

Et si vous n'utilisez pas de commentaires pour des raisons de modestie naturelle, politique, religieuse ou pour toute autre raison, vous pouvez m'écrire ici .

All Articles