How should a junior dev handle critical decisions as a sole developer on a large project?












4















I am a 2 year experienced web developer, I mainly worked on backend stuff (API,java logic , etc etc), and I work as a consultant.



Since 2 months I was sent to a company to work on their front-end using some framework that I'm not a complete newbie at, but basically not an expert.



Project is large, but I estimate my code is at 'junior' level.



Here comes the problem, as long as I am the only front-end dev in this group, all critical decision on this project are deferred to me (choosing a pattern of code, instantiate new libraries or importing some code from external resource or so on).



As I said before, code is not difficult, but I feel that these kind of decision are too important to be deferred to a junior of this framework, due to the software is very big and handle sensitive data of a big company.



Note that I already talked to my boss, and he basically told me "just work as you want and as you wish, but the project must be ready at date XXX"



My fear is that I can product code that works NOW, but TOMORROW will have bugs or so on due to my lack of experience, and as a consultant, I'll leave a bad reputation beside me.



How do I handle this situation? What should I do?










share|improve this question

























  • Having you tried telling them you don't feel comfortable making those decisions?

    – SaggingRufus
    Sep 5 '17 at 10:27











  • as a wrote in the question, this was the response : just work as you want and as you wish, but the project must be ready at date XXX

    – Anon
    Sep 5 '17 at 10:34











  • Ask if there are some senior in your company that you can get some advices too. I have personnaly tryed once to make someone more expert to check all my decision, but ofc that never happened.

    – Walfrat
    Sep 5 '17 at 10:46













  • I'm not sure why you think decisions regarding front-end frameworks/libraries are that important? Obviously if you're the only front-end dev in the group, you're going to be maintaining it, and you might as well pick something you're comfortable with

    – Daniel
    Sep 5 '17 at 10:48













  • @Daniel that would be true if i was not a consultant, with all the probability, i'll leave this client in 2 months

    – Anon
    Sep 5 '17 at 10:49
















4















I am a 2 year experienced web developer, I mainly worked on backend stuff (API,java logic , etc etc), and I work as a consultant.



Since 2 months I was sent to a company to work on their front-end using some framework that I'm not a complete newbie at, but basically not an expert.



Project is large, but I estimate my code is at 'junior' level.



Here comes the problem, as long as I am the only front-end dev in this group, all critical decision on this project are deferred to me (choosing a pattern of code, instantiate new libraries or importing some code from external resource or so on).



As I said before, code is not difficult, but I feel that these kind of decision are too important to be deferred to a junior of this framework, due to the software is very big and handle sensitive data of a big company.



Note that I already talked to my boss, and he basically told me "just work as you want and as you wish, but the project must be ready at date XXX"



My fear is that I can product code that works NOW, but TOMORROW will have bugs or so on due to my lack of experience, and as a consultant, I'll leave a bad reputation beside me.



How do I handle this situation? What should I do?










share|improve this question

























  • Having you tried telling them you don't feel comfortable making those decisions?

    – SaggingRufus
    Sep 5 '17 at 10:27











  • as a wrote in the question, this was the response : just work as you want and as you wish, but the project must be ready at date XXX

    – Anon
    Sep 5 '17 at 10:34











  • Ask if there are some senior in your company that you can get some advices too. I have personnaly tryed once to make someone more expert to check all my decision, but ofc that never happened.

    – Walfrat
    Sep 5 '17 at 10:46













  • I'm not sure why you think decisions regarding front-end frameworks/libraries are that important? Obviously if you're the only front-end dev in the group, you're going to be maintaining it, and you might as well pick something you're comfortable with

    – Daniel
    Sep 5 '17 at 10:48













  • @Daniel that would be true if i was not a consultant, with all the probability, i'll leave this client in 2 months

    – Anon
    Sep 5 '17 at 10:49














4












4








4








I am a 2 year experienced web developer, I mainly worked on backend stuff (API,java logic , etc etc), and I work as a consultant.



Since 2 months I was sent to a company to work on their front-end using some framework that I'm not a complete newbie at, but basically not an expert.



Project is large, but I estimate my code is at 'junior' level.



Here comes the problem, as long as I am the only front-end dev in this group, all critical decision on this project are deferred to me (choosing a pattern of code, instantiate new libraries or importing some code from external resource or so on).



