Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

As a software development contractor I\'ve worked on many projects with differin

ID: 639187 • Letter: A

Question

As a software development contractor I've worked on many projects with differing standards and conventions. Quite often these conventions go against the software best practices we know and 'love'.

The question is, when you're working on an established project with specific ways of doing things that you know aren't the best ways, do you break the conventions of the project because you know its a better way of doing something, or do you stick to convention meaning that your work will blend into the existing code base? After all, you need to keep in mind someone else is going to stumble across your work one day and if its not consistent with the rest of the project they will have to take the time to work out what you've done differently.

So, project convention consistency or best practices?

Explanation / Answer

I have a saying, and I don't know if anyone else has said it before me, but I like to think I invented it.

"Blindly following best practices is not a Best Practice."

Basically, it depends. If your client is not using Source Control, then yes, that's a big problem and IMO is a battle worth fighting especially since fixing the problem costs a client $0 (SVN). If someone's not using your naming convention, then I tend to suck it up and go with the client. There was this time though, when a client prefixed every column name in a table with the tablename. Columns literally looked like: Person_PersonID. Again, that, IMO, is a battle worth fighting.

OK, actually, it was worse than that. Instead of calling their budget line item table "LineItems", they actually called it "BudgetDepartmentProduct". Which of course, made the table's PK "BudgetDepartmentProduct_BudgetDepartmentProductID". You have to love that. Of course, nowadays with stuff like Linq to SQL, it's fairly easy to put some sugar coating over that pile of poo and not interact with those names as a programmer. But this project was instead hundreds of cut and pasted stored procedures. I fought against this and lost. This is why I bill by the hour.

So your answer ends up being "it depends". A really good consultant learns by experience what battles to fight, and in my experience, most clients appreciate the honesty if the argument is made in a way that doesn't damage team ego or morale. That requires judgement and building up trust a lot of times first.

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote