The question is this and the detail follows: is there anything I can say/bring up, as a programmer, to bring him to my side?
I'd love to hear valid arguments for both sides on this one, but mostly suggestions for how to talk him around.
My situation is this: I'm working on a team project on my degree course, building a mid-sized website as a prototype for the university. All are considered equals in the group and there is no one appointed leader so the answer to this problem can't be "pull rank".
All are equals, however there is a huge gap in knowledge between members. The team member in question and I are both capable developers, though he holds no industry experience. The other three members are less capable, and two have opted out of development entirely. All three have declined to comment on the situation due to lack of knowledge.
As as a group, we are coming to decide on what technologies to use in the implementation of the website; specifically, whether to use a PHP framework (Code Igniter) or not.
I am arguing in favour, citing:
- Not reinventing the wheel
- Well written and tested code base to work from
- Getting going (the deadline is closer than we'd like)
- Speed of development
- Sound and maintainable design patterns and good practices
He is arguing in favour of working in the way he's used to:
- Writing bespoke, one-time functions in to a "library" file as when he needs them
- Functions for data access and rendering that data the page, getting/setting to and from session and get/post data etc
- Having 1 file per page (resulting in no separation of concerns amongst control, presentation and data)
His reasons against using are framework are mostly based on him not being able to see the point: he can do all those things already. The framework doesn't change that, it just makes it harder because he has to learn the framework; he doesn't want to use code he hasn't personally written.
He has also said that it "doesn't matter the quality of the code base, since the project is only a prototype and will never be maintained". For me, that is no excuse to write unmaintainable code.
I can see why he makes those arguments, but I hold issue with his "lack of concern over maintainability" and his "disregard for good design", or even separation of concerns. However, I suspect he has never studied design patterns, so I don't know how effective demonstrating why his method could prove unmaintainable would be.
I want to get going on this project, but I don't want to do it without regard for everything I've learnt over the years. As I said before, there is no possibility of pulling rank here, nor are other team members willing to pitch in. Should I just back down and do things his way? Is he too stubborn and inexperienced to know better? Or am I being the stubborn one here?
TL;DR Inexperienced team member is being stubborn, how can I win him over?
he doesn't want to use code he hasn't personally written.He had better throw away his operating system, IDE, phone, traffic lights etc. – StuperUser Jan 25 '12 at 14:13I want to know exactly how everything worksis a valid argument when learning, were re-inventing the wheel is actually acceptable. Maybe, just maybe, you could read that as a cry for help and not as stubbornness. – yannis Jan 25 '12 at 14:36since the project is only a prototype and will never be maintainedFinal last words :) I wish I had a dollar everytime I had made this assumption and found out that the impatience and short term greed of the higher ups decided that the prototype IS the product now. – maple_shaft Jan 25 '12 at 15:04