Professionalism: protecting code quality












-2















TL,DR: Questions under the text



I am a software developer at a R&D center. Due to my seniority, I am oftentimes asked to review time/scope critical changes to our code-base. Due to the hectic state of the project, it is not unusual that I am asked to review others' code the day or even hours before a major delivery.



I often review pull requests from a contractor, Joe. Joe gets paid for every feature he completes rather than a hourly rate. It is my impression that Joe tries to get as many features done as possible, oftentimes skimping on documentation/code quality in the process. In the past, I have had to do overtime to fix issues with Joe's code, because once it's approved and paid for, he doesn't feel and nobody makes him responsible for bug fixing. Our team has pointed out that the situation is non-ideal, but the current managerial decision is that this won't change.



I would frequently request changes in Joe's code because it doesn't meet our guidelines. Joe would usually approach me with a story about how he wouldn't get paid if his code wasn't accepted in time. For a while I would accept minor issues under the condition that Joe would fix them later, but that never happened. Eventually I stopped accepting incomplete submissions and have asked Joe to escalate the issue if he's unhappy with my verdict.



Generally, Joe's code would have the following issues, in ascending order of seriousness:




  1. Lacking documentation/formatting against our guidelines

  2. Lacking tests

  3. Architecture incompatible with what we were trying to achieve in the future

  4. Performance issues

  5. Flat out not working


Since Joe's features were often promised to the client in that particular week and there wouldn't be time for Joe to fix them, eventually other people have started approaching me to accept Joe's code, from Product Owner, through Project Management, my boss, to my boss' boss.



In the discussions my project management/my superiors usually ask me to find a way to accept Joe's code anyway. I would generally let 1 and 2 through at this point, but refuse to accept anything more serious, citing my responsibility for code quality and technical debt as engineer. To put it bluntly, accepting code like this would cost us more time down the road than it is worth.



In some situations my superiors have asked to accept the code anyway, even if the issues were egregious, citing features promised to the client and the upcoming delivery. At this point I usually respond by saying:




  • Anyone, including non-technical employees can overrule my decision and merge the code.

  • If they are my direct superior, they can send me an email ordering me to accept it and I will oblige.


I do this not necessarily as a CYA tactic, but rather believe that people think twice about the decisions they are making if they put them in writing. To this date, no one has decided to do any of the above, even if I have gotten some scoffs as a result.



Nevertheless, some co-workers have privately told me I wouldn't make it very far with this attitude, thus I wonder:




  • As an engineer, code quality is my responsibility. To what degree should I fight for it?

  • Is it appropriate for me to ask my superiors to put their decisions in writing?

  • If code quality is suffering due to organizational issues (the way a contractor is compensated), is it appropriate for me to be "a judge" or raise the issue with my superiors or HR?










share|improve this question







New contributor




soft dev is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





















  • @Downvoters please let me know how I can improve the question

    – soft dev
    5 mins ago











  • Good question but a little too broad for this site format

    – solarflare
    5 mins ago
















-2















TL,DR: Questions under the text



I am a software developer at a R&D center. Due to my seniority, I am oftentimes asked to review time/scope critical changes to our code-base. Due to the hectic state of the project, it is not unusual that I am asked to review others' code the day or even hours before a major delivery.



I often review pull requests from a contractor, Joe. Joe gets paid for every feature he completes rather than a hourly rate. It is my impression that Joe tries to get as many features done as possible, oftentimes skimping on documentation/code quality in the process. In the past, I have had to do overtime to fix issues with Joe's code, because once it's approved and paid for, he doesn't feel and nobody makes him responsible for bug fixing. Our team has pointed out that the situation is non-ideal, but the current managerial decision is that this won't change.



I would frequently request changes in Joe's code because it doesn't meet our guidelines. Joe would usually approach me with a story about how he wouldn't get paid if his code wasn't accepted in time. For a while I would accept minor issues under the condition that Joe would fix them later, but that never happened. Eventually I stopped accepting incomplete submissions and have asked Joe to escalate the issue if he's unhappy with my verdict.



Generally, Joe's code would have the following issues, in ascending order of seriousness:




  1. Lacking documentation/formatting against our guidelines

  2. Lacking tests

  3. Architecture incompatible with what we were trying to achieve in the future

  4. Performance issues

  5. Flat out not working


