Is it unavoidable taking shortcuts in software development sometimes?How, as an intern or summer student, do you deal with a situation where you are denied opportunities because of your temporary status?Returning a favor for the bossHow to cope with a “UX Expert” who has no experience?How to address a manager frequently losing their temperSudden shift in manager's behaviourNo feedback and not included in any project meetingsSupervisor putting me to impossible deadline, ignoring feasibility warnings, and failing to deal with the fallout

What makes an ending "happy"?

How invisible hand adjusts stock prices if company is listed on multiple exchanges, under multiple currencies, and one of the currencies plunges?

How can I return only the number of paired values in array?

Can you mark a new target with the Hunter's Mark spell if the original target shifts to a different plane?

Capacitors with same voltage, same capacitance, same temp, different diameter?

After a few interviews, What should I do after told to wait?

More than three domains hosted on the same IP address

Distance faces never sharp/clear. Too picky?

How would two worlds first establish an exchange rate between their currencies

Lost & Found Mobile Telepone

Is mountain bike good for long distances?

How strong is aircraft-grade spruce?

Leaving the USA for 10 yrs when you have asylum

Are there any space probes or landers which regained communication after being lost?

Features seen on the Space Shuttle's solid booster; what does "LOADED" mean exactly?

Does the 2019 UA artificer need to prepare the Lesser Restoration spell to cast it with their Alchemical Mastery feature?

How there are 3 possible tautomers of 2,2,4-trimethylheptane-3,5-dione?

Bacteria vats to generate edible biomass, require intermediary species?

Stack class in Java8

When calculating averages, why can we treat exploding die as if they're independent?

Are professors obligated to accept supervisory role? If not, how does it work?

2 load centers under 1 meter: do you need bonding and main breakers at both?

Why would an AC motor heavily shake when driven with certain frequencies?

How to set any file manager in Linux to show the duration like the Length feature in Windows Explorer?



Is it unavoidable taking shortcuts in software development sometimes?


How, as an intern or summer student, do you deal with a situation where you are denied opportunities because of your temporary status?Returning a favor for the bossHow to cope with a “UX Expert” who has no experience?How to address a manager frequently losing their temperSudden shift in manager's behaviourNo feedback and not included in any project meetingsSupervisor putting me to impossible deadline, ignoring feasibility warnings, and failing to deal with the fallout






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








2















In my experience as software developer I found work situations where you have to deliver a project in a very short time and with a very small number of resources (included team members). Your boss doesn't really care and understand importance of testing (especially automated) and other quality aspects (or he may understand the importance of those, but may be he is being pushed by his manager to ignore it). Apart from "quitting the job", which actions would you take? shortcuts and which ones? other?










share|improve this question









New contributor



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





















  • The boss may understand the importance of testing, but may be he is being pushed by his manager to ignore it...

    – Solar Mike
    8 hours ago











  • true, that is a possible situation. Let me edit the question.

    – Randomize
    8 hours ago






  • 2





    "Apart from "quitting the job", which actions would you take?" - I would learn that in the real world it's important to determine what "good enough" is, and work towards that.

    – Joe Strazzere
    5 hours ago






  • 3





    Don't think of them as shortcuts, think of them as compromises. The best action you can take is understanding that architectural purity is often sacrificed at the altar of meeting the project's requirements.

    – Blrfl
    2 hours ago











  • Well, it all adds up as technical debt right? Sending emails and leaving a paper trail how this might adversly affect the product, or future releases is very important. This way when this comes to bite the project in the ass later, you can forward all the emails you saved to justify the future issues.

    – Issel
    41 mins ago

















2















In my experience as software developer I found work situations where you have to deliver a project in a very short time and with a very small number of resources (included team members). Your boss doesn't really care and understand importance of testing (especially automated) and other quality aspects (or he may understand the importance of those, but may be he is being pushed by his manager to ignore it). Apart from "quitting the job", which actions would you take? shortcuts and which ones? other?










share|improve this question









New contributor



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





















  • The boss may understand the importance of testing, but may be he is being pushed by his manager to ignore it...

    – Solar Mike
    8 hours ago











  • true, that is a possible situation. Let me edit the question.

    – Randomize
    8 hours ago






  • 2





    "Apart from "quitting the job", which actions would you take?" - I would learn that in the real world it's important to determine what "good enough" is, and work towards that.

    – Joe Strazzere
    5 hours ago






  • 3





    Don't think of them as shortcuts, think of them as compromises. The best action you can take is understanding that architectural purity is often sacrificed at the altar of meeting the project's requirements.

    – Blrfl
    2 hours ago











  • Well, it all adds up as technical debt right? Sending emails and leaving a paper trail how this might adversly affect the product, or future releases is very important. This way when this comes to bite the project in the ass later, you can forward all the emails you saved to justify the future issues.

    – Issel
    41 mins ago













2












2








2








In my experience as software developer I found work situations where you have to deliver a project in a very short time and with a very small number of resources (included team members). Your boss doesn't really care and understand importance of testing (especially automated) and other quality aspects (or he may understand the importance of those, but may be he is being pushed by his manager to ignore it). Apart from "quitting the job", which actions would you take? shortcuts and which ones? other?










share|improve this question









New contributor



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











In my experience as software developer I found work situations where you have to deliver a project in a very short time and with a very small number of resources (included team members). Your boss doesn't really care and understand importance of testing (especially automated) and other quality aspects (or he may understand the importance of those, but may be he is being pushed by his manager to ignore it). Apart from "quitting the job", which actions would you take? shortcuts and which ones? other?







management software-development






share|improve this question









New contributor



Randomize 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



Randomize 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








edited 7 hours ago







Randomize













New contributor



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








asked 8 hours ago









