List:Commits« Previous MessageNext Message »
From:Rafal Somla Date:July 16 2008 5:00pm
Subject:Re: bzr commit into mysql-6.0-backup branch (cbell:2648) Bug#35230
View as plain text  
Hi Chuck,

Here is my reply for your general comments regarding style of work etc...

cbell@stripped wrote:
> Rafal,
> 
> I am disappointed that you regard the kernel with such high emotional 
> protectiveness. I understand most of your points you outlined but I 
> think to work effectively we must devoid ourselves from certain 
> prejudices regarding some types of changes to the code.
> 

I do treat backup kernel emotionally because I wrote this code - I think this is 
understandable. But I don't think I have any prejudices. As I explain below I 
think I had right to ask for the changes you introduced and that would be the 
case regardless of what part of the code you were changing. The only thing is 
that I know backup kernel better than other parts of the code and it is easier 
for me to spot problems there.

> I am ok with you suggesting changes to how parameters are passed and 
> such -- that's not what I am complaining about. What bothers me most is 
> that it seems any time I make a change to any part of the kernel it's 
> never good enough to pass your reviews and it takes a minimum of four 
> reviews to satisfy you. We all must simply learn to relax a little! :)
> 
> Since you feel so strongly about changing the parameter names, types, 
> etc., please feel free to make those changes -- just have Svoj or 
> someone review them first.

I don't feel strong against changing parameter names or types. I feel strong 
against changing them without a reason - this is different. I might not see or 
understand the reasons behind some changes and this is why I ask questions.

(cut)
>> Apart from that there are few changes which I don't think are needed
>> and thus are a bit annoying for an author of the code. These are things
>> like changing types of function parameters, renaming the parameters and
>> such. I'd like to see the reasons behind introducing such changes...
> 
> IMHO (and this is not an accusation, merely commentary): we as 
> developers in a team should never regard any portion of the code higher 
> than any other or have moving standards. Ownwership and authorship have 
> no place in a modern agile development (like) environment. Arguing over 
> parameter names and "why did you add a parameter to my function" are 
> controversial and adversarial at best. Let us refrain from this mentality.
> 

I strongly disagree here. I am used to open environments where it is always ok 
to asks "why?" questions. For example in the scientific world, if you publish 
something, you should be always prepared that someone will read your paper 
carefully and either criticize it pointing at the errors or (more often) ask you 
for explanations. Such behaviour is never considered bad or rude, but it is even 
appreciated, because it is one of the main ways of ensuring quality of the 
scientific work. I, as an author of scientific papers, am always very happy if 
someone asks me for explaining some points and even more happy if he points at 
errors in my work because it is the best way for improving it.

I also disagree with "no responsibility for the code" principle. I think not 
having a clear responsibilities is one of the things that stops our company from 
delivering better results. I'd like to have it very clearly defined and always 
know to whom I can turn if I see problems in some parts of the code.

So, I take full responsibility for the code I create and I expect the same from 
other developers. And part of this responsibility is to be ready to answer 
questions "why have you done it that way". I think it is an obligation of each 
developer to be able to answer such questions, especially if asked by reviewer. 
For one thing, it can help us to eliminate code which is there for no reason...

Now I even recall some "how to review" document saying that you should not 
accept code which you don't understand. And who should explain the code if not 
its author?

You should probably also agree that if someone implements feature X, then his 
patch should include only changes needed to implement feature X and nothing 
more. This is a principle which sometimes can have exceptions (e.g. we fix some 
problem or do refactoring in the same patch) but this is an extraordinary 
situation and thus it needs a good justification. Changing "const String&" 
parameter to "LEX_STRING*" just because I like LEX_STRING more than String is 
not a good enough reason...

Ok, that is perhaps enough to explain my position on this. I'm sorry if we 
disagree again, but I find it unlikely that I'll change my attitude here.

Rafal

Thread
bzr commit into mysql-6.0-backup branch (cbell:2648) Bug#35230Chuck Bell9 Jul
  • Re: bzr commit into mysql-6.0-backup branch (cbell:2648) Bug#35230Rafal Somla10 Jul
    • Re: bzr commit into mysql-6.0-backup branch (cbell:2648) Bug#35230cbell11 Jul
    • Re: bzr commit into mysql-6.0-backup branch (cbell:2648) Bug#35230cbell11 Jul
    • Re: bzr commit into mysql-6.0-backup branch (cbell:2648) Bug#35230cbell11 Jul
      • Re: bzr commit into mysql-6.0-backup branch (cbell:2648) Bug#35230Rafal Somla16 Jul
      • Re: bzr commit into mysql-6.0-backup branch (cbell:2648) Bug#35230Rafal Somla16 Jul
    • Re: bzr commit into mysql-6.0-backup branch (cbell:2648) Bug#35230cbell11 Jul
    • Re: bzr commit into mysql-6.0-backup branch (cbell:2648) Bug#35230cbell11 Jul
    • Re: bzr commit into mysql-6.0-backup branch (cbell:2648) Bug#35230cbell11 Jul
    • Re: bzr commit into mysql-6.0-backup branch (cbell:2648) Bug#35230cbell11 Jul
RE: bzr commit into mysql-6.0-backup branch (cbell:2648) Bug#35230Chuck Bell9 Jul