Vous souhaitez externaliser votre ingénierie produit ?

·
4 avril 2017
·
6 min read

Au cours des deux derniers jours, il y a eu de nombreuses discussions sur la fuite des cerveaux des développeurs et la fuite des capitaux du Écosystème technologique nigérian. Je vais surtout me concentrer sur ce dernier.

Dans la vie d'un fondateur d'une nouvelle startup technologique, il se passe beaucoup de choses ; obtenir ça Senator II MVP entre les mains des utilisateurs, des réunions d'investisseurs, de l'optimisation du pitch deck, de la gestion des produits et généralement d'être le touche-à-tout. Pas une mauvaise chose si vous me demandez, étant donné que le fondateur ne fait que commencer et n'a pas l'argent pour faire des folies.

Une chose qui m'inquiète est le thème récurrent de « l'ingénieur nigérian moyen n'est pas assez bon, charge un bras et une jambe et ne livrera jamais à temps. Donc, si vous voulez quelque chose de bien, externalisez-le.

Bien que cela ne me pose absolument aucun problème, je ne peux pas vous dire comment dépenser votre argent au mieux, je crains que la plupart des fondateurs de startups se préoccupent principalement du produit final et soient aveuglés par ce qui se passe dans les coulisses. Pour la majorité des fondateurs, tant que lorsque vous cliquez sur ce bouton, une boîte modale apparaît et qu'un événement est déclenché dans les coulisses, tout va bien. Cela ne devrait pas être le cas.

Ce poste n'est pas ma façon de soutenir l'externalisation ou non, comme je l'ai mentionné plus tôt, l'argent est à vous, allez là où vous obtenez le plus de valeur. Je vais essayer de mettre en évidence un élément majeur que les fondateurs devraient prendre en compte avant d'externaliser ; le rôle et la nécessité d'un responsable technique.

Obtenir un chef d'équipe technique

bureau de développeur cashenvoy

Si ces événements "attendus" - envoyer un e-mail après l'enregistrement d'un nouvel utilisateur - se produisent lorsqu'un utilisateur interagit avec votre produit n'est pas assez bon, le plan à long terme du code qui alimente ce produit devrait vous préoccuper. Comment résolvez-vous cela? Obtenez un chef d'équipe technique pour votre projet externalisé.

D'un très haut niveau, il semble contre-intuitif d'obtenir une avance technique lorsque vous externalisez, compte tenu du fait que ces développeurs et magasins de code doivent savoir ce qu'ils font. Malheureusement, l'inverse est toujours le cas.

La plupart des pigistes et des magasins de code ne sont là que pour le faire à tout prix. Ils sacrifient les meilleures pratiques, accordent peu d'attention au processus de développement et l'empathie des utilisateurs n'est pas quelque chose dont ils pourraient se soucier. Ils poussent les fonctionnalités et passent simplement au projet suivant. La qualité, en particulier la qualité du code, n'est pas quelque chose dont ils s'inquiètent, ce n'est en partie pas leur faute. Comment expliquer à un client que vous avez passé la moitié de votre journée à mettre en place un environnement d'intégration continue et que vous passerez autant de temps à écrire des tests unitaires sur les fonctionnalités du produit. Pour la plupart des fondateurs, cela n'a pas de sens. Mais ces choses sont super critiques, surtout quand on pense à ces produits dans une perspective à long terme.

Soyez le plus intelligent de la pièce

Rejoignez les 30,000 5 abonnés qui reçoivent Techpoint Digest, un tour d'horizon hebdomadaire et quotidien amusant de XNUMX minutes des événements technologiques africains et mondiaux, directement dans votre boîte de réception, des heures avant tout le monde.
Abonnement au résumé

Essayez-le, vous pouvez vous désinscrire à tout moment. Politique de confidentialité.

Obtenir un chef d'équipe technique n'est pas un gaspillage de ressources et c'est un investissement vraiment précieux. Cette personne, si elle connaît ses oignons, travaillera pour vous épargner des chagrins indicibles pendant plusieurs mois. Ils seront très probablement responsables de la décision technique qui se produit dans la vie du projet.

C'est l'endroit où les responsables techniques conseillent le fondateur de la startup sur les meilleures pratiques. Il ou elle pilote l'ingénierie produit.

Pourquoi est-ce important ?

Une fois, j'aidais un ami à évaluer le code de son produit. L'entreprise à laquelle il avait sous-traité affirmait avoir quatre ingénieurs sur ce projet alors qu'en réalité, une seule personne travaillait sur l'API du produit et le composant UI/UX. C'était facile à dire, tout ce que j'avais à faire était de regarder l'historique/les journaux de git, il s'avère qu'une seule personne faisait git commet.

Et pour rendre les choses intéressantes, tous ces commits se sont produits sur la branche principale - pas de branche de fonctionnalité - ce qui explique également pourquoi il n'y a pas eu de pull request. Je veux dire, comment faites-vous même les relations publiques (demande d'extraction) et la révision du code vous-même ? Cela n'a aucun sens. Vous ne fixez pas vos propres examens et ne vous notez pas par la suite. Le plus triste dans tout cela, c'est qu'il a payé quatre ingénieurs à 2,500 XNUMX $ par habitant. Pas cher.

