Cette semaine au travail, je me suis encore énervé . Après avoir suivi la méthodologie de développement ad hoc standard, agile, TDD, de propriété partagée, de ne jamais rien planifier au-delà de quelques histoires d’utilisateurs sur un morceau de carte, reprochant verbalement les techniques d’une intégration tierce ad nauseam sans jamais rien faire de réel. En réfléchissant ou en faisant preuve de diligence et en reliant architecturalement tout le code de production au premier test qui nous vient à la tête ces derniers mois, nous arrivons à la fin d'un cycle de publication et voici que la principale fonctionnalité visible de l'extérieur que nous avons développée est trop lente pour utilisation, buggy, devenant labyrinthique complexe et complètement inflexible.
Au cours de ce processus, des "pics" ont été réalisés, mais jamais documentés et aucune conception architecturale n'a été produite (il n'y avait pas de système de fichiers, alors quoi, si vous ne savez pas ce que vous développez, comment pouvez-vous planifier ou effectuer des recherches ?) - le projet a été transmis d’une paire à l’autre, chacun ne s’étant concentré que sur une seule histoire d’utilisateur à la fois et le résultat était inévitable.
Pour résoudre ce problème, je suis passé inaperçu, je suis allé à la cascade (redoutée), j'ai planifié, codé et, fondamentalement, je n'ai pas échangé la paire et j'ai essayé autant que possible de travailler seul, en mettant l'accent sur une architecture et des spécifications solides plutôt que sur des tests unitaires. viendra plus tard une fois que tout est bloqué. Le code est maintenant bien meilleur et est en réalité totalement utilisable, flexible et rapide. Certaines personnes semblent avoir vraiment regretté que je fasse cela et aient fait de leur mieux pour saboter mes efforts (peut-être inconsciemment) parce que cela va à l'encontre du processus sacré de l'agilité.
Alors, comment, en tant que développeur, expliquez-vous à l'équipe qu'il n'est pas "agile" de planifier son travail et comment intégrez-vous la planification dans le processus agile? (Je ne parle pas de l'IPM; je parle de résoudre un problème et de dessiner une conception de bout en bout qui explique comment résoudre un problème avec suffisamment de détails pour que quiconque travaille sur le problème sache quoi architecture et modèles qu’ils devraient utiliser et où le nouveau code doit s’intégrer au code existant)