La question est la suivante et le détail suit: y a-t-il quelque chose que je puisse dire / évoquer, en tant que programmeur, pour l'amener à mes côtés?
J'adorerais entendre des arguments valables pour les deux parties sur celui-ci, mais surtout des suggestions sur la façon de lui parler.
Ma situation est la suivante: je travaille sur un projet d'équipe sur mon cursus, en construisant un site Web de taille moyenne comme prototype pour l'université. Tous sont considérés comme égaux dans le groupe et il n'y a pas de chef désigné, donc la réponse à ce problème ne peut pas être "tirer le rang".
Tous sont égaux, mais il existe un énorme fossé de connaissances entre les membres. Le membre de l'équipe en question et moi sommes tous deux des développeurs compétents, bien qu'il ne possède aucune expérience de l'industrie. Les trois autres membres sont moins capables et deux ont complètement abandonné le développement. Tous les trois ont refusé de commenter la situation en raison du manque de connaissances.
En tant que groupe, nous venons de décider quelles technologies utiliser dans la mise en œuvre du site Web; en particulier, s'il faut utiliser un framework PHP (Code Igniter) ou non.
Je plaide en faveur, citant:
- Ne pas réinventer la roue
- Base de code bien écrite et testée pour travailler à partir de
- Pour commencer (le délai est plus proche que nous le souhaiterions)
- Vitesse de développement
- Modèles de conception et bonnes pratiques solides et maintenables
Il plaide en faveur de travailler comme il le faisait auparavant:
- Ecrire des fonctions ponctuelles sur mesure dans un fichier "bibliothèque" quand il en a besoin
- Fonctions pour l'accès aux données et le rendu de ces données sur la page, obtenir / paramétrer vers et depuis la session et obtenir / publier des données, etc.
- Avoir 1 fichier par page (n'entraînant aucune séparation des préoccupations entre le contrôle, la présentation et les données)
Ses raisons contre l'utilisation de framework sont principalement basées sur le fait qu'il ne peut pas voir le point: il peut déjà faire toutes ces choses. Le cadre ne change pas cela, cela le rend juste plus difficile parce qu'il doit apprendre le cadre; il ne veut pas utiliser de code qu'il n'a pas écrit personnellement.
Il a également déclaré que "peu importe la qualité de la base de code, car le projet n'est qu'un prototype et ne sera jamais maintenu". Pour moi, ce n'est pas une excuse pour écrire du code impossible à maintenir.
Je peux voir pourquoi il fait ces arguments, mais je conteste son "manque de préoccupation concernant la maintenabilité" et son "mépris pour une bonne conception", ou même la séparation des préoccupations. Cependant, je soupçonne qu'il n'a jamais étudié les modèles de conception, donc je ne sais pas à quel point il serait efficace de démontrer pourquoi sa méthode pourrait être impossible à maintenir.
Je veux me lancer dans ce projet, mais je ne veux pas le faire sans tenir compte de tout ce que j'ai appris au fil des ans. Comme je l'ai déjà dit, il n'y a aucune possibilité de se classer ici, et les autres membres de l'équipe ne sont pas prêts à intervenir. Dois-je simplement reculer et faire les choses à sa manière? Est-il trop têtu et inexpérimenté pour mieux savoir? Ou suis-je le têtu ici?
TL; DR Un membre inexpérimenté de l'équipe est têtu, comment puis-je le gagner?
la source
he doesn't want to use code he hasn't personally written.
IlI want to know exactly how everything works
est un argument valable lors de l'apprentissage, ré-inventer la roue est en fait acceptable. Peut-être, juste peut-être, vous pourriez lire cela comme un appel à l'aide et non comme un entêtement.since the project is only a prototype and will never be maintained
Derniers mots :) Je souhaite avoir un dollar à chaque fois que j'ai fait cette supposition et découvert que l'impatience et la cupidité à court terme des hauts responsables ont décidé que le prototype EST le produit maintenant.Réponses:
Tu ne vas pas pouvoir le convaincre. Cela s'appelle l'effet Dunning-Kruger . Il est trop ignorant pour savoir ce qu'il ne sait pas et trop peur de perdre ce qu'il qualifie d'avantage.
Lorsque vous ne parvenez pas à parvenir à un consensus, vous devez plutôt parvenir à un compromis. Peut-être que vous pouvez diviser le travail afin que son besoin d'apprendre le cadre soit minime. Peut-être que vous avez une sorte de "conception" où vous le faites chacun pendant quelques semaines, puis l'équipe vote sur laquelle est la meilleure. Peut-être pouvez-vous impliquer votre professeur parrain ou qui que ce soit pour résoudre le lien.
la source
Un argument en votre faveur est la réutilisabilité des connaissances. Tous les membres de l'équipe qui apprennent un cadre bien connu et largement utilisé (comme CodeIgniter) pourront réutiliser leurs connaissances sur le prochain projet. Alors que la connaissance d'un hasard, la "bibliothèque" propriétaire n'est pas réutilisable. Cela peut bien résonner avec les autres membres de l'équipe, car ils préfèrent probablement acquérir des connaissances utiles et réutilisables sur ce projet.
Un autre argument pourrait être une mesure concrète des coûts de développement / maintenance. J'imagine qu'un développeur connaissant bien CodeIgniter peut se développer plus rapidement que votre collègue écrivant lui-même toutes ces fonctions propriétaires. Cela pourrait être démontré en vous faisant construire, vous et lui, une page Web identique - vous avec CodeIgniter, lui à sa manière - et en mesurant les délais d'exécution. Ensuite, effectuez un ensemble de modifications / extensions sur les pages, mesurant à nouveau le temps de réalisation. Bien sûr, le cahier des charges doit être préparé par une personne indépendante de vous deux, pour combattre en terrain neutre.
Un autre - comme vous l'avez mentionné - est la qualité du code. Une fois que les pages Web sont prêtes, exécutez le même ensemble de tests d'acceptation sur chacune et comparez la densité des bogues.
Bien sûr, lorsque vous êtes sous la pression du temps, il peut ne pas être possible de s'arrêter et de faire de telles mesures. Vous souhaitez donc probablement une résolution rapide de ce dilemme. Essayez de convaincre les autres membres de l'équipe (par exemple, en leur faisant lire les réponses à venir à votre message ici :-), pour augmenter la pression du groupe sur lui. Au final, s'il ne peut vraiment pas être convaincu, vous voudrez peut-être couper le projet en deux parties, une pour lui et - idéalement - une pour le reste de l'équipe, en utilisant CodeIgniter. Concentrez-vous sur votre propre rôle au mieux de vos capacités et laissez-le faire ce qu'il veut. Les résultats parleront probablement d'eux-mêmes.
la source
Je pense que vous devez engager les 3 autres coéquipiers. Vous devez tous les deux leur présenter vos arguments et leur expliquer les choses pour qu'ils comprennent. À la fin de la journée, ils devront également travailler avec cette base de code. Et si tous sont égaux, ils devraient avoir leur mot à dire sur ce avec quoi ils souhaitent travailler.
Je pense qu'une bonne approche serait que chacun de vous présente les avantages de vos solutions respectives et montre aux autres membres de l'équipe pourquoi vous pensez que c'est la meilleure façon de procéder. Laissez-les ensuite décider. Il y en a 3 donc ce sera le bris d'égalité.
Une chose que vous voudrez souligner est que si c'est votre projet principal et que les autres membres de l'équipe n'ont aucune autre expérience, ce projet doit refléter le travail qu'ils peuvent faire pour des employeurs potentiels. Si vous le faites correctement, cela peut être un bon sujet de discussion dans une interview. Je sais que je demande aux nouveaux diplômés de décrire leur projet senior et comment il a été conçu et développé.
S'ils vont avec l'approche de l'autre gars, vous devrez le sucer. Mais ne perdez pas espoir. Trouvez un bon design pour que le chaos qu'il écrit n'affecte pas tout. Si vous avez le temps, nettoyez le code et refactorisez certaines de ses affaires et montrez-lui qu'il n'a pas à réinventer la roue à chaque fois.
la source
Je pense que l'université est comme un bac à sable. La plupart des choses que vous faites là-bas ne sont pas utilisées dans le déploiement. Cela vous donne donc beaucoup plus de liberté pour expérimenter et sortir de votre zone de confort. Explorez de nouvelles choses car l'échec n'aura pas trop d'impact. Dans votre situation également, les membres de votre équipe ont l'avantage supplémentaire d'avoir quelqu'un avec des connaissances préalables pour les aider.
Quant à l'autre membre expérimenté de l'équipe, il n'avait pas besoin de venir à l'université s'il ne voulait rien apprendre de nouveau. C'est une bonne occasion d'apprendre quelque chose de nouveau et de l'ajouter à sa boîte à outils.
Et pour les membres de l'équipe inexpérimentés, leurs chances d'être employés / mieux employés augmenteront avec un cadre comme CodeIgniter sur leur CV (en fait, les connaissances pour le justifier sur leur CV).
la source