As I said before, code is not difficult, but I feel that these kind of decision are too important to be deferred to a junior of this framework, due to the software is very big and handle sensitive data of a big company.



Note that I already talked to my boss, and he basically told me "just work as you want and as you wish, but the project must be ready at date XXX"



My fear is that I can product code that works NOW, but TOMORROW will have bugs or so on due to my lack of experience, and as a consultant, I'll leave a bad reputation beside me.



How do I handle this situation? What should I do?










share|improve this question
















I am a 2 year experienced web developer, I mainly worked on backend stuff (API,java logic , etc etc), and I work as a consultant.



Since 2 months I was sent to a company to work on their front-end using some framework that I'm not a complete newbie at, but basically not an expert.



Project is large, but I estimate my code is at 'junior' level.



Here comes the problem, as long as I am the only front-end dev in this group, all critical decision on this project are deferred to me (choosing a pattern of code, instantiate new libraries or importing some code from external resource or so on).



As I said before, code is not difficult, but I feel that these kind of decision are too important to be deferred to a junior of this framework, due to the software is very big and handle sensitive data of a big company.



Note that I already talked to my boss, and he basically told me "just work as you want and as you wish, but the project must be ready at date XXX"



My fear is that I can product code that works NOW, but TOMORROW will have bugs or so on due to my lack of experience, and as a consultant, I'll leave a bad reputation beside me.



How do I handle this situation? What should I do?







software-industry consulting






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Sep 5 '17 at 12:03







Anon

















asked Sep 5 '17 at 10:17









AnonAnon

3,06281526




3,06281526













  • Having you tried telling them you don't feel comfortable making those decisions?

    – SaggingRufus
    Sep 5 '17 at 10:27











  • as a wrote in the question, this was the response : just work as you want and as you wish, but the project must be ready at date XXX

    – Anon
    Sep 5 '17 at 10:34











  • Ask if there are some senior in your company that you can get some advices too. I have personnaly tryed once to make someone more expert to check all my decision, but ofc that never happened.

    – Walfrat
    Sep 5 '17 at 10:46













  • I'm not sure why you think decisions regarding front-end frameworks/libraries are that important? Obviously if you're the only front-end dev in the group, you're going to be maintaining it, and you might as well pick something you're comfortable with

    – Daniel
    Sep 5 '17 at 10:48













  • @Daniel that would be true if i was not a consultant, with all the probability, i'll leave this client in 2 months

    – Anon
    Sep 5 '17 at 10:49



















  • Having you tried telling them you don't feel comfortable making those decisions?

    – SaggingRufus
    Sep 5 '17 at 10:27











  • as a wrote in the question, this was the response : just work as you want and as you wish, but the project must be ready at date XXX

    – Anon
    Sep 5 '17 at 10:34











  • Ask if there are some senior in your company that you can get some advices too. I have personnaly tryed once to make someone more expert to check all my decision, but ofc that never happened.

    – Walfrat
    Sep 5 '17 at 10:46













  • I'm not sure why you think decisions regarding front-end frameworks/libraries are that important? Obviously if you're the only front-end dev in the group, you're going to be maintaining it, and you might as well pick something you're comfortable with

    – Daniel
    Sep 5 '17 at 10:48













  • @Daniel that would be true if i was not a consultant, with all the probability, i'll leave this client in 2 months

    – Anon
    Sep 5 '17 at 10:49

















Having you tried telling them you don't feel comfortable making those decisions?

– SaggingRufus
Sep 5 '17 at 10:27





Having you tried telling them you don't feel comfortable making those decisions?

– SaggingRufus
Sep 5 '17 at 10:27













as a wrote in the question, this was the response : just work as you want and as you wish, but the project must be ready at date XXX

– Anon
Sep 5 '17 at 10:34





as a wrote in the question, this was the response : just work as you want and as you wish, but the project must be ready at date XXX

– Anon
Sep 5 '17 at 10:34













Ask if there are some senior in your company that you can get some advices too. I have personnaly tryed once to make someone more expert to check all my decision, but ofc that never happened.

– Walfrat
Sep 5 '17 at 10:46







Ask if there are some senior in your company that you can get some advices too. I have personnaly tryed once to make someone more expert to check all my decision, but ofc that never happened.

– Walfrat
Sep 5 '17 at 10:46















