Almost a year ago I switched to my current job. I have 2 prior years of programming experience but this is my first time working on an entirely new product. I am part of a small team of (5 or less) developers. I have 1 coworker programmer with whom I sit in the office. My coworker who is a Sr. Developer is also project lead, and is therefore responsible for the product specifications, schedule and the expected release date.
Whenever I request a code review, the Sr. Developer claims that it's pointless to do so, unless the regarding feature has been finished. The Sr. Developer is convinced that because of our tight schedule the code reviews would consume too much time, and are too much out of context, because the feature isn't finished yet.
However, I keep making (logic) mistakes of which I am not aware, until the code is reviewed. This is because I'm still unfamiliar with some of the concepts used. These concepts are not pointed out until the code review is done. This means I usually spend alot of time refactoring the code, sometimes tossing days of work.
I've requested to schedule a moment once a week for code review, in hopes of preventing tossing days of work. The Sr. Developer isn't in favor of that idea and claims that he wants me to function less dependently of their input.
Right now I'm looking for insights from Intermediate or Senior programmers, hence I've some questions below. Feel free to not answer the questions and give other input instead, all input is appreciated.
- Am I focusing too much on the standard coding conventions?
- Are code reviews on a frequent base required?
- (If applicable) how frequent should code reviews be done?
- Why should(n't) a code review be required on a frequent basis?
- When in the process is the best time to do a code review?
- How would you deal with this situation if you were me?
Thanks in advance for your input.
EDIT: Thanks everyone for your input. It helped me look at the situation in multiple ways. I've had some talks and as it turns out, there are no specifications to work towards. This is why code reviews are useless because we're not sure we'll be using the code after all... I'll leave it at that.