RandomizeRandomize

1174 bronze badges




1174 bronze badges




New contributor



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




New contributor




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

















  • The boss may understand the importance of testing, but may be he is being pushed by his manager to ignore it...

    – Solar Mike
    8 hours ago











  • true, that is a possible situation. Let me edit the question.

    – Randomize
    8 hours ago






  • 2





    "Apart from "quitting the job", which actions would you take?" - I would learn that in the real world it's important to determine what "good enough" is, and work towards that.

    – Joe Strazzere
    5 hours ago






  • 3





    Don't think of them as shortcuts, think of them as compromises. The best action you can take is understanding that architectural purity is often sacrificed at the altar of meeting the project's requirements.

    – Blrfl
    2 hours ago











  • Well, it all adds up as technical debt right? Sending emails and leaving a paper trail how this might adversly affect the product, or future releases is very important. This way when this comes to bite the project in the ass later, you can forward all the emails you saved to justify the future issues.

    – Issel
    41 mins ago

















  • The boss may understand the importance of testing, but may be he is being pushed by his manager to ignore it...

    – Solar Mike
    8 hours ago











  • true, that is a possible situation. Let me edit the question.

    – Randomize
    8 hours ago






  • 2





    "Apart from "quitting the job", which actions would you take?" - I would learn that in the real world it's important to determine what "good enough" is, and work towards that.

    – Joe Strazzere
    5 hours ago






  • 3





    Don't think of them as shortcuts, think of them as compromises. The best action you can take is understanding that architectural purity is often sacrificed at the altar of meeting the project's requirements.

    – Blrfl
    2 hours ago











  • Well, it all adds up as technical debt right? Sending emails and leaving a paper trail how this might adversly affect the product, or future releases is very important. This way when this comes to bite the project in the ass later, you can forward all the emails you saved to justify the future issues.

    – Issel
    41 mins ago
















The boss may understand the importance of testing, but may be he is being pushed by his manager to ignore it...

– Solar Mike
8 hours ago





The boss may understand the importance of testing, but may be he is being pushed by his manager to ignore it...

– Solar Mike
8 hours ago













true, that is a possible situation. Let me edit the question.

– Randomize
8 hours ago





true, that is a possible situation. Let me edit the question.

– Randomize
8 hours ago




2




2





"Apart from "quitting the job", which actions would you take?" - I would learn that in the real world it's important to determine what "good enough" is, and work towards that.

– Joe Strazzere
5 hours ago





"Apart from "quitting the job", which actions would you take?" - I would learn that in the real world it's important to determine what "good enough" is, and work towards that.

– Joe Strazzere
5 hours ago




3




3





Don't think of them as shortcuts, think of them as compromises. The best action you can take is understanding that architectural purity is often sacrificed at the altar of meeting the project's requirements.

– Blrfl
2 hours ago





Don't think of them as shortcuts, think of them as compromises. The best action you can take is understanding that architectural purity is often sacrificed at the altar of meeting the project's requirements.

– Blrfl
2 hours ago













Well, it all adds up as technical debt right? Sending emails and leaving a paper trail how this might adversly affect the product, or future releases is very important. This way when this comes to bite the project in the ass later, you can forward all the emails you saved to justify the future issues.

– Issel
41 mins ago





Well, it all adds up as technical debt right? Sending emails and leaving a paper trail how this might adversly affect the product, or future releases is very important. This way when this comes to bite the project in the ass later, you can forward all the emails you saved to justify the future issues.

– Issel
41 mins ago










4 Answers
4






active

oldest

votes


















17
















Yes, the real world is a lot different to what you are taught at university.



When you work for a business, the job is to make a profit, not deliver software according to an idealised software development process. A lot of the time these things overlap, but not always.



It is perfectly legitimate to "cut corners" from time to time.



While you may lament that you boss doesn't understand the importance of software testing, he may lament that you are unaware of the business pressures that impact the business that mean things need to be shipped without automated testing. I don't think it's fair to categorize your boss as ignoring the importance of testing, he obviously just assigns it a different degree of importance to you.



Your role in this situation is to highlight the risks associated with not having automated testing to your manager, and allow them to make a judgement call with all information.