I'm not sure why you think decisions regarding front-end frameworks/libraries are that important? Obviously if you're the only front-end dev in the group, you're going to be maintaining it, and you might as well pick something you're comfortable with

– Daniel
Sep 5 '17 at 10:48







I'm not sure why you think decisions regarding front-end frameworks/libraries are that important? Obviously if you're the only front-end dev in the group, you're going to be maintaining it, and you might as well pick something you're comfortable with

– Daniel
Sep 5 '17 at 10:48















@Daniel that would be true if i was not a consultant, with all the probability, i'll leave this client in 2 months

– Anon
Sep 5 '17 at 10:49





@Daniel that would be true if i was not a consultant, with all the probability, i'll leave this client in 2 months

– Anon
Sep 5 '17 at 10:49










4 Answers
4






active

oldest

votes


















9














You're not a Junior any more - you're a Senior.



Congratulations on your promotion!



If it hasn't been already, chop the project tasks up into bite sized chunks of work. Analyse each one and assess whether you understand enough to completely it, how long it'll take you. Take those time estimates and add at least 50%.



If those estimates don't fit into the timescale requested, then you need to raise this as a risk - either you need help, or something needs to be dropped from the project.



You also need to raise a risk for every task that you're not sure about. You'll get more points for forward thinking and being honest than hiding everything and failing at the end.



If you need help, then build a sound business reason and ask for that help.



Use this as a great learning experience, not many juniors get this opportunity.






share|improve this answer
























  • i don't think i had a promotion, since my pay hasn't change much and no one noticed me ... now serious, as long as i think is a great learning experience, i don't want to burn bridges for poor work, and i'm pretty sure that when i'll finish this update to software i'll change client, so i have no time to study the software as you suggested

    – Anon
    Sep 5 '17 at 11:59






  • 2





    @Anon, then you haven't been given adequate time to complete the project. You need to raise this as a risk and have an honest conversation with the client about either extending the timeline, decreasing the scope, or getting help. You can't do what is not possible.

    – Seth R
    Sep 5 '17 at 15:14



















1














As the only front-end developer, you may be the closest thing to an expert. Expertise is relative, so even if you feel you don't know that much, you may need to own the solution. Consultants are expected to be able to solve problems and this may be your opportunity to shine.



Do your best with the skills and knowledge you have. Do some research about the framework and best practices for using it. If the framework is used much at all, there should be plenty of research you can do on the internet, either from the vendor, a working group or some site like StackOverflow.



Make sure you document your research and how you arrived at the decisions you needed to make. Share this documentation with your technical and/or administrative supervisor so that they know what you have done and can manage the risk.



If after the research, you believe there is a schedule risk, let them know now before the situation gets worse. Use the research you have done to provide a timeline you can make and leave it to them to then manage the project timelines at a higher level.






