Although I always got on with Gerald, his programming skills were a bit lacking. He was definitely one of those software developers that may have been good in his prime, but the languages he has used are now obsolete and he struggles to learn new things, so was a poor C# developer.
One trait he had is that he seemed focussed on his own work and didn’t pay attention to what anyone else was doing. So there could be well-known employees at the company and he wouldn’t know who they are. So there were plenty of conversations like “go and ask George for assistance” and he would be like “who’s that?” or “what does he do?” much to the derision of team-mates.
There were several times where he was working on items that had been picked up by others, or had completely misinterpreted the requirements.
A few examples of bad programming
Declaring a boolean is easy; it’s just true or false, but Gerald created a string “False” then used the parse function to convert it to a boolean.
IsSelected = bool.Parse("False")
There was a simple stored procedure that he needed to write to set a boolean flag. So normally you would just write one procedure that took a boolean parameter and set the database field to that value. But Gerald wrote 2 stored procs. One to set a bool value to 0, and another to set it to 1.
So some weird solutions to some primitive problems.
A few examples of Lack Of Awareness
We were doing a project where we made the main feature. There was a requirement for the user to be able to write custom searches to generate reports, so another team was adding the new options into our Searches module. We were about to wrap up the project and Gerald was surprised that another team had been checking code into our project branch.
There was one time Gerald volunteered to help out with software testing. He managed to pick the item that the actual tester was testing; so he didn’t help out at all – no time was saved. When we asked him how it happened, he said he thought Rob’s name was on it because he was the last person that worked on it. Even though that would have a developer’s name against it and not a tester; so that’s exactly the reason why he shouldn’t have chosen it.
A few weeks before that, he did something similar on three occasions. So he completely wasted a week by looking at things other people were working on.
Another time, Gerald was struggling with his work and asked me to help him. He said he was struggling with how to change the behaviour of pressing the spacebar to select an item in the tree view. I thought that behaviour sounded odd because I’d probably expect Enter to select, and maybe spacebar expands the nodes. I read the requirements and it was about toggling radio buttons, and nothing to do with a tree view.
A funny exchange on one of his code reviews:
Rich: Do we need to update DateInserted and UploadAttemptCount when these are just the same as the defaults?
Gerald: Ah, of course - think Rich said that too, but I didn't quite get what he meant. I'll drop them.
Gerald: What am I on about - you are Rich. D'oh!