As a programmer, what should you do when a programmer in your team keeps pushing bad code (that works)? Should you complain to the manager (who is not tech savvy)
-
This question was actually asked on a Quora and I wrote the following answer. I thought this would be a better place to put the answer so I am copying and pasting here. Ahhh Lucy code. I worked on a team of three programmers once. It was almost a former lifetime. Two of us wrote fairly decent code. 1. Named Lucy did not. She used Goto statements. She named her variables name1, name2, name3, textbox1, textbox2 etc… It was horrible. The manager loved her however. 1. She was a girl on the team so that helped the powers that be say we are diverse. (whatever. Bad work is bad work). and she could very quickly get a first draft into a persons hands to react to on screens and other things. She was very good at getting a project started. without thinking about the end goal. Buttttttt and it is a huge one. She would have trouble finishing or modifing anything she worked on. And Brad and I would flat refuse to even look at her code. IF when we were forced too. We informed our manager that it would take a week of clean up before we were ready to even start on the actual changes for improvements. Also, she could not update her own code. She would spend days just trying to figure out what name77 did and what kind of variable it actually was. It took a very long time. Like a year or more. But eventually the manager started seeing that Brad and I could update each others code easily. and that we could jump into any project either of us had done and keep going when the other was out. Lucy on the other hand could not even with her own code. Eventually we started pushing for code reviews infront of the manager and pointed out the variable naming and the spaghetti like structure of her code. And then we would ask the dreaded question. How long will it take for you to update this if the customer decides that the zip code should not be an integer and now should be alpha for overseas deliveries? How long will it take you to find the various textbox1’s on all the screens and actually know which one houses which database information fields? about 2 months of that and Lucy got mad and quit our team. PS Let me be very clear before anyone goes off on me picking on a woman. I have worked with a ton of wonderful lady programmers. They have been awesome. I have worked with some bass Akwards male programmers. Lucy just happens to be the worst of the worst for programmers that I have encountered,.
To err is human to really elephant it up you need a computer
-
This question was actually asked on a Quora and I wrote the following answer. I thought this would be a better place to put the answer so I am copying and pasting here. Ahhh Lucy code. I worked on a team of three programmers once. It was almost a former lifetime. Two of us wrote fairly decent code. 1. Named Lucy did not. She used Goto statements. She named her variables name1, name2, name3, textbox1, textbox2 etc… It was horrible. The manager loved her however. 1. She was a girl on the team so that helped the powers that be say we are diverse. (whatever. Bad work is bad work). and she could very quickly get a first draft into a persons hands to react to on screens and other things. She was very good at getting a project started. without thinking about the end goal. Buttttttt and it is a huge one. She would have trouble finishing or modifing anything she worked on. And Brad and I would flat refuse to even look at her code. IF when we were forced too. We informed our manager that it would take a week of clean up before we were ready to even start on the actual changes for improvements. Also, she could not update her own code. She would spend days just trying to figure out what name77 did and what kind of variable it actually was. It took a very long time. Like a year or more. But eventually the manager started seeing that Brad and I could update each others code easily. and that we could jump into any project either of us had done and keep going when the other was out. Lucy on the other hand could not even with her own code. Eventually we started pushing for code reviews infront of the manager and pointed out the variable naming and the spaghetti like structure of her code. And then we would ask the dreaded question. How long will it take for you to update this if the customer decides that the zip code should not be an integer and now should be alpha for overseas deliveries? How long will it take you to find the various textbox1’s on all the screens and actually know which one houses which database information fields? about 2 months of that and Lucy got mad and quit our team. PS Let me be very clear before anyone goes off on me picking on a woman. I have worked with a ton of wonderful lady programmers. They have been awesome. I have worked with some bass Akwards male programmers. Lucy just happens to be the worst of the worst for programmers that I have encountered,.
To err is human to really elephant it up you need a computer
Personally, I believe that they should be hangèd (worse than normal hanging!) from the nearest lamppost pour encourager les autres. This, however, may get you talked about. :sigh: If mentoring fails, one possibility, as you mention, are code reviews. Another would combine code reviews with a "style manual". If it becomes necessary to fire the offender, it is much better to do so for egregious and repeated violations of company rules than for something vague like failed code reviews.
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows. -- 6079 Smith W.
-
This question was actually asked on a Quora and I wrote the following answer. I thought this would be a better place to put the answer so I am copying and pasting here. Ahhh Lucy code. I worked on a team of three programmers once. It was almost a former lifetime. Two of us wrote fairly decent code. 1. Named Lucy did not. She used Goto statements. She named her variables name1, name2, name3, textbox1, textbox2 etc… It was horrible. The manager loved her however. 1. She was a girl on the team so that helped the powers that be say we are diverse. (whatever. Bad work is bad work). and she could very quickly get a first draft into a persons hands to react to on screens and other things. She was very good at getting a project started. without thinking about the end goal. Buttttttt and it is a huge one. She would have trouble finishing or modifing anything she worked on. And Brad and I would flat refuse to even look at her code. IF when we were forced too. We informed our manager that it would take a week of clean up before we were ready to even start on the actual changes for improvements. Also, she could not update her own code. She would spend days just trying to figure out what name77 did and what kind of variable it actually was. It took a very long time. Like a year or more. But eventually the manager started seeing that Brad and I could update each others code easily. and that we could jump into any project either of us had done and keep going when the other was out. Lucy on the other hand could not even with her own code. Eventually we started pushing for code reviews infront of the manager and pointed out the variable naming and the spaghetti like structure of her code. And then we would ask the dreaded question. How long will it take for you to update this if the customer decides that the zip code should not be an integer and now should be alpha for overseas deliveries? How long will it take you to find the various textbox1’s on all the screens and actually know which one houses which database information fields? about 2 months of that and Lucy got mad and quit our team. PS Let me be very clear before anyone goes off on me picking on a woman. I have worked with a ton of wonderful lady programmers. They have been awesome. I have worked with some bass Akwards male programmers. Lucy just happens to be the worst of the worst for programmers that I have encountered,.
To err is human to really elephant it up you need a computer
Quote:
She was a girl on the team so that helped the powers that be say we are diverse.
Thank God we're still not here and judge people by merit, not by gender, race etc... At least most of us
-
This question was actually asked on a Quora and I wrote the following answer. I thought this would be a better place to put the answer so I am copying and pasting here. Ahhh Lucy code. I worked on a team of three programmers once. It was almost a former lifetime. Two of us wrote fairly decent code. 1. Named Lucy did not. She used Goto statements. She named her variables name1, name2, name3, textbox1, textbox2 etc… It was horrible. The manager loved her however. 1. She was a girl on the team so that helped the powers that be say we are diverse. (whatever. Bad work is bad work). and she could very quickly get a first draft into a persons hands to react to on screens and other things. She was very good at getting a project started. without thinking about the end goal. Buttttttt and it is a huge one. She would have trouble finishing or modifing anything she worked on. And Brad and I would flat refuse to even look at her code. IF when we were forced too. We informed our manager that it would take a week of clean up before we were ready to even start on the actual changes for improvements. Also, she could not update her own code. She would spend days just trying to figure out what name77 did and what kind of variable it actually was. It took a very long time. Like a year or more. But eventually the manager started seeing that Brad and I could update each others code easily. and that we could jump into any project either of us had done and keep going when the other was out. Lucy on the other hand could not even with her own code. Eventually we started pushing for code reviews infront of the manager and pointed out the variable naming and the spaghetti like structure of her code. And then we would ask the dreaded question. How long will it take for you to update this if the customer decides that the zip code should not be an integer and now should be alpha for overseas deliveries? How long will it take you to find the various textbox1’s on all the screens and actually know which one houses which database information fields? about 2 months of that and Lucy got mad and quit our team. PS Let me be very clear before anyone goes off on me picking on a woman. I have worked with a ton of wonderful lady programmers. They have been awesome. I have worked with some bass Akwards male programmers. Lucy just happens to be the worst of the worst for programmers that I have encountered,.
To err is human to really elephant it up you need a computer
rnbergren wrote:
Let me be very clear before anyone goes off on me picking on a woman.
You didn't document the experience level of any of the developers involved. If you were all juniors then I question the very assumption that the other two developers code was as good as claimed. If she was a junior level and the others were senior then it was a failure in management. And if that was not brought specifically to the attention of management (the need for mentoring) then that is a failure for the seniors. Also the description suggests that major functional pieces were being developed independently by each developer and nothing in the description suggests that formal or informal design sessions were carried out. Which again was probably a senior level failure. Technically in that situation then the delivered code is not 'bad' because the process is in fact 'deliver what works'.
rnbergren wrote:
And then we would ask the dreaded question. How long will it take for you to update this if the customer decides that the zip code should not be an integer and now should be alpha for overseas deliveries?
I am not a great fan of developers that think their code will support future features when those features are not known. I have seen lots of complex code written like that where is did not provide any benefit and did in fact make maintenance much harder (and cost more.) If you knew that the code would require it to work for a global market and she did not then there was a process problem. If she knew it but did not meet the requirements then that is a different problem. And also does not really meet your original assertion that the code "worked".
-
This question was actually asked on a Quora and I wrote the following answer. I thought this would be a better place to put the answer so I am copying and pasting here. Ahhh Lucy code. I worked on a team of three programmers once. It was almost a former lifetime. Two of us wrote fairly decent code. 1. Named Lucy did not. She used Goto statements. She named her variables name1, name2, name3, textbox1, textbox2 etc… It was horrible. The manager loved her however. 1. She was a girl on the team so that helped the powers that be say we are diverse. (whatever. Bad work is bad work). and she could very quickly get a first draft into a persons hands to react to on screens and other things. She was very good at getting a project started. without thinking about the end goal. Buttttttt and it is a huge one. She would have trouble finishing or modifing anything she worked on. And Brad and I would flat refuse to even look at her code. IF when we were forced too. We informed our manager that it would take a week of clean up before we were ready to even start on the actual changes for improvements. Also, she could not update her own code. She would spend days just trying to figure out what name77 did and what kind of variable it actually was. It took a very long time. Like a year or more. But eventually the manager started seeing that Brad and I could update each others code easily. and that we could jump into any project either of us had done and keep going when the other was out. Lucy on the other hand could not even with her own code. Eventually we started pushing for code reviews infront of the manager and pointed out the variable naming and the spaghetti like structure of her code. And then we would ask the dreaded question. How long will it take for you to update this if the customer decides that the zip code should not be an integer and now should be alpha for overseas deliveries? How long will it take you to find the various textbox1’s on all the screens and actually know which one houses which database information fields? about 2 months of that and Lucy got mad and quit our team. PS Let me be very clear before anyone goes off on me picking on a woman. I have worked with a ton of wonderful lady programmers. They have been awesome. I have worked with some bass Akwards male programmers. Lucy just happens to be the worst of the worst for programmers that I have encountered,.
To err is human to really elephant it up you need a computer
-
This question was actually asked on a Quora and I wrote the following answer. I thought this would be a better place to put the answer so I am copying and pasting here. Ahhh Lucy code. I worked on a team of three programmers once. It was almost a former lifetime. Two of us wrote fairly decent code. 1. Named Lucy did not. She used Goto statements. She named her variables name1, name2, name3, textbox1, textbox2 etc… It was horrible. The manager loved her however. 1. She was a girl on the team so that helped the powers that be say we are diverse. (whatever. Bad work is bad work). and she could very quickly get a first draft into a persons hands to react to on screens and other things. She was very good at getting a project started. without thinking about the end goal. Buttttttt and it is a huge one. She would have trouble finishing or modifing anything she worked on. And Brad and I would flat refuse to even look at her code. IF when we were forced too. We informed our manager that it would take a week of clean up before we were ready to even start on the actual changes for improvements. Also, she could not update her own code. She would spend days just trying to figure out what name77 did and what kind of variable it actually was. It took a very long time. Like a year or more. But eventually the manager started seeing that Brad and I could update each others code easily. and that we could jump into any project either of us had done and keep going when the other was out. Lucy on the other hand could not even with her own code. Eventually we started pushing for code reviews infront of the manager and pointed out the variable naming and the spaghetti like structure of her code. And then we would ask the dreaded question. How long will it take for you to update this if the customer decides that the zip code should not be an integer and now should be alpha for overseas deliveries? How long will it take you to find the various textbox1’s on all the screens and actually know which one houses which database information fields? about 2 months of that and Lucy got mad and quit our team. PS Let me be very clear before anyone goes off on me picking on a woman. I have worked with a ton of wonderful lady programmers. They have been awesome. I have worked with some bass Akwards male programmers. Lucy just happens to be the worst of the worst for programmers that I have encountered,.
To err is human to really elephant it up you need a computer
Do the job that you are being paid to do. Just that. Nothing more. Nothing less. Do that job to the best of your ability without adding beyond what you are being paid for. Exactly what you are being paid to do: Do that. Only that. Do it well.