share|improve this answer































    0














    You will have to go through bad designs to achieve good ones. This is a key point in this problem that you have to live with.



    Now: Is "bad" code going to burn bridges? Unlikely. Never seen that happen ever. Worse case, you'll be asked for the reason of doing this, and you can justify.



    In the programming business, we all understand constraints and motives for some bad code. One thing that you'll learn in the future is:




    The perfect code doesn't exist.




    Code loses quality over time, and history of programmers can be seen in the code, and keeps getting worse until the cost of maintaining a program becomes higher than writing a new one, which is when people do that.



    How can you help make best decisions? If you're really concerned to make your code the best (assuming that won't affect the time limits, which it will, but anyway). The answer is simple. Look at examples online and discussions about the issue... LOTS of them! Try to follow the consensus on many forums.






    share|improve this answer































      0















      My fear is that I can [produce] code that works NOW, but TOMORROW will have bugs or so on due to my lack of experience[.]




      Yes, you will write bugs. You will fix the bugs you find. I am sure you have experienced this already.



      You can mitigate this risk by building an automated test suite. It does not need to be a sophisticated 100%-coverage test suite. It just needs to be able to catch the bugs you have already found, so that you know that you didn't slip up and make the same mistake again. If it covers the standard happy paths as well, it will save you some embarrassment.



      If you are comfortable with a UI-level test harness like Selenium or Microsoft's Coded UI Tests, great. But you can get decent test coverage one layer down in your system, by testing that your model produces reasonable outputs given the sorts of inputs that you expect the UI to feed it.






      share|improve this answer








      New contributor




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




















        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: false,
        discardSelector: ".discard-answer"
        ,immediatelyShowMarkdownHelp:true
        });


        }
        });














        draft saved

        draft discarded


















        StackExchange.ready(
        function () {
        StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fworkplace.stackexchange.com%2fquestions%2f98367%2fhow-should-a-junior-dev-handle-critical-decisions-as-a-sole-developer-on-a-large%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").hide();
        $("#post-form").removeClass("dno");
        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









        9














        You're not a Junior any more - you're a Senior.



        Congratulations on your promotion!



        If it hasn't been already, chop the project tasks up into bite sized chunks of work. Analyse each one and assess whether you understand enough to completely it, how long it'll take you. Take those time estimates and add at least 50%.



        If those estimates don't fit into the timescale requested, then you need to raise this as a risk - either you need help, or something needs to be dropped from the project.



        You also need to raise a risk for every task that you're not sure about. You'll get more points for forward thinking and being honest than hiding everything and failing at the end.



        If you need help, then build a sound business reason and ask for that help.



        Use this as a great learning experience, not many juniors get this opportunity.






        share|improve this answer
























        • i don't think i had a promotion, since my pay hasn't change much and no one noticed me ... now serious, as long as i think is a great learning experience, i don't want to burn bridges for poor work, and i'm pretty sure that when i'll finish this update to software i'll change client, so i have no time to study the software as you suggested

          – Anon
          Sep 5 '17 at 11:59






        • 2





          @Anon, then you haven't been given adequate time to complete the project. You need to raise this as a risk and have an honest conversation with the client about either extending the timeline, decreasing the scope, or getting help. You can't do what is not possible.

          – Seth R
          Sep 5 '17 at 15:14
















        9














        You're not a Junior any more - you're a Senior.



        Congratulations on your promotion!



        If it hasn't been already, chop the project tasks up into bite sized chunks of work. Analyse each one and assess whether you understand enough to completely it, how long it'll take you. Take those time estimates and add at least 50%.



        If those estimates don't fit into the timescale requested, then you need to raise this as a risk - either you need help, or something needs to be dropped from the project.



        You also need to raise a risk for every task that you're not sure about. You'll get more points for forward thinking and being honest than hiding everything and failing at the end.



        If you need help, then build a sound business reason and ask for that help.



        Use this as a great learning experience, not many juniors get this opportunity.






        share|improve this answer
























        • i don't think i had a promotion, since my pay hasn't change much and no one noticed me ... now serious, as long as i think is a great learning experience, i don't want to burn bridges for poor work, and i'm pretty sure that when i'll finish this update to software i'll change client, so i have no time to study the software as you suggested

          – Anon
          Sep 5 '17 at 11:59






        • 2





          @Anon, then you haven't been given adequate time to complete the project. You need to raise this as a risk and have an honest conversation with the client about either extending the timeline, decreasing the scope, or getting help. You can't do what is not possible.

          – Seth R
          Sep 5 '17 at 15:14














        9












        9








        9







        You're not a Junior any more - you're a Senior.



        Congratulations on your promotion!



        If it hasn't been already, chop the project tasks up into bite sized chunks of work. Analyse each one and assess whether you understand enough to completely it, how long it'll take you. Take those time estimates and add at least 50%.



        If those estimates don't fit into the timescale requested, then you need to raise this as a risk - either you need help, or something needs to be dropped from the project.



        You also need to raise a risk for every task that you're not sure about. You'll get more points for forward thinking and being honest than hiding everything and failing at the end.



        If you need help, then build a sound business reason and ask for that help.



        Use this as a great learning experience, not many juniors get this opportunity.






        share|improve this answer













        You're not a Junior any more - you're a Senior.



        Congratulations on your promotion!



        If it hasn't been already, chop the project tasks up into bite sized chunks of work. Analyse each one and assess whether you understand enough to completely it, how long it'll take you. Take those time estimates and add at least 50%.



        If those estimates don't fit into the timescale requested, then you need to raise this as a risk - either you need help, or something needs to be dropped from the project.



        You also need to raise a risk for every task that you're not sure about. You'll get more points for forward thinking and being honest than hiding everything and failing at the end.



        If you need help, then build a sound business reason and ask for that help.



        Use this as a great learning experience, not many juniors get this opportunity.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Sep 5 '17 at 10:50









        SnowSnow

        63.2k52207252




        63.2k52207252













        • i don't think i had a promotion, since my pay hasn't change much and no one noticed me ... now serious, as long as i think is a great learning experience, i don't want to burn bridges for poor work, and i'm pretty sure that when i'll finish this update to software i'll change client, so i have no time to study the software as you suggested

          – Anon
          Sep 5 '17 at 11:59






        • 2





          @Anon, then you haven't been given adequate time to complete the project. You need to raise this as a risk and have an honest conversation with the client about either extending the timeline, decreasing the scope, or getting help. You can't do what is not possible.

          – Seth R
          Sep 5 '17 at 15:14



















        • i don't think i had a promotion, since my pay hasn't change much and no one noticed me ... now serious, as long as i think is a great learning experience, i don't want to burn bridges for poor work, and i'm pretty sure that when i'll finish this update to software i'll change client, so i have no time to study the software as you suggested

          – Anon
          Sep 5 '17 at 11:59






        • 2





          @Anon, then you haven't been given adequate time to complete the project. You need to raise this as a risk and have an honest conversation with the client about either extending the timeline, decreasing the scope, or getting help. You can't do what is not possible.

          – Seth R
          Sep 5 '17 at 15:14

















        i don't think i had a promotion, since my pay hasn't change much and no one noticed me ... now serious, as long as i think is a great learning experience, i don't want to burn bridges for poor work, and i'm pretty sure that when i'll finish this update to software i'll change client, so i have no time to study the software as you suggested

        – Anon
        Sep 5 '17 at 11:59





        i don't think i had a promotion, since my pay hasn't change much and no one noticed me ... now serious, as long as i think is a great learning experience, i don't want to burn bridges for poor work, and i'm pretty sure that when i'll finish this update to software i'll change client, so i have no time to study the software as you suggested

        – Anon
        Sep 5 '17 at 11:59




        2




        2





        @Anon, then you haven't been given adequate time to complete the project. You need to raise this as a risk and have an honest conversation with the client about either extending the timeline, decreasing the scope, or getting help. You can't do what is not possible.

        – Seth R
        Sep 5 '17 at 15:14





        @Anon, then you haven't been given adequate time to complete the project. You need to raise this as a risk and have an honest conversation with the client about either extending the timeline, decreasing the scope, or getting help. You can't do what is not possible.

        – Seth R
        Sep 5 '17 at 15:14













        1














        As the only front-end developer, you may be the closest thing to an expert. Expertise is relative, so even if you feel you don't know that much, you may need to own the solution. Consultants are expected to be able to solve problems and this may be your opportunity to shine.



        Do your best with the skills and knowledge you have. Do some research about the framework and best practices for using it. If the framework is used much at all, there should be plenty of research you can do on the internet, either from the vendor, a working group or some site like StackOverflow.



        Make sure you document your research and how you arrived at the decisions you needed to make. Share this documentation with your technical and/or administrative supervisor so that they know what you have done and can manage the risk.



        If after the research, you believe there is a schedule risk, let them know now before the situation gets worse. Use the research you have done to provide a timeline you can make and leave it to them to then manage the project timelines at a higher level.






        share|improve this answer




























          1














          As the only front-end developer, you may be the closest thing to an expert. Expertise is relative, so even if you feel you don't know that much, you may need to own the solution. Consultants are expected to be able to solve problems and this may be your opportunity to shine.



          Do your best with the skills and knowledge you have. Do some research about the framework and best practices for using it. If the framework is used much at all, there should be plenty of research you can do on the internet, either from the vendor, a working group or some site like StackOverflow.



          Make sure you document your research and how you arrived at the decisions you needed to make. Share this documentation with your technical and/or administrative supervisor so that they know what you have done and can manage the risk.



          If after the research, you believe there is a schedule risk, let them know now before the situation gets worse. Use the research you have done to provide a timeline you can make and leave it to them to then manage the project timelines at a higher level.






          share|improve this answer


























            1












            1








            1







            As the only front-end developer, you may be the closest thing to an expert. Expertise is relative, so even if you feel you don't know that much, you may need to own the solution. Consultants are expected to be able to solve problems and this may be your opportunity to shine.



            Do your best with the skills and knowledge you have. Do some research about the framework and best practices for using it. If the framework is used much at all, there should be plenty of research you can do on the internet, either from the vendor, a working group or some site like StackOverflow.



            Make sure you document your research and how you arrived at the decisions you needed to make. Share this documentation with your technical and/or administrative supervisor so that they know what you have done and can manage the risk.



            If after the research, you believe there is a schedule risk, let them know now before the situation gets worse. Use the research you have done to provide a timeline you can make and leave it to them to then manage the project timelines at a higher level.






            share|improve this answer













            As the only front-end developer, you may be the closest thing to an expert. Expertise is relative, so even if you feel you don't know that much, you may need to own the solution. Consultants are expected to be able to solve problems and this may be your opportunity to shine.



            Do your best with the skills and knowledge you have. Do some research about the framework and best practices for using it. If the framework is used much at all, there should be plenty of research you can do on the internet, either from the vendor, a working group or some site like StackOverflow.



            Make sure you document your research and how you arrived at the decisions you needed to make. Share this documentation with your technical and/or administrative supervisor so that they know what you have done and can manage the risk.



            If after the research, you believe there is a schedule risk, let them know now before the situation gets worse. Use the research you have done to provide a timeline you can make and leave it to them to then manage the project timelines at a higher level.







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered Sep 5 '17 at 15:26









            cdkMoosecdkMoose

            11.5k32650




            11.5k32650























                0














                You will have to go through bad designs to achieve good ones. This is a key point in this problem that you have to live with.



                Now: Is "bad" code going to burn bridges? Unlikely. Never seen that happen ever. Worse case, you'll be asked for the reason of doing this, and you can justify.



                In the programming business, we all understand constraints and motives for some bad code. One thing that you'll learn in the future is:




                The perfect code doesn't exist.




                Code loses quality over time, and history of programmers can be seen in the code, and keeps getting worse until the cost of maintaining a program becomes higher than writing a new one, which is when people do that.



                How can you help make best decisions? If you're really concerned to make your code the best (assuming that won't affect the time limits, which it will, but anyway). The answer is simple. Look at examples online and discussions about the issue... LOTS of them! Try to follow the consensus on many forums.






                share|improve this answer




























                  0














                  You will have to go through bad designs to achieve good ones. This is a key point in this problem that you have to live with.



                  Now: Is "bad" code going to burn bridges? Unlikely. Never seen that happen ever. Worse case, you'll be asked for the reason of doing this, and you can justify.



                  In the programming business, we all understand constraints and motives for some bad code. One thing that you'll learn in the future is:




                  The perfect code doesn't exist.




                  Code loses quality over time, and history of programmers can be seen in the code, and keeps getting worse until the cost of maintaining a program becomes higher than writing a new one, which is when people do that.



                  How can you help make best decisions? If you're really concerned to make your code the best (assuming that won't affect the time limits, which it will, but anyway). The answer is simple. Look at examples online and discussions about the issue... LOTS of them! Try to follow the consensus on many forums.






                  share|improve this answer


























                    0












                    0








                    0







                    You will have to go through bad designs to achieve good ones. This is a key point in this problem that you have to live with.



                    Now: Is "bad" code going to burn bridges? Unlikely. Never seen that happen ever. Worse case, you'll be asked for the reason of doing this, and you can justify.



                    In the programming business, we all understand constraints and motives for some bad code. One thing that you'll learn in the future is:




                    The perfect code doesn't exist.




                    Code loses quality over time, and history of programmers can be seen in the code, and keeps getting worse until the cost of maintaining a program becomes higher than writing a new one, which is when people do that.



                    How can you help make best decisions? If you're really concerned to make your code the best (assuming that won't affect the time limits, which it will, but anyway). The answer is simple. Look at examples online and discussions about the issue... LOTS of them! Try to follow the consensus on many forums.






                    share|improve this answer













                    You will have to go through bad designs to achieve good ones. This is a key point in this problem that you have to live with.



                    Now: Is "bad" code going to burn bridges? Unlikely. Never seen that happen ever. Worse case, you'll be asked for the reason of doing this, and you can justify.



                    In the programming business, we all understand constraints and motives for some bad code. One thing that you'll learn in the future is:




                    The perfect code doesn't exist.




                    Code loses quality over time, and history of programmers can be seen in the code, and keeps getting worse until the cost of maintaining a program becomes higher than writing a new one, which is when people do that.



                    How can you help make best decisions? If you're really concerned to make your code the best (assuming that won't affect the time limits, which it will, but anyway). The answer is simple. Look at examples online and discussions about the issue... LOTS of them! Try to follow the consensus on many forums.







                    share|improve this answer












                    share|improve this answer



                    share|improve this answer










                    answered Sep 5 '17 at 15:39









                    The Quantum PhysicistThe Quantum Physicist

                    2,4194921




                    2,4194921























                        0















                        My fear is that I can [produce] code that works NOW, but TOMORROW will have bugs or so on due to my lack of experience[.]




                        Yes, you will write bugs. You will fix the bugs you find. I am sure you have experienced this already.



                        You can mitigate this risk by building an automated test suite. It does not need to be a sophisticated 100%-coverage test suite. It just needs to be able to catch the bugs you have already found, so that you know that you didn't slip up and make the same mistake again. If it covers the standard happy paths as well, it will save you some embarrassment.



                        If you are comfortable with a UI-level test harness like Selenium or Microsoft's Coded UI Tests, great. But you can get decent test coverage one layer down in your system, by testing that your model produces reasonable outputs given the sorts of inputs that you expect the UI to feed it.






                        share|improve this answer








                        New contributor




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

























                          0















                          My fear is that I can [produce] code that works NOW, but TOMORROW will have bugs or so on due to my lack of experience[.]




                          Yes, you will write bugs. You will fix the bugs you find. I am sure you have experienced this already.



                          You can mitigate this risk by building an automated test suite. It does not need to be a sophisticated 100%-coverage test suite. It just needs to be able to catch the bugs you have already found, so that you know that you didn't slip up and make the same mistake again. If it covers the standard happy paths as well, it will save you some embarrassment.



                          If you are comfortable with a UI-level test harness like Selenium or Microsoft's Coded UI Tests, great. But you can get decent test coverage one layer down in your system, by testing that your model produces reasonable outputs given the sorts of inputs that you expect the UI to feed it.






                          share|improve this answer








                          New contributor




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























                            0












                            0








                            0








                            My fear is that I can [produce] code that works NOW, but TOMORROW will have bugs or so on due to my lack of experience[.]




                            Yes, you will write bugs. You will fix the bugs you find. I am sure you have experienced this already.



                            You can mitigate this risk by building an automated test suite. It does not need to be a sophisticated 100%-coverage test suite. It just needs to be able to catch the bugs you have already found, so that you know that you didn't slip up and make the same mistake again. If it covers the standard happy paths as well, it will save you some embarrassment.



                            If you are comfortable with a UI-level test harness like Selenium or Microsoft's Coded UI Tests, great. But you can get decent test coverage one layer down in your system, by testing that your model produces reasonable outputs given the sorts of inputs that you expect the UI to feed it.






                            share|improve this answer








                            New contributor




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











                            My fear is that I can [produce] code that works NOW, but TOMORROW will have bugs or so on due to my lack of experience[.]




                            Yes, you will write bugs. You will fix the bugs you find. I am sure you have experienced this already.



                            You can mitigate this risk by building an automated test suite. It does not need to be a sophisticated 100%-coverage test suite. It just needs to be able to catch the bugs you have already found, so that you know that you didn't slip up and make the same mistake again. If it covers the standard happy paths as well, it will save you some embarrassment.



                            If you are comfortable with a UI-level test harness like Selenium or Microsoft's Coded UI Tests, great. But you can get decent test coverage one layer down in your system, by testing that your model produces reasonable outputs given the sorts of inputs that you expect the UI to feed it.







                            share|improve this answer








                            New contributor




                            Jasper 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 answer



                            share|improve this answer






                            New contributor




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









                            answered 43 mins ago









                            JasperJasper

                            1033




                            1033




                            New contributor




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





                            New contributor





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






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






























                                draft saved

                                draft discarded




















































                                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%2f98367%2fhow-should-a-junior-dev-handle-critical-decisions-as-a-sole-developer-on-a-large%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

                                Le Mesnil-Réaume

                                Ida-Boy-Ed-Garten

                                web3.py web3.isConnected() returns false always