Since Joe's features were often promised to the client in that particular week and there wouldn't be time for Joe to fix them, eventually other people have started approaching me to accept Joe's code, from Product Owner, through Project Management, my boss, to my boss' boss.



In the discussions my project management/my superiors usually ask me to find a way to accept Joe's code anyway. I would generally let 1 and 2 through at this point, but refuse to accept anything more serious, citing my responsibility for code quality and technical debt as engineer. To put it bluntly, accepting code like this would cost us more time down the road than it is worth.



In some situations my superiors have asked to accept the code anyway, even if the issues were egregious, citing features promised to the client and the upcoming delivery. At this point I usually respond by saying:




  • Anyone, including non-technical employees can overrule my decision and merge the code.

  • If they are my direct superior, they can send me an email ordering me to accept it and I will oblige.


I do this not necessarily as a CYA tactic, but rather believe that people think twice about the decisions they are making if they put them in writing. To this date, no one has decided to do any of the above, even if I have gotten some scoffs as a result.



Nevertheless, some co-workers have privately told me I wouldn't make it very far with this attitude, thus I wonder:




  • As an engineer, code quality is my responsibility. To what degree should I fight for it?

  • Is it appropriate for me to ask my superiors to put their decisions in writing?

  • If code quality is suffering due to organizational issues (the way a contractor is compensated), is it appropriate for me to be "a judge" or raise the issue with my superiors or HR?










share|improve this question







New contributor




soft dev is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





















  • @Downvoters please let me know how I can improve the question

    – soft dev
    5 mins ago











  • Good question but a little too broad for this site format

    – solarflare
    5 mins ago














-2












-2








-2








TL,DR: Questions under the text



I am a software developer at a R&D center. Due to my seniority, I am oftentimes asked to review time/scope critical changes to our code-base. Due to the hectic state of the project, it is not unusual that I am asked to review others' code the day or even hours before a major delivery.



I often review pull requests from a contractor, Joe. Joe gets paid for every feature he completes rather than a hourly rate. It is my impression that Joe tries to get as many features done as possible, oftentimes skimping on documentation/code quality in the process. In the past, I have had to do overtime to fix issues with Joe's code, because once it's approved and paid for, he doesn't feel and nobody makes him responsible for bug fixing. Our team has pointed out that the situation is non-ideal, but the current managerial decision is that this won't change.



I would frequently request changes in Joe's code because it doesn't meet our guidelines. Joe would usually approach me with a story about how he wouldn't get paid if his code wasn't accepted in time. For a while I would accept minor issues under the condition that Joe would fix them later, but that never happened. Eventually I stopped accepting incomplete submissions and have asked Joe to escalate the issue if he's unhappy with my verdict.



Generally, Joe's code would have the following issues, in ascending order of seriousness:




  1. Lacking documentation/formatting against our guidelines

  2. Lacking tests

  3. Architecture incompatible with what we were trying to achieve in the future

  4. Performance issues

  5. Flat out not working


Since Joe's features were often promised to the client in that particular week and there wouldn't be time for Joe to fix them, eventually other people have started approaching me to accept Joe's code, from Product Owner, through Project Management, my boss, to my boss' boss.



In the discussions my project management/my superiors usually ask me to find a way to accept Joe's code anyway. I would generally let 1 and 2 through at this point, but refuse to accept anything more serious, citing my responsibility for code quality and technical debt as engineer. To put it bluntly, accepting code like this would cost us more time down the road than it is worth.



In some situations my superiors have asked to accept the code anyway, even if the issues were egregious, citing features promised to the client and the upcoming delivery. At this point I usually respond by saying:




  • Anyone, including non-technical employees can overrule my decision and merge the code.

  • If they are my direct superior, they can send me an email ordering me to accept it and I will oblige.


I do this not necessarily as a CYA tactic, but rather believe that people think twice about the decisions they are making if they put them in writing. To this date, no one has decided to do any of the above, even if I have gotten some scoffs as a result.



Nevertheless, some co-workers have privately told me I wouldn't make it very far with this attitude, thus I wonder:




  • As an engineer, code quality is my responsibility. To what degree should I fight for it?

  • Is it appropriate for me to ask my superiors to put their decisions in writing?

  • If code quality is suffering due to organizational issues (the way a contractor is compensated), is it appropriate for me to be "a judge" or raise the issue with my superiors or HR?










share|improve this question







New contributor




soft dev is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.












TL,DR: Questions under the text



