Toutes les questions que les gens ont posées pour savoir si vous êtes vraiment lent ou non sont stupides. Devenir un programmeur plus rapide sans sacrifier la qualité est toujours un bon objectif, que vous soyez déjà lent ou rapide. Ceci est mon objectif numéro 1 en tant que programmeur et je ne le ferai jamais. J'essaie toujours d'aller plus vite sans sacrifier la qualité, j'en suis obsédé. Voici ce qui a fonctionné pour moi jusqu'à présent dans l'ordre de l'utilité, avec quelques idées expérimentales à la fin:
1) N'arrêtez jamais d'apprendre: apprenez tout ce que vous pouvez sur la programmation et l'utilisation des ordinateurs en général. Trouvez les domaines dans lesquels vous êtes faible et apprenez-les. Même si cela semble totalement indépendant de votre travail et de C #, je vous garantis que si vous le recherchez, vous trouverez souvent le moyen de l’appliquer à ce que vous faites. Apprendre, c’est aussi une question d’expérience. Ne vous contentez pas de lire des textes, essayez-les et développez vos compétences. Si vous utilisez Windows, essayez Unix ou inversement. Si vous préférez utiliser les outils de ligne de commande et les éditeurs de texte de IDE, ou inversement. Si vous entendez parler d'un outil ou d'une technologie dont vous n'avez pas entendu parler auparavant ou dont vous ne connaissez pas grand chose, ne cédez pas à la tentation de passer à autre chose. Cherchez-le! N'ayez pas peur de sortir des sentiers battus et d'apprendre de nouvelles technologies expérimentales qui, selon d'autres, ne sont pas pratiques.
2) Casser des projets: essayez de diviser vos projets en mini-projets. Essayez de faire une nouvelle version tous les jours ou une fois tous les deux jours au plus. Demandez-vous "Quelle est la quantité minimale de fonctionnalités que je peux libérer et publiez-vous quelque chose qui soit utile à l'utilisateur." C'est une compétence que vous apprendrez en le faisant. Vous devrez peut-être convaincre vos responsables de vous laisser faire, mais ils seront généralement satisfaits des résultats assez rapidement. En faisant cela, vous remarquerez que les éléments que vous pensiez essentiels à votre fonctionnalité sont en réalité des fonctionnalités supplémentaires pouvant être développées ultérieurement. Cela vous permet, à vous et à vos responsables, de hiérarchiser uniquement les fonctionnalités les plus importantes au lieu de toutes les fonctionnalités liées à celle sur laquelle vous travaillez. Cela vous permet de penser plus rapidement en gardant votre esprit clair et concentré. À votre tour, vous programmez légitimement plus rapidement. Vos gestionnaires, ou du moins vos gestionnaires, sont également susceptibles de percevoir que vous programmez maintenant encore plus vite que vous ne le êtes réellement, car vous diffusez davantage de communiqués. Un autre avantage énorme de cela est que vous serez beaucoup mieux en mesure d'estimer le temps que prendront les publications, et vos gestionnaires vous aimeront pour cela. Étant donné que vous effectuez déjà de nombreux tests automatisés, vous ne devriez pas rencontrer de problèmes pour effectuer des versions fréquentes et stables. Cependant, vous devrez peut-être renforcer votre système de construction automatisé. Je recommande fortement de lire le livre Continuous Delivery dans la série Martin Fowler. C'est une lecture difficile et extrêmement répétitive, mais toujours très utile. Les gestionnaires s sont également susceptibles de percevoir que vous programmez maintenant encore plus vite que vous ne l’êtes réellement parce que vous publiez plus de communiqués. Un autre avantage énorme de cela est que vous serez beaucoup mieux en mesure d'estimer le temps que prendront les publications, et vos gestionnaires vous aimeront pour cela. Étant donné que vous effectuez déjà de nombreux tests automatisés, vous ne devriez pas rencontrer de problèmes pour effectuer des versions fréquentes et stables. Cependant, vous devrez peut-être renforcer votre système de construction automatisé. Je recommande fortement de lire le livre Continuous Delivery dans la série Martin Fowler. C'est une lecture difficile et extrêmement répétitive, mais toujours très utile. Les gestionnaires s sont également susceptibles de percevoir que vous programmez maintenant encore plus vite que vous ne l’êtes réellement parce que vous publiez plus de communiqués. Un autre avantage énorme de cela est que vous serez beaucoup mieux en mesure d'estimer le temps que prendront les publications, et vos gestionnaires vous aimeront pour cela. Étant donné que vous effectuez déjà de nombreux tests automatisés, vous ne devriez pas rencontrer de problèmes pour effectuer des versions fréquentes et stables. Cependant, vous devrez peut-être renforcer votre système de construction automatisé. Je recommande fortement de lire le livre Continuous Delivery dans la série Martin Fowler. C'est une lecture difficile et extrêmement répétitive, mais toujours très utile. et vos gestionnaires vont vous aimer pour cela. Étant donné que vous effectuez déjà de nombreux tests automatisés, vous ne devriez pas rencontrer de problèmes pour effectuer des versions fréquentes et stables. Cependant, vous devrez peut-être renforcer votre système de construction automatisé. Je recommande fortement de lire le livre Continuous Delivery dans la série Martin Fowler. C'est une lecture difficile et extrêmement répétitive, mais toujours très utile. et vos gestionnaires vont vous aimer pour cela. Étant donné que vous effectuez déjà de nombreux tests automatisés, vous ne devriez pas rencontrer de problèmes pour effectuer des versions fréquentes et stables. Cependant, vous devrez peut-être renforcer votre système de construction automatisé. Je recommande fortement de lire le livre Continuous Delivery dans la série Martin Fowler. C'est une lecture difficile et extrêmement répétitive, mais toujours très utile.
3) Utilisez la technique pomodoro et adaptez / modifiez ce qui ne fonctionne pas pour vous. Si vous combinez cela avec le numéro 2 de cette liste, vous obtiendrez une énorme productivité.
4) Apprenez Vim. Même si vous finissez par utiliser ces commandes dans Visual Studio via ViEmu, ou à partir d’Eclipse via un plug-in, ou à partir d’Emacs, vous gagnerez en productivité. La meilleure façon d'apprendre Vim est de commencer à l'utiliser et de vous forcer à ne jamais (le désactiver / revenir à vos anciens outils) jusqu'à ce que vous l'ayez maîtrisé. C’est douloureux au début, mais vous ne voudrez jamais revenir en arrière, et même vous faire grincer des dents lorsque vous devez travailler sans lui. Certains diront que cela n'augmentera pas beaucoup votre vitesse. Mais plus vite, plus vite, en particulier lorsque la lecture et la modification de code constituent CE QUE NOUS FAISONS, et je me suis retrouvé à économiser beaucoup de temps avec cela à l'occasion.
5) Ce dernier n'est pas nécessairement recommandé car je ne suis pas sûr que ce soit une bonne idée, et cela pourrait en fait diminuer votre productivité, mais je le ferai quand même. Vous pouvez essayer de faire plus de tests d'acceptation et moins de tests unitaires, ou peut-être au moins de vous assurer de faire des tests d'acceptation. J'ai eu du succès avec SpecFlow, mais je soupçonne qu'il y a quelque chose de mieux. Même rédiger les spécifications peut être assez technique, vous pouvez donc demander à votre responsable / client d’écrire une première version brouillon que vous modifiez de manière significative, ou vous pouvez écrire le texte entier vous-même et simplement le lire et le confirmer. Cela vous aidera avec le numéro 2 de cette liste. De plus, les tests d'acceptation peuvent être plus pratiques et nécessitent moins de code que les tests unitaires. Cela ne veut pas dire qu'ils les remplacent, des outils différents pour des choses différentes.
6) Celui-ci est encore plus expérimental et controversé. Je ne l’ai pas fait moi-même, donc je ne peux pas le recommander avec précision. Apprendre et utiliser le système de méta-programmation de JetBrains. Utilisez-le pour créer des outils que votre responsable / client utilise pour créer lui-même le logiciel souhaité. Vous pourrez peut-être même arrêter de faire des tests d'unité et d'acceptation si vous pouvez utiliser ceci pour créer des outils que votre responsable / client utilise pour spécifier le comportement de manière très simple et non compliquée. L'idée n'est pas de se débarrasser du programmeur. Les programmeurs auraient toujours besoin d'ajouter de nouvelles fonctionnalités à ces outils utilisés par le client / responsable chaque fois qu'ils (les personnes, pas les outils) ne peuvent pas facilement créer certaines fonctionnalités souhaitées. Je pense que MPS ou d’autres outils similaires sont la voie de l’avenir.