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?