I am a software developer at a R&D center. Due to my seniority, I am oftentimes asked to review time/scope critical changes to our code-base. Due to the hectic state of the project, it is not unusual that I am asked to review others' code the day or even hours before a major delivery.



I often review pull requests from a contractor, Joe. Joe gets paid for every feature he completes rather than a hourly rate. It is my impression that Joe tries to get as many features done as possible, oftentimes skimping on documentation/code quality in the process. In the past, I have had to do overtime to fix issues with Joe's code, because once it's approved and paid for, he doesn't feel and nobody makes him responsible for bug fixing. Our team has pointed out that the situation is non-ideal, but the current managerial decision is that this won't change.



I would frequently request changes in Joe's code because it doesn't meet our guidelines. Joe would usually approach me with a story about how he wouldn't get paid if his code wasn't accepted in time. For a while I would accept minor issues under the condition that Joe would fix them later, but that never happened. Eventually I stopped accepting incomplete submissions and have asked Joe to escalate the issue if he's unhappy with my verdict.



Generally, Joe's code would have the following issues, in ascending order of seriousness:




  1. Lacking documentation/formatting against our guidelines

  2. Lacking tests

  3. Architecture incompatible with what we were trying to achieve in the future

  4. Performance issues

  5. Flat out not working


Since Joe's features were often promised to the client in that particular week and there wouldn't be time for Joe to fix them, eventually other people have started approaching me to accept Joe's code, from Product Owner, through Project Management, my boss, to my boss' boss.



In the discussions my project management/my superiors usually ask me to find a way to accept Joe's code anyway. I would generally let 1 and 2 through at this point, but refuse to accept anything more serious, citing my responsibility for code quality and technical debt as engineer. To put it bluntly, accepting code like this would cost us more time down the road than it is worth.



In some situations my superiors have asked to accept the code anyway, even if the issues were egregious, citing features promised to the client and the upcoming delivery. At this point I usually respond by saying:




  • Anyone, including non-technical employees can overrule my decision and merge the code.

  • If they are my direct superior, they can send me an email ordering me to accept it and I will oblige.


I do this not necessarily as a CYA tactic, but rather believe that people think twice about the decisions they are making if they put them in writing. To this date, no one has decided to do any of the above, even if I have gotten some scoffs as a result.



Nevertheless, some co-workers have privately told me I wouldn't make it very far with this attitude, thus I wonder:




  • As an engineer, code quality is my responsibility. To what degree should I fight for it?

  • Is it appropriate for me to ask my superiors to put their decisions in writing?

  • If code quality is suffering due to organizational issues (the way a contractor is compensated), is it appropriate for me to be "a judge" or raise the issue with my superiors or HR?







software-development germany






share|improve this question







New contributor




soft dev is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question







New contributor




soft dev is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question






New contributor




soft dev is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked 14 mins ago









soft devsoft dev

1




1




New contributor




soft dev is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





soft dev is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






soft dev is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.













  • @Downvoters please let me know how I can improve the question

    – soft dev
    5 mins ago











  • Good question but a little too broad for this site format

    – solarflare
    5 mins ago



















  • @Downvoters please let me know how I can improve the question

    – soft dev
    5 mins ago











  • Good question but a little too broad for this site format

    – solarflare
    5 mins ago

















@Downvoters please let me know how I can improve the question

– soft dev
5 mins ago





@Downvoters please let me know how I can improve the question

– soft dev
5 mins ago













Good question but a little too broad for this site format

– solarflare
5 mins ago





Good question but a little too broad for this site format

– solarflare
5 mins ago










0






active

oldest

votes











Your Answer








StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "423"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
noCode: true, onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});






soft dev is a new contributor. Be nice, and check out our Code of Conduct.










draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fworkplace.stackexchange.com%2fquestions%2f132435%2fprofessionalism-protecting-code-quality%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes








soft dev is a new contributor. Be nice, and check out our Code of Conduct.










draft saved

draft discarded


















soft dev is a new contributor. Be nice, and check out our Code of Conduct.













soft dev is a new contributor. Be nice, and check out our Code of Conduct.












soft dev is a new contributor. Be nice, and check out our Code of Conduct.
















Thanks for contributing an answer to The Workplace Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fworkplace.stackexchange.com%2fquestions%2f132435%2fprofessionalism-protecting-code-quality%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Bundesstraße 106

Verónica Boquete

Ida-Boy-Ed-Garten