I am a software developer in a small company (a few dozen employees). We have a summer internship going on. The interns are college students with no professional experience and with rather basic knowledge of the programming language. (I was not involved in the choice of interns). Some of the interns will be hired in the company in the future based on their performance.
The interns are developing a simple application (not for the company, not a production code) just to get some basic principles and get to know each other before they move on to more complex stuff.
I am helping them in the development on a day-to-day basis (quick meetings to resolve issues they cannot resolve on their own) and doing code review. One of the main issues they have is they don't follow naming conventions and create poor and short names for methods (like convert
). Of course, I explained to them that proper naming is very important, that they should not be afraid to use longer, descriptive method names (like convertGallonsToMilliliters
).
Unfortunately, a few of them (and I know who, because they are using version control) apparently decided to have some fun (or mock me) and started creating silly method names like convertToMillilitersBecauseIAmUsingSuchCleanCode
- not a single occurrence, but a few.
How should I react to this? I know it's not production code, but I spend a fair amount of time reviewing and I'm doing my best - to help the interns learn and to have them pick up best practices when it comes to clean code.
Should I react by
- laughing it off ("Yeah, it's funny but please remove it")
- just asking politely to remove it
- telling that I don't like when someone wastes my time and they should take the code review more seriously
I know it's probably not such a big deal but it's my first time helping the interns and I'd like to know how to handle such situation properly. Still, their performance during the internship will affect their chances of being hired and situations like this can play a role later. Or I should tell them something along these lines to make them more motivated to actually learn something?
EDIT: Thank you for your great answers. I discussed the issue with my manager and talked to the interns. I wrote the method name on the whiteboard and asked if they think it's a good name. I also discussed with them briefly the purpose of code reviews again. I told them that in real projects we have external companies doing code review audits - this kind of joke could really get them in trouble later on. So it's actually better for them to learn this lesson during the internship.
After we talked, they admitted that they shouldn't commit such code. They also told me that they are thankful for the time I spend on reviewing their code and for my help. But the best part is that their work quality has really improved since then. Actually, the guy who commited the joke has started delivering the best code in the group - I see him (and other interns, too) taking my notes from code review much more seriously now.
convert
methods floating around in your code (and yes, you never have... when you start, but soon you will have), it will become difficult to see immediately, which one this is. By naming it clearly or using other ways to make that clear, you can reduce reading complexity. Of course, something likeGallons.of( x ).convertTo( Unit.Milliliters)
is also a possibility. Only if you are 110% sure that this will be to only conversion ever done in your code... But even then, just if the context around it makes it clear, what this conversion is about.