Professional Attitudes

I had an interesting email conversation on Friday with which I wish to bore you.
It’s a long story but first some background…

I discovered a data problem in Bugzilla (our bug tracking software) and fixed it in a couple of entries. This triggered emails to the developers responsible for those bugs. One of those developers, Dave D, came and asked me about it. I told him the problem, and he suggested I send an email to the developers explaining the situation.

I sent this:

> 
> I've just had to fix a couple of invalid bugs in bugzilla
> they were invalid because they had been assigned to a non-existent release
> milestone.
> The data integrity check I run regularly spots that kind of thing.
> 
> I'm not sure how this is happening, they were both changed yesterday 
> around lunch time.
> 
> They only thing I can think that happened is that an existing milestone got 
> renamed; RC04 to RC04 (1308 ), and after that had happened, people with these
> bugs open in their browsers (with the page loaded before the rename) then
> submitted those bugs, submitting the old names in the form parameters and
> re-assigning them to the old name.
> 
> When I get a minute, I'll check bugzilla's bugzilla to see if this has been 
> reported as a bug.
> 
> Mike
> 

Note, I’m explaining what happened and assuming a problem with the software.

I then received a reply from one of the developers:

> 
> Mike
> 
> I submitted a bug yesterday and got a mid air 
> collision as a result of the milestone changing.
> 
> Regards
> Robin
> 

To which I responded:

> And you didn't highlight it to anyone? Look into it?
> 
> Folks, I know we are used to Windows programs having 
> random errors for no good reason, but when something says 
> "mid-air collision, something went wrong, data may be lost,
> do you want to sort it out?"
> 
> Please THINK about that! If you don't know how to sort it, 
> speak to someone who does!"
> 
> David D, I presume this happened to you too. Since you were 
> the other culprit!
> 
> From the bugzilla docs (which are online here 
> http://cvs01.eunite.co.uk/bugzilla/docs/html/Bugzilla-Guide.html )
> 
> A.4.20.  Does Bugzilla provide record locking when there is 
> simultaneous 
> access to the same bug? Does the second person get a notice 
> that the bug 
> is in use or how are they notified?
> 
> Bugzilla does not lock records. It provides mid-air collision 
> detection, 
> and offers the offending user a choice of options to deal 
> with the conflict. 
> 
> 
> C'mon peeps a bit of common sense.
> Mike
> 

OK, so now I know what happened. It wasn’t a fault of the software, in fact the software pointed out the problem. At this point I went and spoke to Robin to talk through what had happened. We went through what the message meant and why it was significant. I also explained why data loss like this can be significant. Robin was fine, understood, and I’m sure will have an idea what to do next time it happens.

When I got back to my desk I had received this:

> if there is a problem like this then it is a problem with the 
> software !!!! developers should not have to spend there time 
> identifying problems in software esp as this mid air 
> collision also happens when two people update a bug at the 
> same time you would expect that people would just wait an re 
> submit the bug not.
> 
> the tone of this mail was totally unacceptable I am not 
> expecting a reply !
> 

This was from the senior developer of the team. To say the least it got my back up somewhat. I replied:

 
> You're gonna get a reply!
> 
> The software detected the problem and informed the user.
> The software CANNOT resolve this dilemma. If two people 
> make different changes to the same bug, how can the software
> decide which change it should keep?
> 
> I've already spoken to Robin and he is fine about it. He 
> understands what went wrong and how to handle it next time.
> I'll speak to Dave on Monday now, I'm sure he'll not have a 
> problem either.
> 
> What is the problem? We are professionals! We shouldn't ignore 
> detected errors which actually tell you that changes are going 
> to be lost.
> 
> Mike

Here I pointed out that there was not a problem with the software, and that at least one of the developers involved had learnt from the situation.

Now, this is my philosophy on professionalism. If I make a mistake, I want somebody to point it out to me, so I can learn from it. So I can avoid making the same mistake again. If some software tells me I’ve made a mistake, whether it’s the spell checker, a compiler, or what ever, I want to understand what I did wrong, correct it if I can, and certainly be more careful to not make the same mistake again.

Matt replied again:

 
> the problem is more with your attitude towards the developmet team not
> specific to the software I dont call these barrage of abuse that you
> constantly dish being professionals. I think we should carry this discussion
> out when aamir is back on moday 

Aah! Suddenly it’s not the software’s fault. Now it’s my fault!

Apparently my attitude towards the development team is the problem. My pointing out a problem, my analysis of the problem, and my constructive response to the problem is a problem itself.

Now, call me silly, but I really cannot see any barrage of abuse in any of my emails here. Unless my appeal for professional developers, people who get paid to do a job, to use some common sense is somehow considered abusive. Or maybe it’s me calling Dave a culprit. Funnily enough I’d already said this to him when he first came and talked to me. I didn’t percieve that he thought this was abusive. So where is this barrage of abuse. I certainly can’t see it.

By the way, Aamir is our manager. I’ll have to wait until Monday to see what he thinks of all this. I would hope that after his email earlier this week which declaimed the lack of professionalism (my words) in the developers, but specifically excluding my team, that he will understand my desire to encourage my colleagues to use their common sense and respond sensibly to errors and warnings from software they use. After all they all know they have to deal with compiler errors and warnings. Why is this any different?

It really gets my goat when people decry the desire to better oneself, and to encourage betterment in others.

Anyway, that’s my rant over with.

Later days.

More Merge Mania

I finally finished the second lot of code stream merges I mentioned the other week. This lot took me more than two days again. I had to pull one feature out as the ‘performance’ enhancements (nasty page caching hack) meant that the whole thing needs to be done again!
Only three more to do, including one that is pencilled in to take 5 days!

Too late

I was going to do some work from home tonight, but as I didn’t actually get home until a quarter past midnight, I’ll give it a miss and finish it in the morning.

More Heat

It was unbearably hot in the office again today. 92 degrees fahrenheit! 🙁 🙁 🙁
I can’t see how ‘saving money’ by not getting air conditioning can be truly economical when people are too uncomfortable to actually concentrate on work. I would guess that lost productivity across all the staff would soon add up to the cost of the aircon.
But “what the hey”, the bean counters run all companies these days don’t they? The bottom line is the be all and end all of everything. “If everyone works 20 hours overtime next month we can make our targets”. Never mind the workers. Never mind the projects that aren’t ready to be started. Never mind the morale. Never mind the dealines that can never be met!

Merge City

Well, I finally finished all those merges I needed to do. It took about 3 days longer than expected! And there are more painful merges to come. 🙁
I’ve still to finish packaging up the release. But I’ve stopped that while I have to branch from a previous release of another project coz, the client doesn’t have time to test the last release! So they want the previous release (which hasn’t gone live yet) PLUS one more piece of work.

Mergin’ Blues

So far I’ve spent three and a half days doing the merges I mentioned recently. Here’s a big tip. When the client wants you to do something nasty to optimize throughput, which you know will mean harder maintenance and development later, resist with all your might! This is just taking forever, and I’ve got another two merges to do yet.
In the next couple of weeks there are three more to do! In the weeks following that there are even more. All of them are going to be painful because we were persuaded to hack in some really dirty optimizations! 🙁

Merging on the Ridiculous

Lots of ‘fun’ today merging two CVS branches. The merge itself wasn’t too bad, only about four files with conflicts. The pain came from the fact that the branch I was merging from wasn’t a complete piece of work. It was in a phase two of three state which meant that not all aspects were working. But the powers that be have decided they need the work done so far to be released into testing next week!
Ah well, got it all working in the end. Only another four merges to go!

Fun With Branches

I’ve been having fun with branches today. No, not the tree kind, CVS branches: parallel branches of code development. I’ve got to bring together several branches of development (five in fact) in order to do a new release of code. Quite a complex job. I spent quite a while just getting my head around what was where and what was going to be merged with what, and in what order.
The resultant diagram looks like this (reduced in size and details removed).
CVS Branches