(Of course, this answer will get lots of down-votes, because the mere suggestion that software quality isn't the only factor that is important to a business offends the sensibilities of a lot of people.)






share|improve this answer




















  • 1





    yes, in pragmatic terms cutting corners especially with deadlines is necessary from a business perspective.

    – Kilisi
    8 hours ago







  • 1





    To add, testing != automated testing. If extensive refactoring of an existing code base would be needed to automate tests, your boss may (maybe reasonably) prefer a different approach.

    – Joe Stevens
    6 hours ago






  • 2





    "Cutting Corners" is a pragmatic approach, but will result in technical debt and added costs as illustrated by this excellent Steve McConnell article - stevemcconnell.com/articles/upstream-decisions-downstream-costs. The salient point here is the "sails diagram" about halfway down the page which I have frequently used to educate senior management.

    – Justin
    6 hours ago











  • @Justin that comment with the diagram would make a good answer...

    – Solar Mike
    5 hours ago






  • 1





    @Justin I think you are missing my point in that sometimes incurring technical debt is favourable to delays or reduction in scope.

    – Gregory Currie
    4 hours ago


















6
















Software development is about managing risk in unknown or uncertain environments while frequently doing novel work. Making tradeoffs about time, scope, and quality happen all the time. The important thing to do is to help stakeholders understand the impact of their decisions on the project. To me, responses of "quit the job" or "blow the whistle" would be reserved for cases where the decisions made for the project would have severe consequences for life and safety, privacy or confidentiality, security, or some other 'critical factor' (which would vary depending on what you are building).



Unfortunately, there are no best practices or algorithms for making these decisions. Learning comes with time and experience. You can study the experiences of others, but the best experiences are yours and working through these trade-offs with your colleagues to understand the rationale for the decision making process. Decisions like this are highly context-sensitive.






share|improve this answer
































    3
















    Yes, tech debt is a perfectly valid desicion in many cases; just like taking out real debt is a valid business decision in many cases to advance the business goals. (We'll make $$$ if we had $ capital to invest in the business, so getting a loan for $ and paying $$ back still puts us ahead in the long run)



    But in my opinion skipping automated tests is never a good loan to take. The time saved is often used up, not in years or months, but weeks. (And it gets exponentially harder to pay down) Unless the due date is today, don't skip tests, it won't be worth it.



    This is one reason to follow TDD IMHO. Because we are then never in a situation where we can say a feature is "done" but "still needs to be tested". Its just too tempting for a non technical manager to lop off the tests and call it done. They now only have the much better options of cutting scope, rescheduling delivery, or when really necessary using other types of tech debt (abusing state management, skipping robust architectures, etc.)






    share|improve this answer
































      1
















      What actions to take: The first is to explain to your manager what cost the shortcut is likely to make to the company. Worst case the shortcut means endangering and possibly killing people. Most harmless case is that you fix the problem next week and no harm is done. Your manager needs to know what it is to make an educated decision.



      The next action is to take steps that "fix" the shortcut if needed. Sometimes it's not needed. Sometimes you write software for a single use, and it either works or it doesn't, and you can see whether it worked. In that case, if the software worked, then it doesn't matter what shortcuts you took.



      Sometimes shortcuts are justified. Say you are the only developer, and software must be ready at date X. If you are ready at date X, the company makes a lot of money, enough to hire two more developers. If you are not ready at date X, the company makes no money and you lose your job. Clearly you take the shortcut. If everything works fine, the two extra developers can more than clean up all the mess that was created to be fast.



      What is good is if you can educate your manager that if your software is in a good state, then you can take shortcuts sometimes. You may be able to do a job that should take four weeks in one week (but now the software is all messed up). But you can do that only once, then you need to spend three weeks to clean up. If you don't clean up, then the next four weeks worth of work either takes seven weeks including cleanup, or four weeks leaving even more mess, and after that you are in trouble.






      share|improve this answer



























        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/4.0/"u003ecc by-sa 4.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
        allowUrls: true
        ,
        noCode: true, onDemand: false,
        discardSelector: ".discard-answer"
        ,immediatelyShowMarkdownHelp:true
        );



        );







        Randomize 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%2f143651%2fis-it-unavoidable-taking-shortcuts-in-software-development-sometimes%23new-answer', 'question_page');

        );

        Post as a guest















        Required, but never shown




















        StackExchange.ready(function ()
        $("#show-editor-button input, #show-editor-button button").click(function ()
        var showEditor = function ()
        $("#show-editor-button").addClass("d-none");
        $("#post-form").removeClass("d-none");
        StackExchange.editor.finallyInit();
        ;

        var useFancy = $(this).data('confirm-use-fancy');
        if (useFancy == 'True')
        var popupTitle = $(this).data('confirm-fancy-title');
        var popupBody = $(this).data('confirm-fancy-body');
        var popupAccept = $(this).data('confirm-fancy-accept-button');

        $(this).loadPopup(
        url: '/post/self-answer-popup',
        loaded: function (popup)
        var pTitle = $(popup).find('h2');
        var pBody = $(popup).find('.popup-body');
        var pSubmit = $(popup).find('.popup-submit');

        pTitle.text(popupTitle);
        pBody.html(popupBody);
        pSubmit.val(popupAccept).click(showEditor);

        )
        else
        var confirmText = $(this).data('confirm-text');
        if (confirmText ? confirm(confirmText) : true)
        showEditor();


        );
        );






        4 Answers
        4






        active

        oldest

        votes








        4 Answers
        4






        active

        oldest

        votes









        active

        oldest

        votes






        active

        oldest

        votes









        17
















        Yes, the real world is a lot different to what you are taught at university.



        When you work for a business, the job is to make a profit, not deliver software according to an idealised software development process. A lot of the time these things overlap, but not always.



        It is perfectly legitimate to "cut corners" from time to time.



        While you may lament that you boss doesn't understand the importance of software testing, he may lament that you are unaware of the business pressures that impact the business that mean things need to be shipped without automated testing. I don't think it's fair to categorize your boss as ignoring the importance of testing, he obviously just assigns it a different degree of importance to you.



        Your role in this situation is to highlight the risks associated with not having automated testing to your manager, and allow them to make a judgement call with all information.



        (Of course, this answer will get lots of down-votes, because the mere suggestion that software quality isn't the only factor that is important to a business offends the sensibilities of a lot of people.)






        share|improve this answer




















        • 1





          yes, in pragmatic terms cutting corners especially with deadlines is necessary from a business perspective.

          – Kilisi
          8 hours ago







        • 1





          To add, testing != automated testing. If extensive refactoring of an existing code base would be needed to automate tests, your boss may (maybe reasonably) prefer a different approach.

          – Joe Stevens
          6 hours ago






        • 2





          "Cutting Corners" is a pragmatic approach, but will result in technical debt and added costs as illustrated by this excellent Steve McConnell article - stevemcconnell.com/articles/upstream-decisions-downstream-costs. The salient point here is the "sails diagram" about halfway down the page which I have frequently used to educate senior management.

          – Justin
          6 hours ago











        • @Justin that comment with the diagram would make a good answer...

          – Solar Mike
          5 hours ago






        • 1





          @Justin I think you are missing my point in that sometimes incurring technical debt is favourable to delays or reduction in scope.

          – Gregory Currie
          4 hours ago















        17
















        Yes, the real world is a lot different to what you are taught at university.



        When you work for a business, the job is to make a profit, not deliver software according to an idealised software development process. A lot of the time these things overlap, but not always.



        It is perfectly legitimate to "cut corners" from time to time.



        While you may lament that you boss doesn't understand the importance of software testing, he may lament that you are unaware of the business pressures that impact the business that mean things need to be shipped without automated testing. I don't think it's fair to categorize your boss as ignoring the importance of testing, he obviously just assigns it a different degree of importance to you.



        Your role in this situation is to highlight the risks associated with not having automated testing to your manager, and allow them to make a judgement call with all information.



        (Of course, this answer will get lots of down-votes, because the mere suggestion that software quality isn't the only factor that is important to a business offends the sensibilities of a lot of people.)






        share|improve this answer




















        • 1





          yes, in pragmatic terms cutting corners especially with deadlines is necessary from a business perspective.

          – Kilisi
          8 hours ago







        • 1





          To add, testing != automated testing. If extensive refactoring of an existing code base would be needed to automate tests, your boss may (maybe reasonably) prefer a different approach.

          – Joe Stevens
          6 hours ago






        • 2





          "Cutting Corners" is a pragmatic approach, but will result in technical debt and added costs as illustrated by this excellent Steve McConnell article - stevemcconnell.com/articles/upstream-decisions-downstream-costs. The salient point here is the "sails diagram" about halfway down the page which I have frequently used to educate senior management.

          – Justin
          6 hours ago











        • @Justin that comment with the diagram would make a good answer...

          – Solar Mike
          5 hours ago






        • 1





          @Justin I think you are missing my point in that sometimes incurring technical debt is favourable to delays or reduction in scope.

          – Gregory Currie
          4 hours ago













        17














        17










        17









        Yes, the real world is a lot different to what you are taught at university.



        When you work for a business, the job is to make a profit, not deliver software according to an idealised software development process. A lot of the time these things overlap, but not always.



        It is perfectly legitimate to "cut corners" from time to time.



        While you may lament that you boss doesn't understand the importance of software testing, he may lament that you are unaware of the business pressures that impact the business that mean things need to be shipped without automated testing. I don't think it's fair to categorize your boss as ignoring the importance of testing, he obviously just assigns it a different degree of importance to you.



        Your role in this situation is to highlight the risks associated with not having automated testing to your manager, and allow them to make a judgement call with all information.



        (Of course, this answer will get lots of down-votes, because the mere suggestion that software quality isn't the only factor that is important to a business offends the sensibilities of a lot of people.)






        share|improve this answer













        Yes, the real world is a lot different to what you are taught at university.



        When you work for a business, the job is to make a profit, not deliver software according to an idealised software development process. A lot of the time these things overlap, but not always.



        It is perfectly legitimate to "cut corners" from time to time.



        While you may lament that you boss doesn't understand the importance of software testing, he may lament that you are unaware of the business pressures that impact the business that mean things need to be shipped without automated testing. I don't think it's fair to categorize your boss as ignoring the importance of testing, he obviously just assigns it a different degree of importance to you.



        Your role in this situation is to highlight the risks associated with not having automated testing to your manager, and allow them to make a judgement call with all information.



        (Of course, this answer will get lots of down-votes, because the mere suggestion that software quality isn't the only factor that is important to a business offends the sensibilities of a lot of people.)







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered 8 hours ago









        Gregory CurrieGregory Currie

        15.4k11 gold badges59 silver badges78 bronze badges




        15.4k11 gold badges59 silver badges78 bronze badges










        • 1





          yes, in pragmatic terms cutting corners especially with deadlines is necessary from a business perspective.

          – Kilisi
          8 hours ago







        • 1





          To add, testing != automated testing. If extensive refactoring of an existing code base would be needed to automate tests, your boss may (maybe reasonably) prefer a different approach.

          – Joe Stevens
          6 hours ago






        • 2





          "Cutting Corners" is a pragmatic approach, but will result in technical debt and added costs as illustrated by this excellent Steve McConnell article - stevemcconnell.com/articles/upstream-decisions-downstream-costs. The salient point here is the "sails diagram" about halfway down the page which I have frequently used to educate senior management.

          – Justin
          6 hours ago











        • @Justin that comment with the diagram would make a good answer...

          – Solar Mike
          5 hours ago






        • 1





          @Justin I think you are missing my point in that sometimes incurring technical debt is favourable to delays or reduction in scope.

          – Gregory Currie
          4 hours ago












        • 1





          yes, in pragmatic terms cutting corners especially with deadlines is necessary from a business perspective.

          – Kilisi
          8 hours ago







        • 1





          To add, testing != automated testing. If extensive refactoring of an existing code base would be needed to automate tests, your boss may (maybe reasonably) prefer a different approach.

          – Joe Stevens
          6 hours ago






        • 2





          "Cutting Corners" is a pragmatic approach, but will result in technical debt and added costs as illustrated by this excellent Steve McConnell article - stevemcconnell.com/articles/upstream-decisions-downstream-costs. The salient point here is the "sails diagram" about halfway down the page which I have frequently used to educate senior management.

          – Justin
          6 hours ago











        • @Justin that comment with the diagram would make a good answer...

          – Solar Mike
          5 hours ago






        • 1





          @Justin I think you are missing my point in that sometimes incurring technical debt is favourable to delays or reduction in scope.

          – Gregory Currie
          4 hours ago







        1




        1





        yes, in pragmatic terms cutting corners especially with deadlines is necessary from a business perspective.

        – Kilisi
        8 hours ago






        yes, in pragmatic terms cutting corners especially with deadlines is necessary from a business perspective.

        – Kilisi
        8 hours ago





        1




        1





        To add, testing != automated testing. If extensive refactoring of an existing code base would be needed to automate tests, your boss may (maybe reasonably) prefer a different approach.

        – Joe Stevens
        6 hours ago





        To add, testing != automated testing. If extensive refactoring of an existing code base would be needed to automate tests, your boss may (maybe reasonably) prefer a different approach.

        – Joe Stevens
        6 hours ago




        2




        2





        "Cutting Corners" is a pragmatic approach, but will result in technical debt and added costs as illustrated by this excellent Steve McConnell article - stevemcconnell.com/articles/upstream-decisions-downstream-costs. The salient point here is the "sails diagram" about halfway down the page which I have frequently used to educate senior management.

        – Justin
        6 hours ago





        "Cutting Corners" is a pragmatic approach, but will result in technical debt and added costs as illustrated by this excellent Steve McConnell article - stevemcconnell.com/articles/upstream-decisions-downstream-costs. The salient point here is the "sails diagram" about halfway down the page which I have frequently used to educate senior management.

        – Justin
        6 hours ago













        @Justin that comment with the diagram would make a good answer...

        – Solar Mike
        5 hours ago





        @Justin that comment with the diagram would make a good answer...

        – Solar Mike
        5 hours ago




        1




        1





        @Justin I think you are missing my point in that sometimes incurring technical debt is favourable to delays or reduction in scope.

        – Gregory Currie
        4 hours ago





        @Justin I think you are missing my point in that sometimes incurring technical debt is favourable to delays or reduction in scope.

        – Gregory Currie
        4 hours ago













        6
















        Software development is about managing risk in unknown or uncertain environments while frequently doing novel work. Making tradeoffs about time, scope, and quality happen all the time. The important thing to do is to help stakeholders understand the impact of their decisions on the project. To me, responses of "quit the job" or "blow the whistle" would be reserved for cases where the decisions made for the project would have severe consequences for life and safety, privacy or confidentiality, security, or some other 'critical factor' (which would vary depending on what you are building).



        Unfortunately, there are no best practices or algorithms for making these decisions. Learning comes with time and experience. You can study the experiences of others, but the best experiences are yours and working through these trade-offs with your colleagues to understand the rationale for the decision making process. Decisions like this are highly context-sensitive.






        share|improve this answer





























          6
















          Software development is about managing risk in unknown or uncertain environments while frequently doing novel work. Making tradeoffs about time, scope, and quality happen all the time. The important thing to do is to help stakeholders understand the impact of their decisions on the project. To me, responses of "quit the job" or "blow the whistle" would be reserved for cases where the decisions made for the project would have severe consequences for life and safety, privacy or confidentiality, security, or some other 'critical factor' (which would vary depending on what you are building).



          Unfortunately, there are no best practices or algorithms for making these decisions. Learning comes with time and experience. You can study the experiences of others, but the best experiences are yours and working through these trade-offs with your colleagues to understand the rationale for the decision making process. Decisions like this are highly context-sensitive.






          share|improve this answer



























            6














            6










            6









            Software development is about managing risk in unknown or uncertain environments while frequently doing novel work. Making tradeoffs about time, scope, and quality happen all the time. The important thing to do is to help stakeholders understand the impact of their decisions on the project. To me, responses of "quit the job" or "blow the whistle" would be reserved for cases where the decisions made for the project would have severe consequences for life and safety, privacy or confidentiality, security, or some other 'critical factor' (which would vary depending on what you are building).



            Unfortunately, there are no best practices or algorithms for making these decisions. Learning comes with time and experience. You can study the experiences of others, but the best experiences are yours and working through these trade-offs with your colleagues to understand the rationale for the decision making process. Decisions like this are highly context-sensitive.






            share|improve this answer













            Software development is about managing risk in unknown or uncertain environments while frequently doing novel work. Making tradeoffs about time, scope, and quality happen all the time. The important thing to do is to help stakeholders understand the impact of their decisions on the project. To me, responses of "quit the job" or "blow the whistle" would be reserved for cases where the decisions made for the project would have severe consequences for life and safety, privacy or confidentiality, security, or some other 'critical factor' (which would vary depending on what you are building).



            Unfortunately, there are no best practices or algorithms for making these decisions. Learning comes with time and experience. You can study the experiences of others, but the best experiences are yours and working through these trade-offs with your colleagues to understand the rationale for the decision making process. Decisions like this are highly context-sensitive.







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered 6 hours ago









            Thomas OwensThomas Owens

            14.7k5 gold badges57 silver badges76 bronze badges




            14.7k5 gold badges57 silver badges76 bronze badges
























                3
















                Yes, tech debt is a perfectly valid desicion in many cases; just like taking out real debt is a valid business decision in many cases to advance the business goals. (We'll make $$$ if we had $ capital to invest in the business, so getting a loan for $ and paying $$ back still puts us ahead in the long run)



                But in my opinion skipping automated tests is never a good loan to take. The time saved is often used up, not in years or months, but weeks. (And it gets exponentially harder to pay down) Unless the due date is today, don't skip tests, it won't be worth it.



                This is one reason to follow TDD IMHO. Because we are then never in a situation where we can say a feature is "done" but "still needs to be tested". Its just too tempting for a non technical manager to lop off the tests and call it done. They now only have the much better options of cutting scope, rescheduling delivery, or when really necessary using other types of tech debt (abusing state management, skipping robust architectures, etc.)






                share|improve this answer





























                  3
















                  Yes, tech debt is a perfectly valid desicion in many cases; just like taking out real debt is a valid business decision in many cases to advance the business goals. (We'll make $$$ if we had $ capital to invest in the business, so getting a loan for $ and paying $$ back still puts us ahead in the long run)



                  But in my opinion skipping automated tests is never a good loan to take. The time saved is often used up, not in years or months, but weeks. (And it gets exponentially harder to pay down) Unless the due date is today, don't skip tests, it won't be worth it.



                  This is one reason to follow TDD IMHO. Because we are then never in a situation where we can say a feature is "done" but "still needs to be tested". Its just too tempting for a non technical manager to lop off the tests and call it done. They now only have the much better options of cutting scope, rescheduling delivery, or when really necessary using other types of tech debt (abusing state management, skipping robust architectures, etc.)






                  share|improve this answer



























                    3














                    3










                    3









                    Yes, tech debt is a perfectly valid desicion in many cases; just like taking out real debt is a valid business decision in many cases to advance the business goals. (We'll make $$$ if we had $ capital to invest in the business, so getting a loan for $ and paying $$ back still puts us ahead in the long run)



                    But in my opinion skipping automated tests is never a good loan to take. The time saved is often used up, not in years or months, but weeks. (And it gets exponentially harder to pay down) Unless the due date is today, don't skip tests, it won't be worth it.



                    This is one reason to follow TDD IMHO. Because we are then never in a situation where we can say a feature is "done" but "still needs to be tested". Its just too tempting for a non technical manager to lop off the tests and call it done. They now only have the much better options of cutting scope, rescheduling delivery, or when really necessary using other types of tech debt (abusing state management, skipping robust architectures, etc.)






                    share|improve this answer













                    Yes, tech debt is a perfectly valid desicion in many cases; just like taking out real debt is a valid business decision in many cases to advance the business goals. (We'll make $$$ if we had $ capital to invest in the business, so getting a loan for $ and paying $$ back still puts us ahead in the long run)



                    But in my opinion skipping automated tests is never a good loan to take. The time saved is often used up, not in years or months, but weeks. (And it gets exponentially harder to pay down) Unless the due date is today, don't skip tests, it won't be worth it.



                    This is one reason to follow TDD IMHO. Because we are then never in a situation where we can say a feature is "done" but "still needs to be tested". Its just too tempting for a non technical manager to lop off the tests and call it done. They now only have the much better options of cutting scope, rescheduling delivery, or when really necessary using other types of tech debt (abusing state management, skipping robust architectures, etc.)







                    share|improve this answer












                    share|improve this answer



                    share|improve this answer










                    answered 4 hours ago









                    KallmanationKallmanation

                    1,3902 silver badges8 bronze badges




                    1,3902 silver badges8 bronze badges
























                        1
















                        What actions to take: The first is to explain to your manager what cost the shortcut is likely to make to the company. Worst case the shortcut means endangering and possibly killing people. Most harmless case is that you fix the problem next week and no harm is done. Your manager needs to know what it is to make an educated decision.



                        The next action is to take steps that "fix" the shortcut if needed. Sometimes it's not needed. Sometimes you write software for a single use, and it either works or it doesn't, and you can see whether it worked. In that case, if the software worked, then it doesn't matter what shortcuts you took.



                        Sometimes shortcuts are justified. Say you are the only developer, and software must be ready at date X. If you are ready at date X, the company makes a lot of money, enough to hire two more developers. If you are not ready at date X, the company makes no money and you lose your job. Clearly you take the shortcut. If everything works fine, the two extra developers can more than clean up all the mess that was created to be fast.



                        What is good is if you can educate your manager that if your software is in a good state, then you can take shortcuts sometimes. You may be able to do a job that should take four weeks in one week (but now the software is all messed up). But you can do that only once, then you need to spend three weeks to clean up. If you don't clean up, then the next four weeks worth of work either takes seven weeks including cleanup, or four weeks leaving even more mess, and after that you are in trouble.






                        share|improve this answer





























                          1
















                          What actions to take: The first is to explain to your manager what cost the shortcut is likely to make to the company. Worst case the shortcut means endangering and possibly killing people. Most harmless case is that you fix the problem next week and no harm is done. Your manager needs to know what it is to make an educated decision.



                          The next action is to take steps that "fix" the shortcut if needed. Sometimes it's not needed. Sometimes you write software for a single use, and it either works or it doesn't, and you can see whether it worked. In that case, if the software worked, then it doesn't matter what shortcuts you took.



                          Sometimes shortcuts are justified. Say you are the only developer, and software must be ready at date X. If you are ready at date X, the company makes a lot of money, enough to hire two more developers. If you are not ready at date X, the company makes no money and you lose your job. Clearly you take the shortcut. If everything works fine, the two extra developers can more than clean up all the mess that was created to be fast.



                          What is good is if you can educate your manager that if your software is in a good state, then you can take shortcuts sometimes. You may be able to do a job that should take four weeks in one week (but now the software is all messed up). But you can do that only once, then you need to spend three weeks to clean up. If you don't clean up, then the next four weeks worth of work either takes seven weeks including cleanup, or four weeks leaving even more mess, and after that you are in trouble.






                          share|improve this answer



























                            1














                            1










                            1









                            What actions to take: The first is to explain to your manager what cost the shortcut is likely to make to the company. Worst case the shortcut means endangering and possibly killing people. Most harmless case is that you fix the problem next week and no harm is done. Your manager needs to know what it is to make an educated decision.



                            The next action is to take steps that "fix" the shortcut if needed. Sometimes it's not needed. Sometimes you write software for a single use, and it either works or it doesn't, and you can see whether it worked. In that case, if the software worked, then it doesn't matter what shortcuts you took.



                            Sometimes shortcuts are justified. Say you are the only developer, and software must be ready at date X. If you are ready at date X, the company makes a lot of money, enough to hire two more developers. If you are not ready at date X, the company makes no money and you lose your job. Clearly you take the shortcut. If everything works fine, the two extra developers can more than clean up all the mess that was created to be fast.



                            What is good is if you can educate your manager that if your software is in a good state, then you can take shortcuts sometimes. You may be able to do a job that should take four weeks in one week (but now the software is all messed up). But you can do that only once, then you need to spend three weeks to clean up. If you don't clean up, then the next four weeks worth of work either takes seven weeks including cleanup, or four weeks leaving even more mess, and after that you are in trouble.






                            share|improve this answer













                            What actions to take: The first is to explain to your manager what cost the shortcut is likely to make to the company. Worst case the shortcut means endangering and possibly killing people. Most harmless case is that you fix the problem next week and no harm is done. Your manager needs to know what it is to make an educated decision.



                            The next action is to take steps that "fix" the shortcut if needed. Sometimes it's not needed. Sometimes you write software for a single use, and it either works or it doesn't, and you can see whether it worked. In that case, if the software worked, then it doesn't matter what shortcuts you took.



                            Sometimes shortcuts are justified. Say you are the only developer, and software must be ready at date X. If you are ready at date X, the company makes a lot of money, enough to hire two more developers. If you are not ready at date X, the company makes no money and you lose your job. Clearly you take the shortcut. If everything works fine, the two extra developers can more than clean up all the mess that was created to be fast.



                            What is good is if you can educate your manager that if your software is in a good state, then you can take shortcuts sometimes. You may be able to do a job that should take four weeks in one week (but now the software is all messed up). But you can do that only once, then you need to spend three weeks to clean up. If you don't clean up, then the next four weeks worth of work either takes seven weeks including cleanup, or four weeks leaving even more mess, and after that you are in trouble.







                            share|improve this answer












                            share|improve this answer



                            share|improve this answer










                            answered 2 hours ago









                            gnasher729gnasher729

                            102k48 gold badges184 silver badges323 bronze badges




                            102k48 gold badges184 silver badges323 bronze badges
























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









                                draft saved

                                draft discarded

















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












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











                                Randomize 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%2f143651%2fis-it-unavoidable-taking-shortcuts-in-software-development-sometimes%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

                                19. јануар Садржај Догађаји Рођења Смрти Празници и дани сећања Види још Референце Мени за навигацијуу

                                Israel Cuprins Etimologie | Istorie | Geografie | Politică | Demografie | Educație | Economie | Cultură | Note explicative | Note bibliografice | Bibliografie | Legături externe | Meniu de navigaresite web oficialfacebooktweeterGoogle+Instagramcanal YouTubeInstagramtextmodificaremodificarewww.technion.ac.ilnew.huji.ac.ilwww.weizmann.ac.ilwww1.biu.ac.ilenglish.tau.ac.ilwww.haifa.ac.ilin.bgu.ac.ilwww.openu.ac.ilwww.ariel.ac.ilCIA FactbookHarta Israelului"Negotiating Jerusalem," Palestine–Israel JournalThe Schizoid Nature of Modern Hebrew: A Slavic Language in Search of a Semitic Past„Arabic in Israel: an official language and a cultural bridge”„Latest Population Statistics for Israel”„Israel Population”„Tables”„Report for Selected Countries and Subjects”Human Development Report 2016: Human Development for Everyone„Distribution of family income - Gini index”The World FactbookJerusalem Law„Israel”„Israel”„Zionist Leaders: David Ben-Gurion 1886–1973”„The status of Jerusalem”„Analysis: Kadima's big plans”„Israel's Hard-Learned Lessons”„The Legacy of Undefined Borders, Tel Aviv Notes No. 40, 5 iunie 2002”„Israel Journal: A Land Without Borders”„Population”„Israel closes decade with population of 7.5 million”Time Series-DataBank„Selected Statistics on Jerusalem Day 2007 (Hebrew)”Golan belongs to Syria, Druze protestGlobal Survey 2006: Middle East Progress Amid Global Gains in FreedomWHO: Life expectancy in Israel among highest in the worldInternational Monetary Fund, World Economic Outlook Database, April 2011: Nominal GDP list of countries. Data for the year 2010.„Israel's accession to the OECD”Popular Opinion„On the Move”Hosea 12:5„Walking the Bible Timeline”„Palestine: History”„Return to Zion”An invention called 'the Jewish people' – Haaretz – Israel NewsoriginalJewish and Non-Jewish Population of Palestine-Israel (1517–2004)ImmigrationJewishvirtuallibrary.orgChapter One: The Heralders of Zionism„The birth of modern Israel: A scrap of paper that changed history”„League of Nations: The Mandate for Palestine, 24 iulie 1922”The Population of Palestine Prior to 1948originalBackground Paper No. 47 (ST/DPI/SER.A/47)History: Foreign DominationTwo Hundred and Seventh Plenary Meeting„Israel (Labor Zionism)”Population, by Religion and Population GroupThe Suez CrisisAdolf EichmannJustice Ministry Reply to Amnesty International Report„The Interregnum”Israel Ministry of Foreign Affairs – The Palestinian National Covenant- July 1968Research on terrorism: trends, achievements & failuresThe Routledge Atlas of the Arab–Israeli conflict: The Complete History of the Struggle and the Efforts to Resolve It"George Habash, Palestinian Terrorism Tactician, Dies at 82."„1973: Arab states attack Israeli forces”Agranat Commission„Has Israel Annexed East Jerusalem?”original„After 4 Years, Intifada Still Smolders”From the End of the Cold War to 2001originalThe Oslo Accords, 1993Israel-PLO Recognition – Exchange of Letters between PM Rabin and Chairman Arafat – Sept 9- 1993Foundation for Middle East PeaceSources of Population Growth: Total Israeli Population and Settler Population, 1991–2003original„Israel marks Rabin assassination”The Wye River Memorandumoriginal„West Bank barrier route disputed, Israeli missile kills 2”"Permanent Ceasefire to Be Based on Creation Of Buffer Zone Free of Armed Personnel Other than UN, Lebanese Forces"„Hezbollah kills 8 soldiers, kidnaps two in offensive on northern border”„Olmert confirms peace talks with Syria”„Battleground Gaza: Israeli ground forces invade the strip”„IDF begins Gaza troop withdrawal, hours after ending 3-week offensive”„THE LAND: Geography and Climate”„Area of districts, sub-districts, natural regions and lakes”„Israel - Geography”„Makhteshim Country”Israel and the Palestinian Territories„Makhtesh Ramon”„The Living Dead Sea”„Temperatures reach record high in Pakistan”„Climate Extremes In Israel”Israel in figures„Deuteronom”„JNF: 240 million trees planted since 1901”„Vegetation of Israel and Neighboring Countries”Environmental Law in Israel„Executive branch”„Israel's election process explained”„The Electoral System in Israel”„Constitution for Israel”„All 120 incoming Knesset members”„Statul ISRAEL”„The Judiciary: The Court System”„Israel's high court unique in region”„Israel and the International Criminal Court: A Legal Battlefield”„Localities and population, by population group, district, sub-district and natural region”„Israel: Districts, Major Cities, Urban Localities & Metropolitan Areas”„Israel-Egypt Relations: Background & Overview of Peace Treaty”„Solana to Haaretz: New Rules of War Needed for Age of Terror”„Israel's Announcement Regarding Settlements”„United Nations Security Council Resolution 497”„Security Council resolution 478 (1980) on the status of Jerusalem”„Arabs will ask U.N. to seek razing of Israeli wall”„Olmert: Willing to trade land for peace”„Mapping Peace between Syria and Israel”„Egypt: Israel must accept the land-for-peace formula”„Israel: Age structure from 2005 to 2015”„Global, regional, and national disability-adjusted life years (DALYs) for 306 diseases and injuries and healthy life expectancy (HALE) for 188 countries, 1990–2013: quantifying the epidemiological transition”10.1016/S0140-6736(15)61340-X„World Health Statistics 2014”„Life expectancy for Israeli men world's 4th highest”„Family Structure and Well-Being Across Israel's Diverse Population”„Fertility among Jewish and Muslim Women in Israel, by Level of Religiosity, 1979-2009”„Israel leaders in birth rate, but poverty major challenge”„Ethnic Groups”„Israel's population: Over 8.5 million”„Israel - Ethnic groups”„Jews, by country of origin and age”„Minority Communities in Israel: Background & Overview”„Israel”„Language in Israel”„Selected Data from the 2011 Social Survey on Mastery of the Hebrew Language and Usage of Languages”„Religions”„5 facts about Israeli Druze, a unique religious and ethnic group”„Israël”Israel Country Study Guide„Haredi city in Negev – blessing or curse?”„New town Harish harbors hopes of being more than another Pleasantville”„List of localities, in alphabetical order”„Muncitorii români, doriți în Israel”„Prietenia româno-israeliană la nevoie se cunoaște”„The Higher Education System in Israel”„Middle East”„Academic Ranking of World Universities 2016”„Israel”„Israel”„Jewish Nobel Prize Winners”„All Nobel Prizes in Literature”„All Nobel Peace Prizes”„All Prizes in Economic Sciences”„All Nobel Prizes in Chemistry”„List of Fields Medallists”„Sakharov Prize”„Țara care și-a sfidat "destinul" și se bate umăr la umăr cu Silicon Valley”„Apple's R&D center in Israel grew to about 800 employees”„Tim Cook: Apple's Herzliya R&D center second-largest in world”„Lecții de economie de la Israel”„Land use”Israel Investment and Business GuideA Country Study: IsraelCentral Bureau of StatisticsFlorin Diaconu, „Kadima: Flexibilitate și pragmatism, dar nici un compromis în chestiuni vitale", în Revista Institutului Diplomatic Român, anul I, numărul I, semestrul I, 2006, pp. 71-72Florin Diaconu, „Likud: Dreapta israeliană constant opusă retrocedării teritoriilor cureite prin luptă în 1967", în Revista Institutului Diplomatic Român, anul I, numărul I, semestrul I, 2006, pp. 73-74MassadaIsraelul a crescut in 50 de ani cât alte state intr-un mileniuIsrael Government PortalIsraelIsraelIsraelmmmmmXX451232cb118646298(data)4027808-634110000 0004 0372 0767n7900328503691455-bb46-37e3-91d2-cb064a35ffcc1003570400564274ge1294033523775214929302638955X146498911146498911

                                Smell Mother Skizze Discussion Tachometer Jar Alligator Star 끌다 자세 의문 과학적t Barbaric The round system critiques the connection. Definition: A wind instrument of music in use among the Spaniards Nasty Level 이상 분노 금년 월급 근교 Cloth Owner Permissible Shock Purring Parched Raise 오전 장면 햄 서투르다 The smash instructs the squeamish instrument. Large Nosy Nalpure Chalk Travel Crayon Bite your tongue The Hulk 신호 대사 사과하다 The work boosts the knowledgeable size. Steeplump Level Wooden Shake Teaching Jump 이제 복도 접다 공중전화 부지런하다 Rub Average Ruthless Busyglide Glost oven Didelphia Control A fly on the wall Jaws 지하철 거