ordinateur

L'entreprise à laquelle il avait sous-traité n'a pas seulement pris de terribles décisions techniques, elle s'en fichait. En parcourant le code source, j'ai découvert qu'ils enregistraient les mots de passe en PLAIN TEXT. Oui, des mots de passe en texte brut en 2016. J'ai failli faire une crise cardiaque quand j'ai vu ça. Je l'ai rapidement signalé et ils ont trouvé une belle excuse pour appuyer leur décision.

Ils utilisaient des versions très anciennes et obsolètes de frameworks, des frameworks qui n'avaient pas de LTS (support à long terme). Celui-ci a eu des conséquences en cascade, ils manqueront essentiellement des bogues et des correctifs de sécurité, sans même mentionner l'optimisation.

Cette même société n'avait aucun concept de serveur intermédiaire. Tout est allé directement à la production. Pas de filtre. Je suppose qu'ils voulaient juste montrer des progrès et ne se souciaient que de cela. Ils ont également déployé une application NodeJS sans gestionnaire de processus ni proxy inverse.

Le concept d'utilisation de la gestion de la configuration et des pipelines de déploiement leur semblait étranger. Essentiellement, lorsqu'ils étaient prêts à être déployés, quelqu'un utilisait manuellement SSH (shell sécurisé) sur le serveur et exécutait un git pull et une nouvelle version était sortie dans la nature. Le problème avec cette méthode est multiple :

  • les retours en arrière étaient difficiles, voire presque impossibles.
  • un serveur tombe en panne à tout moment, quelqu'un devait créer manuellement une nouvelle machine virtuelle (machine virtuelle) et installer manuellement tous les packages nécessaires pour exécuter le service.
  • s'il y avait un pic de trafic soudain, le système s'effondrerait.

Ils avaient tout dans une seule machine; la base de données, l'API et l'interface utilisateur, la haute disponibilité n'a jamais été prévue. Et oui, votre supposition est aussi bonne que la mienne, personne ne reproduisait la base de données. Si ce nœud est tombé en panne ou si des données ont été perdues, il n'y a presque aucun moyen de récupérer et cela pourrait bien être la fin du démarrage de mon ami. Je peux continuer encore et encore sur des choses qui ne se sont pas bien passées.

Toutes ces découvertes ont été faites après une conférence téléphonique d'environ 30 minutes et une heure supplémentaire passée sur le référentiel du projet. Comme vous pouvez l'imaginer, la boutique de codes ne m'aimait pas. Je suis instantanément devenu déchiré sur leur chair. Ce nigérian gênant.

Après ces découvertes, j'ai informé mon ami et le magasin de code des changements qu'ils devaient apporter, le magasin de code a immédiatement répondu que ces changements n'affecteront pas seulement le calendrier du projet, mais qu'ils coûteront également des frais supplémentaires. Finalement, la relation entre mon ami et le magasin de code a dégénéré et il essaie de reconstruire son projet ; perte de temps et de ressources.

Je ne saurais trop insister sur la nécessité d'un chef d'équipe technique, cette personne vous facilitera grandement la vie et vous passerez une nuit paisible. Dans le cas de mon ami, s'il avait embauché un responsable technique dès le début du projet, je suis certain que les choses auraient pris une autre tournure.

Cher fondateur de startup, ne vous souciez pas seulement de ces fonctionnalités intéressantes, pensez également à ce qui se passe dans les coulisses. Une maison avec un beau travail de peinture et des pratiques de construction commencera à montrer ses défauts avec le temps, surtout lorsqu'elle est soumise à des contraintes.

Enfin, obtenez un chef d'équipe technique. Vous serez heureux de l'avoir fait.

J'aimerai avoir de vos nouvelles.


Cet article a été publié initialement le Le blog de Célestine.

Je me harcèle parce que je me fais faire ce à quoi je pense. Retrouvez-moi sur Twitter @MuyoSan.
Je me harcèle parce que je me fais faire ce à quoi je pense. Retrouvez-moi sur Twitter @MuyoSan.
Abonnez-vous à Techpoint Digest
Rejoignez des milliers d'abonnés pour recevoir notre tour d'horizon hebdomadaire et quotidien de 5 minutes des événements technologiques africains et mondiaux, directement dans votre boîte de réception, des heures avant tout le monde.
Il s'agit d'un tour d'horizon quotidien de 5 minutes des événements technologiques africains et mondiaux, envoyé directement dans votre boîte de réception, entre 5 h et 7 h (WAT) tous les jours de la semaine ! 
Abonnement au résumé

Essayez-le, vous pouvez vous désinscrire à tout moment. Politique de confidentialité.

Je me harcèle parce que je me fais faire ce à quoi je pense. Retrouvez-moi sur Twitter @MuyoSan.

Autres histoires

43b, Emina Cres, Allen, Ikeja.

 Techpremier Media Limited. Tous les droits sont réservés
loupe