Je travaille dans une petite équipe, dans une entreprise de taille moyenne, dont la plupart n'est pas impliquée dans le développement de logiciels. Je suis le développeur le plus récent et le moins expérimenté et je n'avais aucune formation professionnelle ou académique dans le domaine des logiciels avant de commencer, mais je suis assez satisfait du respect de mes contributions et je suis reconnaissant d'avoir été pris au sérieux à un stade aussi précoce de ma carrière.
Pourtant, je pense que je devrais faire plus avec cette généreuse quantité de temps d'antenne. En équipe, nous semblons avoir du mal à faire avancer les choses. J'aimerais pouvoir suggérer quelque chose pour améliorer la situation, et je pense que je serais écouté si c'était une bonne idée, mais je ne sais pas trop quoi suggérer.
Les choses que je peux identifier comme étant des problèmes comprennent:
- La spécification des tâches à accomplir est rare. C'est en partie parce que la gestion est un goulot d'étranglement et que nous n'avons ni l'argent ni les gens pour nous engager à élaborer des exigences détaillées autant que nous le souhaiterions. C'est aussi en partie parce que le logiciel que nous développons est d'investigation et que la méthode précise n'est pas claire tant qu'elle n'est pas démontrée et utilisée pour déterminer son efficacité.
- Le développeur principal aime beaucoup ce qu'il appelle le `` prototypage '' au point qu'il a récemment commencé à insister pour que tout soit `` prototypé '', ce qui, pour nous, ressemble à de l'écriture de mauvais code et à le donner aux modélistes pour jouer avec. On ne sait pas exactement ce qu'il attend de cet exercice dans de nombreux cas. L'implémentation «réelle» souffre alors du fait qu'il insiste sur le fait que les bonnes pratiques prennent trop de temps à partir du prototypage. Je n'ai même pas commencé à pouvoir démêler cette logique tordue et je ne suis pas sûr de vouloir essayer.
- Les modélisateurs sont censés nous dire tout sur la méthodologie souhaitée avec des détails précis, et il est acquis une confiance absolue que ce qu'ils sortent est théoriquement impeccable. Ce n'est presque jamais vrai, mais aucune mesure n'est prise pour rectifier cette situation. Personne du côté de la modélisation ne soulève de préoccupations structurées susceptibles d’être suivies d’effet, ni ne cherche à obtenir des conseils sur l’application des meilleures pratiques. Rien n'est fait non plus de leur passivité.
- J'ai déjà essayé de pousser TDD dans l'équipe, mais j'ai trouvé cela difficile car c'est nouveau pour moi et même si ceux qui surveillent mon travail étaient prêts à le tolérer, aucun autre enthousiasme n'a été manifesté par quelqu'un d'autre. Je ne peux pas justifier le temps que je passe à me vautrer et à ne pas finir les fonctionnalités, donc l'idée a - pour le moment - été abandonnée. Je crains que cela ne soit pas repris, car personne n'aime qu'on lui dise comment faire son travail.
- Nous avons maintenant un serveur d'intégration continue, mais il n'est principalement utilisé que pour exécuter des tests de régression sur plusieurs heures. On a laissé entendre qu'il devrait également exécuter des tests unitaires et d'intégration complets, mais pour le moment personne ne les écrit.
- Chaque fois que je soulève le problème de la qualité avec le développeur principal, j'obtiens une réponse à l'effet de `` La fonctionnalité de test A est simple, la fonctionnalité B est beaucoup plus importante pour l'utilisateur mais trop difficile à tester, donc nous ne devrions pas tester la fonctionnalité UNE'. Encore une fois, je n'ai fait aucun progrès pour essayer de démêler cette logique.
....phew. Quand je le formule comme ça, ça a l'air bien pire que je ne le pensais. Je suppose que, en fin de compte, c'est un appel à l'aide.