Chez ApeeScape, nous sommes toujours à la recherche des meilleurs pigistes. Mais qu'est-ce qui rend un pigiste vraiment génial? Luis Martinho , l'un de nos meilleurs développeurs, est aimé de ses clients - nous nous sommes donc entretenus avec lui pour parler de pigiste, de technologies comme indépendant Node.js et HTML5, et payer vos impôts.
«J'avais travaillé quelques emplois à plein temps: certains d'entre eux étaient relativement en entreprise, mais le plus récent était dans un environnement de démarrage, en particulier dans l'espace SaaS d'entreprise, créant des logiciels de gestion sexy dans le cloud. Nous avions une équipe très talentueuse et une vision très ambitieuse. Après quatre ans de croissance, nous avions un produit passionnant dans un espace passionnant, ce qui était génial, mais je n’étais pas très heureux. J'avais besoin d'un changement de style de vie. Quand nous avons commencé, je ne comprenais pas personnellement à quel point il était difficile de «démarrer». Ce ne sont pas seulement les heures, car vous travaillez de longues heures dans toutes sortes d'environnements et de projets; c’est le stress, la responsabilité et les douleurs associés à la création de quelque chose de nouveau. Ce ne sont pas toutes des fleurs et des arcs-en-ciel. En fin de compte, j'ai décidé que je n'étais pas co-fondateur de matériel (du moins pas à l'époque). Mais cette expérience m'a permis de mieux comprendre le type de pression que subissent les fondateurs de startups, et je sais que je suis devenu un meilleur développeur de logiciels indépendant grâce à cela.
Le freelance ressemblait de plus en plus à la vie que je souhaitais: c'était l'occasion de trouver des clients et des projets intéressants tout en étant récompensé pour un travail de qualité.
J'ai commencé à chercher des emplois réguliers: d'abord dans ma ville natale, puis dans le reste du pays, puis dans le reste de l'Europe. J'ai réussi à trouver des projets intéressants, des programmes de compensation intéressants et des endroits intéressants; mais je croyais que je pouvais tout avoir. J'ai donc commencé à me pencher sur la pige. Et au fur et à mesure que je cherchais, le freelance ressemblait de plus en plus à la vie que je souhaitais: c'était l'occasion de trouver des clients et des projets intéressants tout en étant récompensé pour un travail de qualité.
«À l'origine, j'imaginais qu'un énorme changement serait la stabilité du revenu que vous attendez d'un emploi à temps plein, où vous avez une certaine somme d'argent que vous recevez toujours à la fin du mois - et vous l'obtenez, quoi qu'il arrive. Je m'attendais à ce que ce soit une préoccupation majeure, car je savais qu'être pigiste signifiait que je n'aurais pas toujours de clients. Mais ce n’est pas vraiment ce qui s’est passé. Étonnamment, chez ApeeScape, j’ai réussi à toujours avoir un flux constant de clients sans avoir à les chercher. Donc, pour être honnête, le principal défi a vraiment été d'organiser mon emploi du temps. Je n’ai vraiment pas d’heures fixes pour travailler. Je crée mon propre emploi du temps et je dois donc être plus discipliné qu'avant. J'essaie de travailler à des heures plus ou moins normales: je me réveille le matin, je commence à travailler, je déjeune à l'heure où tout le monde déjeune, je travaille l'après-midi, puis je dîne. J'essaie de travailler selon un horaire normal, de ne pas tirer toute la nuit, de brûler l'huile de minuit tous les jours. Cette discipline était un gros défi au départ.
J’ai trouvé qu’il était avantageux d’être discipliné parce que je finis par être beaucoup plus productif si j’ai un ensemble de routines.
«Certainement, c'est un avantage. C’est cool dans le sens où si vous rencontrez des problèmes, si vous devez aider un membre de votre famille ou si vous avez cette excellente opportunité pour une sorte d’activité de loisir, vous pouvez y aller et profiter de cette opportunité. Mais d'un autre côté, j'ai trouvé qu'il était payant d'être discipliné parce que je finis par être beaucoup plus productif si j'ai un ensemble de routines, parce que ces routines me guident essentiellement: je peux aller droit au but et faire plus. pendant ce temps. C'est bien d'avoir cette liberté, mais je pense qu'elle doit être utilisée de manière responsable. »
«En tant que développeur de logiciels indépendant, c'est probablement un bon trait d'être un peu paresseux en ce qui concerne la recherche du moyen le plus simple et le moins cher de faire quelque chose; d'être extrêmement ennuyé en effectuant des travaux répétitifs, et donc d'améliorer continuellement votre chaîne d'outils. Par exemple, vous passez beaucoup de temps dans un terminal: vous devriez sérieusement envisager de créer des raccourcis, des alias, tout ce qui vous fait gagner du temps et vous fait gagner de la frappe. En fin de compte, la plupart des tâches que vous effectuez ne sont pas vraiment sorcières; ils ne font que passer par quelques boucles pour faire quelque chose. Si vous optimisez ces choses et éliminez le travail répétitif, vous disposez de plus de temps pour faire la science des fusées.
Si vous éliminez le travail répétitif, vous avez plus de temps disponible pour faire la science des fusées.
Vous devez également demander à quelqu'un d'autre de gérer la paie et la facturation horaires, d'obtenir de l'argent des clients et même d'attirer de nouveaux clients afin que vous puissiez vous concentrer sur un excellent travail. Et c’est absolument important. Lorsque vous êtes un développeur de logiciels indépendant , vous travaillez sur la livraison, mais aussi sur le marketing et les ventes. Et ce que vous voulez faire - et ce que vos clients veulent que vous fassiez - est de consacrer autant de temps à la livraison et aussi peu de temps au marketing, aux ventes et même aux finances. Vous devrez toujours passer du temps à rechercher de nouveaux clients de développement indépendants lorsque vous travaillez pour d'anciens clients, et ce n'est pas quelque chose que les anciens veulent - et ce n'est pas quelque chose que vous voulez. Vous voulez simplement vous concentrer sur la bonne exécution de votre travail. Donc, avoir quelqu'un d'autre s'occupe de la facturation et de la recherche de nouveaux clients est quelque chose dont vous devriez être très heureux, et vous avez beaucoup de chance si vous le trouvez.
N'oubliez pas non plus: payez vos impôts indépendants. »
Ils ont l'impression que vous êtes connecté à eux d'une manière qui ne vous permet pas simplement d'envoyer des heures facturables.
«Ce qui joue un grand rôle dans ma motivation, c'est la qualité des clients. Si possible, j'essaye d'être un peu pointilleux. Autrement dit, j'essaie d'accepter des concerts qui me motivent en termes de défi technologique impliqué, qu'il s'agisse de résoudre un problème difficile ou de travailler dans un espace intéressant. Et cela en découle en quelque sorte. Je travaille toujours avec un client qui pense que je travaille vers un objectif commun: j'essaie de voir la situation dans son ensemble et de me voir comme faisant partie de l'équipe. Vous ne faites jamais vraiment partie de l'équipe de développement de logiciels interne ou sur site de manière émotionnelle, surtout lorsque vous êtes hors du bureau, mais vous pouvez toujours vous sentir comme faisant partie de l'équipe en termes de projet global et de qualité de l'oeuvre. Et je pense que les gens de l'autre côté (le client et l'équipe cliente) le ressentent - ils ont le sentiment que vous êtes connecté à eux d'une manière que vous ne leur envoyez pas seulement des heures de développement facturables, vous vous inquiétez vraiment de savoir si ils réussiront ou si la qualité du travail est suffisante. »
'En général, je préfère les technologies plus récentes aux technologies plus anciennes, ainsi que les technologies émergentes - je ne dirais pas nécessairement émergentes car certaines de ces fonctionnalités sont actuelles, mais je préfère travailler avec quelqu'un qui crée des applications d'une seule page et utilise Backbone.js et Node.js avec Express ou un framework MVC que quelqu'un qui utiliserait le style Java Enterprise Edition.
Je suis indépendant, je préférerais de beaucoup avoir un client qui a une solution de communication asynchrone en place. Si vous faites du télétravail, il est beaucoup plus facile d’intégrer une équipe qui utilise quelque chose d’aussi simple qu’une liste de diffusion ou qui dispose de salles de chat dans Feu de camp ou utilise GitHub comme outil de collaboration (ce dernier fonctionne remarquablement bien). Dans l'ensemble, si le client ne capte pas les conversations de la fontaine à eau, vous risquez de perdre beaucoup d'informations et de bavardages qui peuvent avoir un impact sur votre travail. »
Il est plus difficile de se souvenir du type qui n’est jamais dans le bâtiment.
«Vous devez trouver un moyen de compenser votre absence du bureau. La solution que j’ai trouvée est d’être proactif. Par exemple: analysez les journaux de validation. Lorsque vous faites du télétravail , vous devriez réserver du temps pour jeter un coup d'œil et avoir une idée de ce sur quoi d'autres personnes travaillent. Si vous êtes au courant de ce qui se passe dans les standups quotidiens, notifié via une solution de gestion de projet, il est recommandé d'essayer de trouver des indices sur ce sur quoi l'équipe travaille. Ensuite, vous êtes plus facilement intégré. C’est évidemment un effort supplémentaire de votre part. Vous pourrez peut-être vous en sortir s’ils ont un très bon processus de communication en place, mais cela peut être une bonne astuce et cela peut éviter certains problèmes. Il est plus difficile de se souvenir du développeur indépendant qui n’est jamais dans le bâtiment. »
«Vous devez être quelqu'un qui peut maintenir un équilibre fluide entre votre vie personnelle et votre travail. En tant que pigiste, il est important d’être réactif. Mais être réactif finit par avoir un lourd tribut sur votre vie personnelle. Vous n’avez pas besoin de vérifier vos e-mails tout le temps. Vous pouvez simplement être averti, filtrer si cela est important ou non, puis vous pouvez simplement reprendre du temps avec votre famille ou autre. Vous devez être un bon sélecteur de contexte. Le changement de contexte est généralement coûteux , mais vous devez le rendre bon marché et rapide, afin que vous puissiez avoir un niveau de service très élevé en étant très réactif aux urgences mais, en même temps, en profitant de la compagnie de vos amis et de votre famille.
Vous devez être un bon sélecteur de contexte. Le changement de contexte est généralement coûteux, mais vous devez le rendre bon marché et rapide.
Pour le dispositif de développement indépendant habituel, vous devez savoir gérer vos finances de manière prudente. Cela ne s’est pas vraiment produit avec ApeeScape, étonnamment, mais il est généralement très facile de passer d’une fête à la famine en ce qui concerne la rémunération des développeurs de logiciels ou de sites Web, même à l’heure. Un mois, vous gagnez une tonne d’argent et du coup vous n’avez plus de clients et vous n’avez plus de travail. Il faut donc être discipliné: il faut avoir une idée du salaire moyen, et il faut dépenser ce montant; tout l'excédent doit être une sorte de coussin pour vous aider à surmonter les incertitudes liées à ce genre de travail. Ce n’est vraiment pas le cas pour ApeeScape car le flux de clients a été très régulier, mais c’est toujours une bonne pratique. »
«J'essaierais d'être discipliné en adoptant une approche descendante. Cela signifie avoir une idée de la structure globale de la base de code. Cela semble assez évident, mais à mesure que vous essayez de comprendre le code, vous serez conduit à ce sur quoi vous travaillez à ce moment précis et à la tâche spécifique que vous avez à accomplir. Cela détournera votre attention de l'approche descendante et vous mettra en bas en essayant de monter, en assemblant les pièces à partir des parties spécifiques du code que vous regardez. Ce serait peut-être mieux à court terme pour vous de corriger ce bogue spécifique ou d'ajouter cette fonctionnalité spécifique, mais à moyen terme, vous souhaiterez que vous restiez avec l'approche descendante. Ensuite, vous aurez une bien meilleure vue du système et de l'interaction des éléments. '
'Nan. Je vais être très honnête: je pense que vous pouvez gagner beaucoup de la spécialisation, comme si vous êtes ridiculement bon avec un ensemble ridiculement petit de technologies; mais c’est juste un choix personnel. Je suis curieux, donc je travaille avec beaucoup de technologies différentes. Et c’est pourquoi je finis par faire du travail indépendant à la fois front-end et back-end.
Les technologies vont changer - ce qui est chaud aujourd'hui sera probablement ennuyeux demain ou du moins dans 6 à 12 mois.
Cela dit, je pense qu'il est essentiel pour un développeur, tout au long de sa vie professionnelle, d'essayer d'apprendre autant de technologies et de paradigmes que possible. Les technologies vont changer - ce qui est chaud aujourd'hui sera probablement ennuyeux demain ou au moins dans 6 à 12 mois - et l’une des compétences clés d’un développeur de logiciels indépendant est d’acquérir rapidement une nouvelle technologie ou un nouveau projet. Pour cela, cela aide vraiment si vous avez une approche systématique pour apprendre de nouvelles choses et que vous la pratiquez en apprenant au moins une nouvelle langue, un nouveau cadre ou un nouveau paradigme chaque année. »
«Oh oh, nous allons entrer dans une guerre religieuse ici. Je dirais que Node est assez différent des deux autres. Lorsque vous êtes exposé pour la première fois à Exemples de Node.js , vous pourriez avoir du mal à entrer dans le paradigme événementiel. C’est quelque chose qui n’est peut-être pas 100% naturel pour quelqu'un qui travaille constamment sur Rails. D'un autre côté, si vous travaillez avec JavaScript, vous développez probablement pour le navigateur et vous êtes donc déjà familiarisé avec le paradigme événementiel. Personnellement, dans mon expérience indépendante avec Node, j'ai utilisé un framework MVC, donc je n'ai pas développé de technologie de base pour Node; Je viens d'être un utilisateur standard d'un framework propriétaire spécifique au client (comparable à Express). »
'Du haut de ma tête, WebStorm de JetBrains. C'est un IDE JavaScript qui vaut vraiment la peine d'être recherché. Le nouveau studio Android publié sur Google I / O est alimenté par le logiciel JetBrains, et non par Eclipse ou autre. J'aime Eclipse, mais je m'amuse vraiment avec WebStorm. J'apprends encore beaucoup de raccourcis - et c'est une pratique qu'un bon développeur de logiciel indépendant devrait également avoir: en savoir plus sur ses outils. J'en apprends encore plus sur mon IDE. WebStorm a beaucoup de raccourcis intelligents, une bonne mise en page standard, et il a également quelques bons Propriétés ZenCoding qui vous permettent d'écrire du HTML aussi rapidement que jamais. Dans l’ensemble, c’est un bon outil. »
Peu importe à quel point vous êtes bon, il y aura toujours du temps d'installation, et cela peut être coûteux pour le client.
«J’essaie généralement d’obtenir mon premier contact avec des langues en dehors du travail du client, pas à l’heure du client. Peu importe à quel point vous êtes bon, il y aura toujours du temps de configuration, et cela peut être coûteux pour le client. Cela étant dit, si le client me disait: «Ok, nous sommes à l’aise même si vous n’en savez rien», je verrais cela comme une excellente occasion d’apprendre quelque chose de nouveau. D'un autre côté, si le client avait un emploi du temps exigeant, je lui conseillerais d'embaucher quelqu'un d'autre ou d'utiliser une langue avec laquelle j'étais à l'aise pour que je sache que je pourrais être productif dès le départ.
«Un projet HTML5 indépendant me vient à l'esprit. Creuser dans le API HTML5 Canvas pour faire des fonctionnalités avancées d'éditeur graphique, comme faire la sélection au lasso et la sélection de forme libre, où vous recadrez une partie de l'image mais laissez de côté le reste, des calculs avec des ensembles de pixels, des choses comme ça. C'était un peu comme MS Paint utilisant HTML5 Canvas et implémentant des choses comme un pinceau: vous penseriez qu'un pinceau serait quelque chose de simple - c'est si vous dessinez simplement une ligne, mais dans ce cas, vous voulez imiter un coup de pinceau, donc J'ai dû utiliser une formule mathématique pour simuler la façon dont un pinceau entrerait en contact avec la toile et laisserait un flou avec l'encre. '
'Ce que j'ai entendu parler Météore est intéressant en ce qui concerne la façon dont ils offrent un cadre complet pour le développement d'une application d'une seule page. Il gère le back-end ainsi que le front-end. Je n’ai pas travaillé avec, mais je suis curieux et impatient de l’essayer. »