How should I approach a boss that keeps hiring temporary workers, only to have me finish something?

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP





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







up vote
103
down vote

favorite
14












Long story short, we've recently had a lot of work to do at my job and in order to fill that vacuum my boss has been hiring temporary workers. At first he hired three which stayed for about two months, but after the client moved up a deadline he hired one back recently.



I've been very cautious about delegating work to them as they've been making a huge mess of the code base and then when a push to production approaches I'm approached about making it workable. My boss is getting a little picky about this and made a comment to me about them being here to help, and I need to give them something to do. The problem is he's not a developer, so he doesn't have the perspective of what it can take to fix or patch together bad code; he only has the perspective that he's paying for them.



I wouldn't have a problem giving them things to do if I didn't know (as it's happened numerous times now) that in a few weeks they'll leave and when something breaks I'll be the one who's tasked to fix it in record time. The last time this happened a temporary spent almost two weeks writing out code that I was then expected to fix in one days time.



How do I convey this without seeming like a perfectionist who just wants to do it all himself?










share|improve this question



















  • 1




    Comments are not for extended discussion; this conversation has been moved to chat.
    – Jane S♦
    2 days ago










  • Are you involved in the hiring/vetting process? Do the new hires undergo technical tests? Are they actually temp workers or freelancers?
    – jcaron
    yesterday










  • Did you manage to fix 2 weeks worth of temp's code in one day?
    – Goyo
    yesterday







  • 2




    If the manager isn't in software, what field is he in? Is it possible you can make an analogy that hits home for him better?
    – corsiKa
    yesterday
















up vote
103
down vote

favorite
14












Long story short, we've recently had a lot of work to do at my job and in order to fill that vacuum my boss has been hiring temporary workers. At first he hired three which stayed for about two months, but after the client moved up a deadline he hired one back recently.



I've been very cautious about delegating work to them as they've been making a huge mess of the code base and then when a push to production approaches I'm approached about making it workable. My boss is getting a little picky about this and made a comment to me about them being here to help, and I need to give them something to do. The problem is he's not a developer, so he doesn't have the perspective of what it can take to fix or patch together bad code; he only has the perspective that he's paying for them.



I wouldn't have a problem giving them things to do if I didn't know (as it's happened numerous times now) that in a few weeks they'll leave and when something breaks I'll be the one who's tasked to fix it in record time. The last time this happened a temporary spent almost two weeks writing out code that I was then expected to fix in one days time.



How do I convey this without seeming like a perfectionist who just wants to do it all himself?










share|improve this question



















  • 1




    Comments are not for extended discussion; this conversation has been moved to chat.
    – Jane S♦
    2 days ago










  • Are you involved in the hiring/vetting process? Do the new hires undergo technical tests? Are they actually temp workers or freelancers?
    – jcaron
    yesterday










  • Did you manage to fix 2 weeks worth of temp's code in one day?
    – Goyo
    yesterday







  • 2




    If the manager isn't in software, what field is he in? Is it possible you can make an analogy that hits home for him better?
    – corsiKa
    yesterday












up vote
103
down vote

favorite
14









up vote
103
down vote

favorite
14






14





Long story short, we've recently had a lot of work to do at my job and in order to fill that vacuum my boss has been hiring temporary workers. At first he hired three which stayed for about two months, but after the client moved up a deadline he hired one back recently.



I've been very cautious about delegating work to them as they've been making a huge mess of the code base and then when a push to production approaches I'm approached about making it workable. My boss is getting a little picky about this and made a comment to me about them being here to help, and I need to give them something to do. The problem is he's not a developer, so he doesn't have the perspective of what it can take to fix or patch together bad code; he only has the perspective that he's paying for them.



I wouldn't have a problem giving them things to do if I didn't know (as it's happened numerous times now) that in a few weeks they'll leave and when something breaks I'll be the one who's tasked to fix it in record time. The last time this happened a temporary spent almost two weeks writing out code that I was then expected to fix in one days time.



How do I convey this without seeming like a perfectionist who just wants to do it all himself?










share|improve this question















Long story short, we've recently had a lot of work to do at my job and in order to fill that vacuum my boss has been hiring temporary workers. At first he hired three which stayed for about two months, but after the client moved up a deadline he hired one back recently.



I've been very cautious about delegating work to them as they've been making a huge mess of the code base and then when a push to production approaches I'm approached about making it workable. My boss is getting a little picky about this and made a comment to me about them being here to help, and I need to give them something to do. The problem is he's not a developer, so he doesn't have the perspective of what it can take to fix or patch together bad code; he only has the perspective that he's paying for them.



I wouldn't have a problem giving them things to do if I didn't know (as it's happened numerous times now) that in a few weeks they'll leave and when something breaks I'll be the one who's tasked to fix it in record time. The last time this happened a temporary spent almost two weeks writing out code that I was then expected to fix in one days time.



How do I convey this without seeming like a perfectionist who just wants to do it all himself?







professionalism software-industry management manager conflict-resolution






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited 2 mins ago









Peter Mortensen

48247




48247










asked 2 days ago









Kyle

662227




662227







  • 1




    Comments are not for extended discussion; this conversation has been moved to chat.
    – Jane S♦
    2 days ago










  • Are you involved in the hiring/vetting process? Do the new hires undergo technical tests? Are they actually temp workers or freelancers?
    – jcaron
    yesterday










  • Did you manage to fix 2 weeks worth of temp's code in one day?
    – Goyo
    yesterday







  • 2




    If the manager isn't in software, what field is he in? Is it possible you can make an analogy that hits home for him better?
    – corsiKa
    yesterday












  • 1




    Comments are not for extended discussion; this conversation has been moved to chat.
    – Jane S♦
    2 days ago










  • Are you involved in the hiring/vetting process? Do the new hires undergo technical tests? Are they actually temp workers or freelancers?
    – jcaron
    yesterday










  • Did you manage to fix 2 weeks worth of temp's code in one day?
    – Goyo
    yesterday







  • 2




    If the manager isn't in software, what field is he in? Is it possible you can make an analogy that hits home for him better?
    – corsiKa
    yesterday







1




1




Comments are not for extended discussion; this conversation has been moved to chat.
– Jane S♦
2 days ago




Comments are not for extended discussion; this conversation has been moved to chat.
– Jane S♦
2 days ago












Are you involved in the hiring/vetting process? Do the new hires undergo technical tests? Are they actually temp workers or freelancers?
– jcaron
yesterday




Are you involved in the hiring/vetting process? Do the new hires undergo technical tests? Are they actually temp workers or freelancers?
– jcaron
yesterday












Did you manage to fix 2 weeks worth of temp's code in one day?
– Goyo
yesterday





Did you manage to fix 2 weeks worth of temp's code in one day?
– Goyo
yesterday





2




2




If the manager isn't in software, what field is he in? Is it possible you can make an analogy that hits home for him better?
– corsiKa
yesterday




If the manager isn't in software, what field is he in? Is it possible you can make an analogy that hits home for him better?
– corsiKa
yesterday










8 Answers
8






active

oldest

votes

















up vote
190
down vote



accepted










You might want to take some arguments from the book The Mythical Man-Month by Frederick Brooks. Although it was originally written back in 1975 (overhauled in 1995), it is still one of the most important works regarding management of software development teams.



It is most known for codifying Brook's Law:




adding human resources to a late software project makes it later




The reasons are:



  • New developers must be taught about the existing architecture of the project before they can do something useful. This takes time away from the existing development team.

  • There is an upper bound to how many people will be able to make useful contributions to a software development project at the same time. It is often not possible to find reasonable sub-tasks to assign to new people.

Good software development requires a stable core team which works together from start to finish.



Your manager might not be aware of this rule. So he tries to help you in the only way he can think of: Add more people to your project.






share|improve this answer
















  • 161




    +1000. I'm running into this now on the project I'm on. My boss understands this. Project management types don't. The best way I've heard this phrased "just because it takes one woman nine months to make a baby does not mean that nine women can do in one month".
    – JimmyB
    2 days ago






  • 14




    Seems like good advice and a good resource; however, your answer doesn't seem to directly address the question of 'how to approach the boss' who doesn't understand this. I.e. would you drop a copy of this book on their desk?
    – Time4Tea
    2 days ago






  • 1




    Brooks goes into another reason adding people makes things worse -- they add communication overhead. With two people, there's one communication path, with seven people there are eleven, with eleven people there are 55!
    – Rob Crawford
    2 days ago






  • 6




    @RobCrawford: For 7 people, shouldn't that be 21 instead of 11? (ie. n*(n-1)/2, the number of edges in a complete graph?)
    – Aleksi Torhamo
    2 days ago






  • 18




    @RobCrawford It actually gets worse. Each time you communicate, you reset the period of uninterrupted work. If a senior developer gets asked just 1 question every 30 minutes (only 16 questions in 8 hours), he effectively have done 0 hours of complex work. Software development have problems that require hours of uninterrupted thinking time. Having that interrupted means these complex tasks are done incorrectly.
    – Nelson
    2 days ago


















up vote
42
down vote













The issue with temps and contractors (disclosure, I am one) is that there is often no comeback if the delivery is awful.



It may be worth having a chat with your boss about the quality of the temps. Hiring cheap means moving the costs further down the road, but eventually he'll be paying to fix the code.



You might also ask to be involved in the hiring process by providing a small coding test to make sure the temps are actually worth hiring. Nothing too dramatic, less than an hour of work to get an idea of ability.






share|improve this answer



























    up vote
    19
    down vote













    This ventures into general software development advice....



    1) If the code anyone writes breaks something add an automated test so that you can see it earlier next time.

    2) Review pull requests, don't merge anything until you're sure nothing else breaks.

    3) Tests make a good spec. TDD is a good way to ensure that what you're getting is what you want. Give someone a task to write the code you need (as exemplified by the tests you already wrote).

    4) peer programming might be an option. You can correct things immediately and answer questions as things go on.






    share|improve this answer
















    • 14




      I'll also add to this excellent answer, that if they're writing code for 2 weeks without any reviews of what they're doing, then that needs to change. Give them tasks of 1-3 days and you can review and catch errors much earlier.
      – BenFreke
      2 days ago







    • 3




      Not that this answer isn't correct, but given the OP's description of their workplace, I doubt that "testing" even enters the boss' vocabulary. And code reviews? OP's boss will only see money going down the drain... :-/
      – Aaron F
      yesterday










    • You're probably right. But at that point you need to talk to the boss and make it clear that hiring and letting go of temp workers will cost far more than doing things the right way.
      – xyious
      yesterday










    • This is the right answer, the problem is not the temp developers, the problem is lack of discipline and organization. @Aaron-f You don't need to tell your boss about your tests cases any more than about your variable names. You write code with tests, period. If it doesn't have tests, it is not finished. Best way to be sure that this is true: TDD
      – Juanmi Rodriguez
      yesterday


















    up vote
    18
    down vote













    What you wrote actually raises a number of red flags suggesting the only viable solution is changing your job. You wrote your manager ignores the importance and value of unit tests, I assume it's the same with the analysis and design as those misconceptions usually come in bundles. You also say that he thinks adding a temp dev for a month will bring anything else than a further delay. Apparently your manager has little idea how the software development project should be run and there are little to no chances that he's going to change his mind



    Yet, you can try.



    While a 9 women to deliver in a month is a popular way of "proving" that adding people doesn't necessarily expedite work it usually doesn't work on someone who is not into real understanding the problem but knows better instead. Rather than that use the example of digging a well.




    Let's say you need to dig a well that is 1m in diameter and 15m deep.
    One man needs 15 hours to dig it. How many men will it take to do the task in 1h?




    The answer most managers (and most people in general) will give you will be that it'll be 15 men but that's not true and it's simple to show to anyone who has no idea about the coding well digging at all. Just like in coding you can replace one digging person with another one. You can (to some level) share your work. But only one man fits in a hole 1m wide to work at all. If you add second person inside, the first one will be obstructed by them and won't be able to do their work.



    You can expedite work a bit swapping an exhausted person with a fresh one so a second person will help a bit. It'll not be 1/2 of the time, a save will be probably no more than 1/3. But adding a third man most probably won't help a bit. The two will be exchanging every hour or so, having time to regain their stamina. So if you insist on using the third worker inside the hole, the only effect will be that you lose more time when they swap or simply more men are waiting for their turn, being paid but not bringing any extra value. No gain at best, a loss at worst.



    So, you can use the third person on some auxiliary tasks, like removing the excess of dirt from the well neighbourhood. Fine, it adds maybe 5% time save for the cost of a full worker.



    But how can you utilise a fourth man, not to mention another 11? If you really insist on using all of them, you'll start having additional costs like communication, time for swapping etc. So starting with the fourth man you're going to add only delays with no benefit at all and additional extensive cost of people.



    And that's assuming all workers are skilled. What if digging a well requires an extra precision and you hire an untrained temp for that? You need to teach them so you'll spend the first hour on showing how to properly make well walls so that they do not fall apart and how to achieve that perfectly round shape. Then they'll be working at 50% of the trained man speed and their work will still not be perfect so the perm guy will have to do the fixes, losing some time of his work. In reality before the new person can bring anything but delays the well will be ready. And it will take longer than if the skilled worker digs alone. You can still use a temp for those auxiliary tasks or the simple ones (while I'm having a break dig in the middle, leave the walls untouched) but that's still 5, maybe 10% gain at best. And if the temp hits the wall the trained worker have to fix all that and it is no longer a gain at all.



    And it's something as simple as swinging a spade. Coding is way more complex.



    Summarise it with something like that:




    It's obvious that you need to train a dev and 1 month is a minimum
    to make them run at the basic productivity level if they are
    skilled
    . During the training you need to invest time of one regular
    dev into the training and the work of temps has to be reviewed anyway
    so adding anyone to the team for less than 4-6 months is nothing but
    waste.




    The other idea suggested you could be involved in the hiring process. That's a good advice to reduce the time of introducing a new person into the team and limiting number of errors in their code but it'll still require training (a lead in). So a temp, even a skilled one, for one month is a waste. At best, you can use them to write auxiliary things. Like unit tests ;-)



    If your manager can't comprehend such comparison, your last option is to hit the job market again.






    share|improve this answer


















    • 3




      "Let's say you need to dig a well that is 1m in diameter and 15m deep. One man needs 15 hours to dig it. How many men will it take to do the task in 1h?" this in particular is fantastic, as unlike the overtly obvious pregnancy example, it provides the "gotcha!" angle that's synonymous with what's occurring with trying to hire more devs, so it's more cognitively relatable as a metaphor, in terms of providing that superficial "well it SHOULD work this way!" first impression. We use a "one month ramp up" for every position, even non devs, and even that ignores the cost to the rest of the team.
      – taswyn
      yesterday






    • 3




      The fun thing is that in many cultures this is a typical math question at the primary level with the accepted answer "1h". I think it might be the core source of later misconception that adding more resources always reduces time in a linear way. After all that's what they taught you in school!
      – Ister
      yesterday










    • "it is impossible to sharpen a pencil with a blunt axe. It is equally vain to try to do it with ten blunt axes instead." - Edsger W. Dijkstra
      – JimmyJames
      19 hours ago

















    up vote
    6
    down vote














    How to approach boss that keeps hiring temp workers only to have me finish something?




    You already have. All you can do is persevere with telling the boss.



    Meanwhile there is a solution, the reason you're having to redo work is because you found out it was rubbish too late. You have an opportunity to practice some skills and take on more responsibility, but you're not doing it. It's not an esoteric problem, it's just a way of looking at a problem and resolution methodology. Well worth learning.



    This is one of those times that micromanaging is critical. Assess the situation as a whole (including the people, they're a resource) and make a plan of resolution, use the manpower efficiently on those terms. This is the ONLY way to do it, you don't let even experienced people deviate from your plan, they don't have the full picture, you give them small tasks and check everything they do, they report to you at every step.



    The most important bit is to understand the problem wholly and have a solid plan. Then break it up into simpler tasks wherever possible and don't rely on anyone to do their bit unsupervised.






    share|improve this answer





























      up vote
      4
      down vote













      The skill level of the temps is likely dependant upon the amount of money your manager is investing into them. As they are only temps he obviously doesn't want to be wasting too much funding. As you say your boss is not a developer and likely just assumes that a coder can code.



      However, if it's increasing your work load in the long term and it's affecting your current work. You need to pull him for a 1x1 and just convey your issues and the reason that you are not delegating as much work down to them and your worries for the future if you do delegate work to them



      You want to make sure you don't come across as if you're having a go at your boss but at the same time you need to get the message across as he doesn't understand what happens within development. If you simply mention that you would be happy to delegate the work but only when you feel safe to do so.






      share|improve this answer





























        up vote
        4
        down vote













        If you can get away with logic arguments like the 9 months to make a baby analogy, that's great but, in my experience, this argument only works with people who already get it. And even when they do, it will often be followed with questions about what the optimal number of team members will be.



        What might help if logic fails is to put together some data showing how work is actually getting done and focus on which people's work needs remediation. If you pull this together, you can show a pretty dramatic graph of who is actually adding to the output and who is detracting from it.



        Part of the problem is that managers are under pressure to deliver and they need to show that they are doing something to make it happen. Doing nothing could make them look ineffectual and irrelevant. You can help with this by offering up some changes that your manager can make that will help (better machines, laptops, whiteboards, a build server, different hours, isolated work space, etc.)






        share|improve this answer



























          up vote
          1
          down vote













          I find it useful to discuss a specific example. Take one case of something a temp did that took fixing by you. Describe the issue being worked on. Make a careful timeline of the events, showing when the temp got asked to work on it, how long the temp worked on it, when the problems were discovered, how the problems were fixed, and when the code was ready or at least back to usable. Compare with an estimate of how it would have worked with a stable development team. You can admit that you cherry-picked the example, but also have a list of many issues where this has transpired.



          Now discuss your solution, which seems to be hiring a permanent addition to the staff. How long will it take to train this person (but you only do it once, not once per temp), how do the costs compare (as best you know), etc.



          It sounds like your boss/company is not understanding that there is too much work for you to do. Hiring temps makes sense when the overload is temporary, but is a very costly solution when the overload is permanent. You need to make this case.






          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',
            convertImagesToLinks: false,
            noModals: false,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            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%2f120528%2fhow-should-i-approach-a-boss-that-keeps-hiring-temporary-workers-only-to-have-m%23new-answer', 'question_page');

            );

            Post as a guest

























            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();


            );
            );






            8 Answers
            8






            active

            oldest

            votes








            8 Answers
            8






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes








            up vote
            190
            down vote



            accepted










            You might want to take some arguments from the book The Mythical Man-Month by Frederick Brooks. Although it was originally written back in 1975 (overhauled in 1995), it is still one of the most important works regarding management of software development teams.



            It is most known for codifying Brook's Law:




            adding human resources to a late software project makes it later




            The reasons are:



            • New developers must be taught about the existing architecture of the project before they can do something useful. This takes time away from the existing development team.

            • There is an upper bound to how many people will be able to make useful contributions to a software development project at the same time. It is often not possible to find reasonable sub-tasks to assign to new people.

            Good software development requires a stable core team which works together from start to finish.



            Your manager might not be aware of this rule. So he tries to help you in the only way he can think of: Add more people to your project.






            share|improve this answer
















            • 161




              +1000. I'm running into this now on the project I'm on. My boss understands this. Project management types don't. The best way I've heard this phrased "just because it takes one woman nine months to make a baby does not mean that nine women can do in one month".
              – JimmyB
              2 days ago






            • 14




              Seems like good advice and a good resource; however, your answer doesn't seem to directly address the question of 'how to approach the boss' who doesn't understand this. I.e. would you drop a copy of this book on their desk?
              – Time4Tea
              2 days ago






            • 1




              Brooks goes into another reason adding people makes things worse -- they add communication overhead. With two people, there's one communication path, with seven people there are eleven, with eleven people there are 55!
              – Rob Crawford
              2 days ago






            • 6




              @RobCrawford: For 7 people, shouldn't that be 21 instead of 11? (ie. n*(n-1)/2, the number of edges in a complete graph?)
              – Aleksi Torhamo
              2 days ago






            • 18




              @RobCrawford It actually gets worse. Each time you communicate, you reset the period of uninterrupted work. If a senior developer gets asked just 1 question every 30 minutes (only 16 questions in 8 hours), he effectively have done 0 hours of complex work. Software development have problems that require hours of uninterrupted thinking time. Having that interrupted means these complex tasks are done incorrectly.
              – Nelson
              2 days ago















            up vote
            190
            down vote



            accepted










            You might want to take some arguments from the book The Mythical Man-Month by Frederick Brooks. Although it was originally written back in 1975 (overhauled in 1995), it is still one of the most important works regarding management of software development teams.



            It is most known for codifying Brook's Law:




            adding human resources to a late software project makes it later




            The reasons are:



            • New developers must be taught about the existing architecture of the project before they can do something useful. This takes time away from the existing development team.

            • There is an upper bound to how many people will be able to make useful contributions to a software development project at the same time. It is often not possible to find reasonable sub-tasks to assign to new people.

            Good software development requires a stable core team which works together from start to finish.



            Your manager might not be aware of this rule. So he tries to help you in the only way he can think of: Add more people to your project.






            share|improve this answer
















            • 161




              +1000. I'm running into this now on the project I'm on. My boss understands this. Project management types don't. The best way I've heard this phrased "just because it takes one woman nine months to make a baby does not mean that nine women can do in one month".
              – JimmyB
              2 days ago






            • 14




              Seems like good advice and a good resource; however, your answer doesn't seem to directly address the question of 'how to approach the boss' who doesn't understand this. I.e. would you drop a copy of this book on their desk?
              – Time4Tea
              2 days ago






            • 1




              Brooks goes into another reason adding people makes things worse -- they add communication overhead. With two people, there's one communication path, with seven people there are eleven, with eleven people there are 55!
              – Rob Crawford
              2 days ago






            • 6




              @RobCrawford: For 7 people, shouldn't that be 21 instead of 11? (ie. n*(n-1)/2, the number of edges in a complete graph?)
              – Aleksi Torhamo
              2 days ago






            • 18




              @RobCrawford It actually gets worse. Each time you communicate, you reset the period of uninterrupted work. If a senior developer gets asked just 1 question every 30 minutes (only 16 questions in 8 hours), he effectively have done 0 hours of complex work. Software development have problems that require hours of uninterrupted thinking time. Having that interrupted means these complex tasks are done incorrectly.
              – Nelson
              2 days ago













            up vote
            190
            down vote



            accepted







            up vote
            190
            down vote



            accepted






            You might want to take some arguments from the book The Mythical Man-Month by Frederick Brooks. Although it was originally written back in 1975 (overhauled in 1995), it is still one of the most important works regarding management of software development teams.



            It is most known for codifying Brook's Law:




            adding human resources to a late software project makes it later




            The reasons are:



            • New developers must be taught about the existing architecture of the project before they can do something useful. This takes time away from the existing development team.

            • There is an upper bound to how many people will be able to make useful contributions to a software development project at the same time. It is often not possible to find reasonable sub-tasks to assign to new people.

            Good software development requires a stable core team which works together from start to finish.



            Your manager might not be aware of this rule. So he tries to help you in the only way he can think of: Add more people to your project.






            share|improve this answer












            You might want to take some arguments from the book The Mythical Man-Month by Frederick Brooks. Although it was originally written back in 1975 (overhauled in 1995), it is still one of the most important works regarding management of software development teams.



            It is most known for codifying Brook's Law:




            adding human resources to a late software project makes it later




            The reasons are:



            • New developers must be taught about the existing architecture of the project before they can do something useful. This takes time away from the existing development team.

            • There is an upper bound to how many people will be able to make useful contributions to a software development project at the same time. It is often not possible to find reasonable sub-tasks to assign to new people.

            Good software development requires a stable core team which works together from start to finish.



            Your manager might not be aware of this rule. So he tries to help you in the only way he can think of: Add more people to your project.







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered 2 days ago









            Philipp

            21.1k45086




            21.1k45086







            • 161




              +1000. I'm running into this now on the project I'm on. My boss understands this. Project management types don't. The best way I've heard this phrased "just because it takes one woman nine months to make a baby does not mean that nine women can do in one month".
              – JimmyB
              2 days ago






            • 14




              Seems like good advice and a good resource; however, your answer doesn't seem to directly address the question of 'how to approach the boss' who doesn't understand this. I.e. would you drop a copy of this book on their desk?
              – Time4Tea
              2 days ago






            • 1




              Brooks goes into another reason adding people makes things worse -- they add communication overhead. With two people, there's one communication path, with seven people there are eleven, with eleven people there are 55!
              – Rob Crawford
              2 days ago






            • 6




              @RobCrawford: For 7 people, shouldn't that be 21 instead of 11? (ie. n*(n-1)/2, the number of edges in a complete graph?)
              – Aleksi Torhamo
              2 days ago






            • 18




              @RobCrawford It actually gets worse. Each time you communicate, you reset the period of uninterrupted work. If a senior developer gets asked just 1 question every 30 minutes (only 16 questions in 8 hours), he effectively have done 0 hours of complex work. Software development have problems that require hours of uninterrupted thinking time. Having that interrupted means these complex tasks are done incorrectly.
              – Nelson
              2 days ago













            • 161




              +1000. I'm running into this now on the project I'm on. My boss understands this. Project management types don't. The best way I've heard this phrased "just because it takes one woman nine months to make a baby does not mean that nine women can do in one month".
              – JimmyB
              2 days ago






            • 14




              Seems like good advice and a good resource; however, your answer doesn't seem to directly address the question of 'how to approach the boss' who doesn't understand this. I.e. would you drop a copy of this book on their desk?
              – Time4Tea
              2 days ago






            • 1




              Brooks goes into another reason adding people makes things worse -- they add communication overhead. With two people, there's one communication path, with seven people there are eleven, with eleven people there are 55!
              – Rob Crawford
              2 days ago






            • 6




              @RobCrawford: For 7 people, shouldn't that be 21 instead of 11? (ie. n*(n-1)/2, the number of edges in a complete graph?)
              – Aleksi Torhamo
              2 days ago






            • 18




              @RobCrawford It actually gets worse. Each time you communicate, you reset the period of uninterrupted work. If a senior developer gets asked just 1 question every 30 minutes (only 16 questions in 8 hours), he effectively have done 0 hours of complex work. Software development have problems that require hours of uninterrupted thinking time. Having that interrupted means these complex tasks are done incorrectly.
              – Nelson
              2 days ago








            161




            161




            +1000. I'm running into this now on the project I'm on. My boss understands this. Project management types don't. The best way I've heard this phrased "just because it takes one woman nine months to make a baby does not mean that nine women can do in one month".
            – JimmyB
            2 days ago




            +1000. I'm running into this now on the project I'm on. My boss understands this. Project management types don't. The best way I've heard this phrased "just because it takes one woman nine months to make a baby does not mean that nine women can do in one month".
            – JimmyB
            2 days ago




            14




            14




            Seems like good advice and a good resource; however, your answer doesn't seem to directly address the question of 'how to approach the boss' who doesn't understand this. I.e. would you drop a copy of this book on their desk?
            – Time4Tea
            2 days ago




            Seems like good advice and a good resource; however, your answer doesn't seem to directly address the question of 'how to approach the boss' who doesn't understand this. I.e. would you drop a copy of this book on their desk?
            – Time4Tea
            2 days ago




            1




            1




            Brooks goes into another reason adding people makes things worse -- they add communication overhead. With two people, there's one communication path, with seven people there are eleven, with eleven people there are 55!
            – Rob Crawford
            2 days ago




            Brooks goes into another reason adding people makes things worse -- they add communication overhead. With two people, there's one communication path, with seven people there are eleven, with eleven people there are 55!
            – Rob Crawford
            2 days ago




            6




            6




            @RobCrawford: For 7 people, shouldn't that be 21 instead of 11? (ie. n*(n-1)/2, the number of edges in a complete graph?)
            – Aleksi Torhamo
            2 days ago




            @RobCrawford: For 7 people, shouldn't that be 21 instead of 11? (ie. n*(n-1)/2, the number of edges in a complete graph?)
            – Aleksi Torhamo
            2 days ago




            18




            18




            @RobCrawford It actually gets worse. Each time you communicate, you reset the period of uninterrupted work. If a senior developer gets asked just 1 question every 30 minutes (only 16 questions in 8 hours), he effectively have done 0 hours of complex work. Software development have problems that require hours of uninterrupted thinking time. Having that interrupted means these complex tasks are done incorrectly.
            – Nelson
            2 days ago





            @RobCrawford It actually gets worse. Each time you communicate, you reset the period of uninterrupted work. If a senior developer gets asked just 1 question every 30 minutes (only 16 questions in 8 hours), he effectively have done 0 hours of complex work. Software development have problems that require hours of uninterrupted thinking time. Having that interrupted means these complex tasks are done incorrectly.
            – Nelson
            2 days ago













            up vote
            42
            down vote













            The issue with temps and contractors (disclosure, I am one) is that there is often no comeback if the delivery is awful.



            It may be worth having a chat with your boss about the quality of the temps. Hiring cheap means moving the costs further down the road, but eventually he'll be paying to fix the code.



            You might also ask to be involved in the hiring process by providing a small coding test to make sure the temps are actually worth hiring. Nothing too dramatic, less than an hour of work to get an idea of ability.






            share|improve this answer
























              up vote
              42
              down vote













              The issue with temps and contractors (disclosure, I am one) is that there is often no comeback if the delivery is awful.



              It may be worth having a chat with your boss about the quality of the temps. Hiring cheap means moving the costs further down the road, but eventually he'll be paying to fix the code.



              You might also ask to be involved in the hiring process by providing a small coding test to make sure the temps are actually worth hiring. Nothing too dramatic, less than an hour of work to get an idea of ability.






              share|improve this answer






















                up vote
                42
                down vote










                up vote
                42
                down vote









                The issue with temps and contractors (disclosure, I am one) is that there is often no comeback if the delivery is awful.



                It may be worth having a chat with your boss about the quality of the temps. Hiring cheap means moving the costs further down the road, but eventually he'll be paying to fix the code.



                You might also ask to be involved in the hiring process by providing a small coding test to make sure the temps are actually worth hiring. Nothing too dramatic, less than an hour of work to get an idea of ability.






                share|improve this answer












                The issue with temps and contractors (disclosure, I am one) is that there is often no comeback if the delivery is awful.



                It may be worth having a chat with your boss about the quality of the temps. Hiring cheap means moving the costs further down the road, but eventually he'll be paying to fix the code.



                You might also ask to be involved in the hiring process by providing a small coding test to make sure the temps are actually worth hiring. Nothing too dramatic, less than an hour of work to get an idea of ability.







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered 2 days ago









                JohnHC

                12.2k83143




                12.2k83143




















                    up vote
                    19
                    down vote













                    This ventures into general software development advice....



                    1) If the code anyone writes breaks something add an automated test so that you can see it earlier next time.

                    2) Review pull requests, don't merge anything until you're sure nothing else breaks.

                    3) Tests make a good spec. TDD is a good way to ensure that what you're getting is what you want. Give someone a task to write the code you need (as exemplified by the tests you already wrote).

                    4) peer programming might be an option. You can correct things immediately and answer questions as things go on.






                    share|improve this answer
















                    • 14




                      I'll also add to this excellent answer, that if they're writing code for 2 weeks without any reviews of what they're doing, then that needs to change. Give them tasks of 1-3 days and you can review and catch errors much earlier.
                      – BenFreke
                      2 days ago







                    • 3




                      Not that this answer isn't correct, but given the OP's description of their workplace, I doubt that "testing" even enters the boss' vocabulary. And code reviews? OP's boss will only see money going down the drain... :-/
                      – Aaron F
                      yesterday










                    • You're probably right. But at that point you need to talk to the boss and make it clear that hiring and letting go of temp workers will cost far more than doing things the right way.
                      – xyious
                      yesterday










                    • This is the right answer, the problem is not the temp developers, the problem is lack of discipline and organization. @Aaron-f You don't need to tell your boss about your tests cases any more than about your variable names. You write code with tests, period. If it doesn't have tests, it is not finished. Best way to be sure that this is true: TDD
                      – Juanmi Rodriguez
                      yesterday















                    up vote
                    19
                    down vote













                    This ventures into general software development advice....



                    1) If the code anyone writes breaks something add an automated test so that you can see it earlier next time.

                    2) Review pull requests, don't merge anything until you're sure nothing else breaks.

                    3) Tests make a good spec. TDD is a good way to ensure that what you're getting is what you want. Give someone a task to write the code you need (as exemplified by the tests you already wrote).

                    4) peer programming might be an option. You can correct things immediately and answer questions as things go on.






                    share|improve this answer
















                    • 14




                      I'll also add to this excellent answer, that if they're writing code for 2 weeks without any reviews of what they're doing, then that needs to change. Give them tasks of 1-3 days and you can review and catch errors much earlier.
                      – BenFreke
                      2 days ago







                    • 3




                      Not that this answer isn't correct, but given the OP's description of their workplace, I doubt that "testing" even enters the boss' vocabulary. And code reviews? OP's boss will only see money going down the drain... :-/
                      – Aaron F
                      yesterday










                    • You're probably right. But at that point you need to talk to the boss and make it clear that hiring and letting go of temp workers will cost far more than doing things the right way.
                      – xyious
                      yesterday










                    • This is the right answer, the problem is not the temp developers, the problem is lack of discipline and organization. @Aaron-f You don't need to tell your boss about your tests cases any more than about your variable names. You write code with tests, period. If it doesn't have tests, it is not finished. Best way to be sure that this is true: TDD
                      – Juanmi Rodriguez
                      yesterday













                    up vote
                    19
                    down vote










                    up vote
                    19
                    down vote









                    This ventures into general software development advice....



                    1) If the code anyone writes breaks something add an automated test so that you can see it earlier next time.

                    2) Review pull requests, don't merge anything until you're sure nothing else breaks.

                    3) Tests make a good spec. TDD is a good way to ensure that what you're getting is what you want. Give someone a task to write the code you need (as exemplified by the tests you already wrote).

                    4) peer programming might be an option. You can correct things immediately and answer questions as things go on.






                    share|improve this answer












                    This ventures into general software development advice....



                    1) If the code anyone writes breaks something add an automated test so that you can see it earlier next time.

                    2) Review pull requests, don't merge anything until you're sure nothing else breaks.

                    3) Tests make a good spec. TDD is a good way to ensure that what you're getting is what you want. Give someone a task to write the code you need (as exemplified by the tests you already wrote).

                    4) peer programming might be an option. You can correct things immediately and answer questions as things go on.







                    share|improve this answer












                    share|improve this answer



                    share|improve this answer










                    answered 2 days ago









                    xyious

                    3445




                    3445







                    • 14




                      I'll also add to this excellent answer, that if they're writing code for 2 weeks without any reviews of what they're doing, then that needs to change. Give them tasks of 1-3 days and you can review and catch errors much earlier.
                      – BenFreke
                      2 days ago







                    • 3




                      Not that this answer isn't correct, but given the OP's description of their workplace, I doubt that "testing" even enters the boss' vocabulary. And code reviews? OP's boss will only see money going down the drain... :-/
                      – Aaron F
                      yesterday










                    • You're probably right. But at that point you need to talk to the boss and make it clear that hiring and letting go of temp workers will cost far more than doing things the right way.
                      – xyious
                      yesterday










                    • This is the right answer, the problem is not the temp developers, the problem is lack of discipline and organization. @Aaron-f You don't need to tell your boss about your tests cases any more than about your variable names. You write code with tests, period. If it doesn't have tests, it is not finished. Best way to be sure that this is true: TDD
                      – Juanmi Rodriguez
                      yesterday













                    • 14




                      I'll also add to this excellent answer, that if they're writing code for 2 weeks without any reviews of what they're doing, then that needs to change. Give them tasks of 1-3 days and you can review and catch errors much earlier.
                      – BenFreke
                      2 days ago







                    • 3




                      Not that this answer isn't correct, but given the OP's description of their workplace, I doubt that "testing" even enters the boss' vocabulary. And code reviews? OP's boss will only see money going down the drain... :-/
                      – Aaron F
                      yesterday










                    • You're probably right. But at that point you need to talk to the boss and make it clear that hiring and letting go of temp workers will cost far more than doing things the right way.
                      – xyious
                      yesterday










                    • This is the right answer, the problem is not the temp developers, the problem is lack of discipline and organization. @Aaron-f You don't need to tell your boss about your tests cases any more than about your variable names. You write code with tests, period. If it doesn't have tests, it is not finished. Best way to be sure that this is true: TDD
                      – Juanmi Rodriguez
                      yesterday








                    14




                    14




                    I'll also add to this excellent answer, that if they're writing code for 2 weeks without any reviews of what they're doing, then that needs to change. Give them tasks of 1-3 days and you can review and catch errors much earlier.
                    – BenFreke
                    2 days ago





                    I'll also add to this excellent answer, that if they're writing code for 2 weeks without any reviews of what they're doing, then that needs to change. Give them tasks of 1-3 days and you can review and catch errors much earlier.
                    – BenFreke
                    2 days ago





                    3




                    3




                    Not that this answer isn't correct, but given the OP's description of their workplace, I doubt that "testing" even enters the boss' vocabulary. And code reviews? OP's boss will only see money going down the drain... :-/
                    – Aaron F
                    yesterday




                    Not that this answer isn't correct, but given the OP's description of their workplace, I doubt that "testing" even enters the boss' vocabulary. And code reviews? OP's boss will only see money going down the drain... :-/
                    – Aaron F
                    yesterday












                    You're probably right. But at that point you need to talk to the boss and make it clear that hiring and letting go of temp workers will cost far more than doing things the right way.
                    – xyious
                    yesterday




                    You're probably right. But at that point you need to talk to the boss and make it clear that hiring and letting go of temp workers will cost far more than doing things the right way.
                    – xyious
                    yesterday












                    This is the right answer, the problem is not the temp developers, the problem is lack of discipline and organization. @Aaron-f You don't need to tell your boss about your tests cases any more than about your variable names. You write code with tests, period. If it doesn't have tests, it is not finished. Best way to be sure that this is true: TDD
                    – Juanmi Rodriguez
                    yesterday





                    This is the right answer, the problem is not the temp developers, the problem is lack of discipline and organization. @Aaron-f You don't need to tell your boss about your tests cases any more than about your variable names. You write code with tests, period. If it doesn't have tests, it is not finished. Best way to be sure that this is true: TDD
                    – Juanmi Rodriguez
                    yesterday











                    up vote
                    18
                    down vote













                    What you wrote actually raises a number of red flags suggesting the only viable solution is changing your job. You wrote your manager ignores the importance and value of unit tests, I assume it's the same with the analysis and design as those misconceptions usually come in bundles. You also say that he thinks adding a temp dev for a month will bring anything else than a further delay. Apparently your manager has little idea how the software development project should be run and there are little to no chances that he's going to change his mind



                    Yet, you can try.



                    While a 9 women to deliver in a month is a popular way of "proving" that adding people doesn't necessarily expedite work it usually doesn't work on someone who is not into real understanding the problem but knows better instead. Rather than that use the example of digging a well.




                    Let's say you need to dig a well that is 1m in diameter and 15m deep.
                    One man needs 15 hours to dig it. How many men will it take to do the task in 1h?




                    The answer most managers (and most people in general) will give you will be that it'll be 15 men but that's not true and it's simple to show to anyone who has no idea about the coding well digging at all. Just like in coding you can replace one digging person with another one. You can (to some level) share your work. But only one man fits in a hole 1m wide to work at all. If you add second person inside, the first one will be obstructed by them and won't be able to do their work.



                    You can expedite work a bit swapping an exhausted person with a fresh one so a second person will help a bit. It'll not be 1/2 of the time, a save will be probably no more than 1/3. But adding a third man most probably won't help a bit. The two will be exchanging every hour or so, having time to regain their stamina. So if you insist on using the third worker inside the hole, the only effect will be that you lose more time when they swap or simply more men are waiting for their turn, being paid but not bringing any extra value. No gain at best, a loss at worst.



                    So, you can use the third person on some auxiliary tasks, like removing the excess of dirt from the well neighbourhood. Fine, it adds maybe 5% time save for the cost of a full worker.



                    But how can you utilise a fourth man, not to mention another 11? If you really insist on using all of them, you'll start having additional costs like communication, time for swapping etc. So starting with the fourth man you're going to add only delays with no benefit at all and additional extensive cost of people.



                    And that's assuming all workers are skilled. What if digging a well requires an extra precision and you hire an untrained temp for that? You need to teach them so you'll spend the first hour on showing how to properly make well walls so that they do not fall apart and how to achieve that perfectly round shape. Then they'll be working at 50% of the trained man speed and their work will still not be perfect so the perm guy will have to do the fixes, losing some time of his work. In reality before the new person can bring anything but delays the well will be ready. And it will take longer than if the skilled worker digs alone. You can still use a temp for those auxiliary tasks or the simple ones (while I'm having a break dig in the middle, leave the walls untouched) but that's still 5, maybe 10% gain at best. And if the temp hits the wall the trained worker have to fix all that and it is no longer a gain at all.



                    And it's something as simple as swinging a spade. Coding is way more complex.



                    Summarise it with something like that:




                    It's obvious that you need to train a dev and 1 month is a minimum
                    to make them run at the basic productivity level if they are
                    skilled
                    . During the training you need to invest time of one regular
                    dev into the training and the work of temps has to be reviewed anyway
                    so adding anyone to the team for less than 4-6 months is nothing but
                    waste.




                    The other idea suggested you could be involved in the hiring process. That's a good advice to reduce the time of introducing a new person into the team and limiting number of errors in their code but it'll still require training (a lead in). So a temp, even a skilled one, for one month is a waste. At best, you can use them to write auxiliary things. Like unit tests ;-)



                    If your manager can't comprehend such comparison, your last option is to hit the job market again.






                    share|improve this answer


















                    • 3




                      "Let's say you need to dig a well that is 1m in diameter and 15m deep. One man needs 15 hours to dig it. How many men will it take to do the task in 1h?" this in particular is fantastic, as unlike the overtly obvious pregnancy example, it provides the "gotcha!" angle that's synonymous with what's occurring with trying to hire more devs, so it's more cognitively relatable as a metaphor, in terms of providing that superficial "well it SHOULD work this way!" first impression. We use a "one month ramp up" for every position, even non devs, and even that ignores the cost to the rest of the team.
                      – taswyn
                      yesterday






                    • 3




                      The fun thing is that in many cultures this is a typical math question at the primary level with the accepted answer "1h". I think it might be the core source of later misconception that adding more resources always reduces time in a linear way. After all that's what they taught you in school!
                      – Ister
                      yesterday










                    • "it is impossible to sharpen a pencil with a blunt axe. It is equally vain to try to do it with ten blunt axes instead." - Edsger W. Dijkstra
                      – JimmyJames
                      19 hours ago














                    up vote
                    18
                    down vote













                    What you wrote actually raises a number of red flags suggesting the only viable solution is changing your job. You wrote your manager ignores the importance and value of unit tests, I assume it's the same with the analysis and design as those misconceptions usually come in bundles. You also say that he thinks adding a temp dev for a month will bring anything else than a further delay. Apparently your manager has little idea how the software development project should be run and there are little to no chances that he's going to change his mind



                    Yet, you can try.



                    While a 9 women to deliver in a month is a popular way of "proving" that adding people doesn't necessarily expedite work it usually doesn't work on someone who is not into real understanding the problem but knows better instead. Rather than that use the example of digging a well.




                    Let's say you need to dig a well that is 1m in diameter and 15m deep.
                    One man needs 15 hours to dig it. How many men will it take to do the task in 1h?




                    The answer most managers (and most people in general) will give you will be that it'll be 15 men but that's not true and it's simple to show to anyone who has no idea about the coding well digging at all. Just like in coding you can replace one digging person with another one. You can (to some level) share your work. But only one man fits in a hole 1m wide to work at all. If you add second person inside, the first one will be obstructed by them and won't be able to do their work.



                    You can expedite work a bit swapping an exhausted person with a fresh one so a second person will help a bit. It'll not be 1/2 of the time, a save will be probably no more than 1/3. But adding a third man most probably won't help a bit. The two will be exchanging every hour or so, having time to regain their stamina. So if you insist on using the third worker inside the hole, the only effect will be that you lose more time when they swap or simply more men are waiting for their turn, being paid but not bringing any extra value. No gain at best, a loss at worst.



                    So, you can use the third person on some auxiliary tasks, like removing the excess of dirt from the well neighbourhood. Fine, it adds maybe 5% time save for the cost of a full worker.



                    But how can you utilise a fourth man, not to mention another 11? If you really insist on using all of them, you'll start having additional costs like communication, time for swapping etc. So starting with the fourth man you're going to add only delays with no benefit at all and additional extensive cost of people.



                    And that's assuming all workers are skilled. What if digging a well requires an extra precision and you hire an untrained temp for that? You need to teach them so you'll spend the first hour on showing how to properly make well walls so that they do not fall apart and how to achieve that perfectly round shape. Then they'll be working at 50% of the trained man speed and their work will still not be perfect so the perm guy will have to do the fixes, losing some time of his work. In reality before the new person can bring anything but delays the well will be ready. And it will take longer than if the skilled worker digs alone. You can still use a temp for those auxiliary tasks or the simple ones (while I'm having a break dig in the middle, leave the walls untouched) but that's still 5, maybe 10% gain at best. And if the temp hits the wall the trained worker have to fix all that and it is no longer a gain at all.



                    And it's something as simple as swinging a spade. Coding is way more complex.



                    Summarise it with something like that:




                    It's obvious that you need to train a dev and 1 month is a minimum
                    to make them run at the basic productivity level if they are
                    skilled
                    . During the training you need to invest time of one regular
                    dev into the training and the work of temps has to be reviewed anyway
                    so adding anyone to the team for less than 4-6 months is nothing but
                    waste.




                    The other idea suggested you could be involved in the hiring process. That's a good advice to reduce the time of introducing a new person into the team and limiting number of errors in their code but it'll still require training (a lead in). So a temp, even a skilled one, for one month is a waste. At best, you can use them to write auxiliary things. Like unit tests ;-)



                    If your manager can't comprehend such comparison, your last option is to hit the job market again.






                    share|improve this answer


















                    • 3




                      "Let's say you need to dig a well that is 1m in diameter and 15m deep. One man needs 15 hours to dig it. How many men will it take to do the task in 1h?" this in particular is fantastic, as unlike the overtly obvious pregnancy example, it provides the "gotcha!" angle that's synonymous with what's occurring with trying to hire more devs, so it's more cognitively relatable as a metaphor, in terms of providing that superficial "well it SHOULD work this way!" first impression. We use a "one month ramp up" for every position, even non devs, and even that ignores the cost to the rest of the team.
                      – taswyn
                      yesterday






                    • 3




                      The fun thing is that in many cultures this is a typical math question at the primary level with the accepted answer "1h". I think it might be the core source of later misconception that adding more resources always reduces time in a linear way. After all that's what they taught you in school!
                      – Ister
                      yesterday










                    • "it is impossible to sharpen a pencil with a blunt axe. It is equally vain to try to do it with ten blunt axes instead." - Edsger W. Dijkstra
                      – JimmyJames
                      19 hours ago












                    up vote
                    18
                    down vote










                    up vote
                    18
                    down vote









                    What you wrote actually raises a number of red flags suggesting the only viable solution is changing your job. You wrote your manager ignores the importance and value of unit tests, I assume it's the same with the analysis and design as those misconceptions usually come in bundles. You also say that he thinks adding a temp dev for a month will bring anything else than a further delay. Apparently your manager has little idea how the software development project should be run and there are little to no chances that he's going to change his mind



                    Yet, you can try.



                    While a 9 women to deliver in a month is a popular way of "proving" that adding people doesn't necessarily expedite work it usually doesn't work on someone who is not into real understanding the problem but knows better instead. Rather than that use the example of digging a well.




                    Let's say you need to dig a well that is 1m in diameter and 15m deep.
                    One man needs 15 hours to dig it. How many men will it take to do the task in 1h?




                    The answer most managers (and most people in general) will give you will be that it'll be 15 men but that's not true and it's simple to show to anyone who has no idea about the coding well digging at all. Just like in coding you can replace one digging person with another one. You can (to some level) share your work. But only one man fits in a hole 1m wide to work at all. If you add second person inside, the first one will be obstructed by them and won't be able to do their work.



                    You can expedite work a bit swapping an exhausted person with a fresh one so a second person will help a bit. It'll not be 1/2 of the time, a save will be probably no more than 1/3. But adding a third man most probably won't help a bit. The two will be exchanging every hour or so, having time to regain their stamina. So if you insist on using the third worker inside the hole, the only effect will be that you lose more time when they swap or simply more men are waiting for their turn, being paid but not bringing any extra value. No gain at best, a loss at worst.



                    So, you can use the third person on some auxiliary tasks, like removing the excess of dirt from the well neighbourhood. Fine, it adds maybe 5% time save for the cost of a full worker.



                    But how can you utilise a fourth man, not to mention another 11? If you really insist on using all of them, you'll start having additional costs like communication, time for swapping etc. So starting with the fourth man you're going to add only delays with no benefit at all and additional extensive cost of people.



                    And that's assuming all workers are skilled. What if digging a well requires an extra precision and you hire an untrained temp for that? You need to teach them so you'll spend the first hour on showing how to properly make well walls so that they do not fall apart and how to achieve that perfectly round shape. Then they'll be working at 50% of the trained man speed and their work will still not be perfect so the perm guy will have to do the fixes, losing some time of his work. In reality before the new person can bring anything but delays the well will be ready. And it will take longer than if the skilled worker digs alone. You can still use a temp for those auxiliary tasks or the simple ones (while I'm having a break dig in the middle, leave the walls untouched) but that's still 5, maybe 10% gain at best. And if the temp hits the wall the trained worker have to fix all that and it is no longer a gain at all.



                    And it's something as simple as swinging a spade. Coding is way more complex.



                    Summarise it with something like that:




                    It's obvious that you need to train a dev and 1 month is a minimum
                    to make them run at the basic productivity level if they are
                    skilled
                    . During the training you need to invest time of one regular
                    dev into the training and the work of temps has to be reviewed anyway
                    so adding anyone to the team for less than 4-6 months is nothing but
                    waste.




                    The other idea suggested you could be involved in the hiring process. That's a good advice to reduce the time of introducing a new person into the team and limiting number of errors in their code but it'll still require training (a lead in). So a temp, even a skilled one, for one month is a waste. At best, you can use them to write auxiliary things. Like unit tests ;-)



                    If your manager can't comprehend such comparison, your last option is to hit the job market again.






                    share|improve this answer














                    What you wrote actually raises a number of red flags suggesting the only viable solution is changing your job. You wrote your manager ignores the importance and value of unit tests, I assume it's the same with the analysis and design as those misconceptions usually come in bundles. You also say that he thinks adding a temp dev for a month will bring anything else than a further delay. Apparently your manager has little idea how the software development project should be run and there are little to no chances that he's going to change his mind



                    Yet, you can try.



                    While a 9 women to deliver in a month is a popular way of "proving" that adding people doesn't necessarily expedite work it usually doesn't work on someone who is not into real understanding the problem but knows better instead. Rather than that use the example of digging a well.




                    Let's say you need to dig a well that is 1m in diameter and 15m deep.
                    One man needs 15 hours to dig it. How many men will it take to do the task in 1h?




                    The answer most managers (and most people in general) will give you will be that it'll be 15 men but that's not true and it's simple to show to anyone who has no idea about the coding well digging at all. Just like in coding you can replace one digging person with another one. You can (to some level) share your work. But only one man fits in a hole 1m wide to work at all. If you add second person inside, the first one will be obstructed by them and won't be able to do their work.



                    You can expedite work a bit swapping an exhausted person with a fresh one so a second person will help a bit. It'll not be 1/2 of the time, a save will be probably no more than 1/3. But adding a third man most probably won't help a bit. The two will be exchanging every hour or so, having time to regain their stamina. So if you insist on using the third worker inside the hole, the only effect will be that you lose more time when they swap or simply more men are waiting for their turn, being paid but not bringing any extra value. No gain at best, a loss at worst.



                    So, you can use the third person on some auxiliary tasks, like removing the excess of dirt from the well neighbourhood. Fine, it adds maybe 5% time save for the cost of a full worker.



                    But how can you utilise a fourth man, not to mention another 11? If you really insist on using all of them, you'll start having additional costs like communication, time for swapping etc. So starting with the fourth man you're going to add only delays with no benefit at all and additional extensive cost of people.



                    And that's assuming all workers are skilled. What if digging a well requires an extra precision and you hire an untrained temp for that? You need to teach them so you'll spend the first hour on showing how to properly make well walls so that they do not fall apart and how to achieve that perfectly round shape. Then they'll be working at 50% of the trained man speed and their work will still not be perfect so the perm guy will have to do the fixes, losing some time of his work. In reality before the new person can bring anything but delays the well will be ready. And it will take longer than if the skilled worker digs alone. You can still use a temp for those auxiliary tasks or the simple ones (while I'm having a break dig in the middle, leave the walls untouched) but that's still 5, maybe 10% gain at best. And if the temp hits the wall the trained worker have to fix all that and it is no longer a gain at all.



                    And it's something as simple as swinging a spade. Coding is way more complex.



                    Summarise it with something like that:




                    It's obvious that you need to train a dev and 1 month is a minimum
                    to make them run at the basic productivity level if they are
                    skilled
                    . During the training you need to invest time of one regular
                    dev into the training and the work of temps has to be reviewed anyway
                    so adding anyone to the team for less than 4-6 months is nothing but
                    waste.




                    The other idea suggested you could be involved in the hiring process. That's a good advice to reduce the time of introducing a new person into the team and limiting number of errors in their code but it'll still require training (a lead in). So a temp, even a skilled one, for one month is a waste. At best, you can use them to write auxiliary things. Like unit tests ;-)



                    If your manager can't comprehend such comparison, your last option is to hit the job market again.







                    share|improve this answer














                    share|improve this answer



                    share|improve this answer








                    edited yesterday









                    taswyn

                    25216




                    25216










                    answered 2 days ago









                    Ister

                    5388




                    5388







                    • 3




                      "Let's say you need to dig a well that is 1m in diameter and 15m deep. One man needs 15 hours to dig it. How many men will it take to do the task in 1h?" this in particular is fantastic, as unlike the overtly obvious pregnancy example, it provides the "gotcha!" angle that's synonymous with what's occurring with trying to hire more devs, so it's more cognitively relatable as a metaphor, in terms of providing that superficial "well it SHOULD work this way!" first impression. We use a "one month ramp up" for every position, even non devs, and even that ignores the cost to the rest of the team.
                      – taswyn
                      yesterday






                    • 3




                      The fun thing is that in many cultures this is a typical math question at the primary level with the accepted answer "1h". I think it might be the core source of later misconception that adding more resources always reduces time in a linear way. After all that's what they taught you in school!
                      – Ister
                      yesterday










                    • "it is impossible to sharpen a pencil with a blunt axe. It is equally vain to try to do it with ten blunt axes instead." - Edsger W. Dijkstra
                      – JimmyJames
                      19 hours ago












                    • 3




                      "Let's say you need to dig a well that is 1m in diameter and 15m deep. One man needs 15 hours to dig it. How many men will it take to do the task in 1h?" this in particular is fantastic, as unlike the overtly obvious pregnancy example, it provides the "gotcha!" angle that's synonymous with what's occurring with trying to hire more devs, so it's more cognitively relatable as a metaphor, in terms of providing that superficial "well it SHOULD work this way!" first impression. We use a "one month ramp up" for every position, even non devs, and even that ignores the cost to the rest of the team.
                      – taswyn
                      yesterday






                    • 3




                      The fun thing is that in many cultures this is a typical math question at the primary level with the accepted answer "1h". I think it might be the core source of later misconception that adding more resources always reduces time in a linear way. After all that's what they taught you in school!
                      – Ister
                      yesterday










                    • "it is impossible to sharpen a pencil with a blunt axe. It is equally vain to try to do it with ten blunt axes instead." - Edsger W. Dijkstra
                      – JimmyJames
                      19 hours ago







                    3




                    3




                    "Let's say you need to dig a well that is 1m in diameter and 15m deep. One man needs 15 hours to dig it. How many men will it take to do the task in 1h?" this in particular is fantastic, as unlike the overtly obvious pregnancy example, it provides the "gotcha!" angle that's synonymous with what's occurring with trying to hire more devs, so it's more cognitively relatable as a metaphor, in terms of providing that superficial "well it SHOULD work this way!" first impression. We use a "one month ramp up" for every position, even non devs, and even that ignores the cost to the rest of the team.
                    – taswyn
                    yesterday




                    "Let's say you need to dig a well that is 1m in diameter and 15m deep. One man needs 15 hours to dig it. How many men will it take to do the task in 1h?" this in particular is fantastic, as unlike the overtly obvious pregnancy example, it provides the "gotcha!" angle that's synonymous with what's occurring with trying to hire more devs, so it's more cognitively relatable as a metaphor, in terms of providing that superficial "well it SHOULD work this way!" first impression. We use a "one month ramp up" for every position, even non devs, and even that ignores the cost to the rest of the team.
                    – taswyn
                    yesterday




                    3




                    3




                    The fun thing is that in many cultures this is a typical math question at the primary level with the accepted answer "1h". I think it might be the core source of later misconception that adding more resources always reduces time in a linear way. After all that's what they taught you in school!
                    – Ister
                    yesterday




                    The fun thing is that in many cultures this is a typical math question at the primary level with the accepted answer "1h". I think it might be the core source of later misconception that adding more resources always reduces time in a linear way. After all that's what they taught you in school!
                    – Ister
                    yesterday












                    "it is impossible to sharpen a pencil with a blunt axe. It is equally vain to try to do it with ten blunt axes instead." - Edsger W. Dijkstra
                    – JimmyJames
                    19 hours ago




                    "it is impossible to sharpen a pencil with a blunt axe. It is equally vain to try to do it with ten blunt axes instead." - Edsger W. Dijkstra
                    – JimmyJames
                    19 hours ago










                    up vote
                    6
                    down vote














                    How to approach boss that keeps hiring temp workers only to have me finish something?




                    You already have. All you can do is persevere with telling the boss.



                    Meanwhile there is a solution, the reason you're having to redo work is because you found out it was rubbish too late. You have an opportunity to practice some skills and take on more responsibility, but you're not doing it. It's not an esoteric problem, it's just a way of looking at a problem and resolution methodology. Well worth learning.



                    This is one of those times that micromanaging is critical. Assess the situation as a whole (including the people, they're a resource) and make a plan of resolution, use the manpower efficiently on those terms. This is the ONLY way to do it, you don't let even experienced people deviate from your plan, they don't have the full picture, you give them small tasks and check everything they do, they report to you at every step.



                    The most important bit is to understand the problem wholly and have a solid plan. Then break it up into simpler tasks wherever possible and don't rely on anyone to do their bit unsupervised.






                    share|improve this answer


























                      up vote
                      6
                      down vote














                      How to approach boss that keeps hiring temp workers only to have me finish something?




                      You already have. All you can do is persevere with telling the boss.



                      Meanwhile there is a solution, the reason you're having to redo work is because you found out it was rubbish too late. You have an opportunity to practice some skills and take on more responsibility, but you're not doing it. It's not an esoteric problem, it's just a way of looking at a problem and resolution methodology. Well worth learning.



                      This is one of those times that micromanaging is critical. Assess the situation as a whole (including the people, they're a resource) and make a plan of resolution, use the manpower efficiently on those terms. This is the ONLY way to do it, you don't let even experienced people deviate from your plan, they don't have the full picture, you give them small tasks and check everything they do, they report to you at every step.



                      The most important bit is to understand the problem wholly and have a solid plan. Then break it up into simpler tasks wherever possible and don't rely on anyone to do their bit unsupervised.






                      share|improve this answer
























                        up vote
                        6
                        down vote










                        up vote
                        6
                        down vote










                        How to approach boss that keeps hiring temp workers only to have me finish something?




                        You already have. All you can do is persevere with telling the boss.



                        Meanwhile there is a solution, the reason you're having to redo work is because you found out it was rubbish too late. You have an opportunity to practice some skills and take on more responsibility, but you're not doing it. It's not an esoteric problem, it's just a way of looking at a problem and resolution methodology. Well worth learning.



                        This is one of those times that micromanaging is critical. Assess the situation as a whole (including the people, they're a resource) and make a plan of resolution, use the manpower efficiently on those terms. This is the ONLY way to do it, you don't let even experienced people deviate from your plan, they don't have the full picture, you give them small tasks and check everything they do, they report to you at every step.



                        The most important bit is to understand the problem wholly and have a solid plan. Then break it up into simpler tasks wherever possible and don't rely on anyone to do their bit unsupervised.






                        share|improve this answer















                        How to approach boss that keeps hiring temp workers only to have me finish something?




                        You already have. All you can do is persevere with telling the boss.



                        Meanwhile there is a solution, the reason you're having to redo work is because you found out it was rubbish too late. You have an opportunity to practice some skills and take on more responsibility, but you're not doing it. It's not an esoteric problem, it's just a way of looking at a problem and resolution methodology. Well worth learning.



                        This is one of those times that micromanaging is critical. Assess the situation as a whole (including the people, they're a resource) and make a plan of resolution, use the manpower efficiently on those terms. This is the ONLY way to do it, you don't let even experienced people deviate from your plan, they don't have the full picture, you give them small tasks and check everything they do, they report to you at every step.



                        The most important bit is to understand the problem wholly and have a solid plan. Then break it up into simpler tasks wherever possible and don't rely on anyone to do their bit unsupervised.







                        share|improve this answer














                        share|improve this answer



                        share|improve this answer








                        edited 2 days ago

























                        answered 2 days ago









                        Kilisi

                        102k56228399




                        102k56228399




















                            up vote
                            4
                            down vote













                            The skill level of the temps is likely dependant upon the amount of money your manager is investing into them. As they are only temps he obviously doesn't want to be wasting too much funding. As you say your boss is not a developer and likely just assumes that a coder can code.



                            However, if it's increasing your work load in the long term and it's affecting your current work. You need to pull him for a 1x1 and just convey your issues and the reason that you are not delegating as much work down to them and your worries for the future if you do delegate work to them



                            You want to make sure you don't come across as if you're having a go at your boss but at the same time you need to get the message across as he doesn't understand what happens within development. If you simply mention that you would be happy to delegate the work but only when you feel safe to do so.






                            share|improve this answer


























                              up vote
                              4
                              down vote













                              The skill level of the temps is likely dependant upon the amount of money your manager is investing into them. As they are only temps he obviously doesn't want to be wasting too much funding. As you say your boss is not a developer and likely just assumes that a coder can code.



                              However, if it's increasing your work load in the long term and it's affecting your current work. You need to pull him for a 1x1 and just convey your issues and the reason that you are not delegating as much work down to them and your worries for the future if you do delegate work to them



                              You want to make sure you don't come across as if you're having a go at your boss but at the same time you need to get the message across as he doesn't understand what happens within development. If you simply mention that you would be happy to delegate the work but only when you feel safe to do so.






                              share|improve this answer
























                                up vote
                                4
                                down vote










                                up vote
                                4
                                down vote









                                The skill level of the temps is likely dependant upon the amount of money your manager is investing into them. As they are only temps he obviously doesn't want to be wasting too much funding. As you say your boss is not a developer and likely just assumes that a coder can code.



                                However, if it's increasing your work load in the long term and it's affecting your current work. You need to pull him for a 1x1 and just convey your issues and the reason that you are not delegating as much work down to them and your worries for the future if you do delegate work to them



                                You want to make sure you don't come across as if you're having a go at your boss but at the same time you need to get the message across as he doesn't understand what happens within development. If you simply mention that you would be happy to delegate the work but only when you feel safe to do so.






                                share|improve this answer














                                The skill level of the temps is likely dependant upon the amount of money your manager is investing into them. As they are only temps he obviously doesn't want to be wasting too much funding. As you say your boss is not a developer and likely just assumes that a coder can code.



                                However, if it's increasing your work load in the long term and it's affecting your current work. You need to pull him for a 1x1 and just convey your issues and the reason that you are not delegating as much work down to them and your worries for the future if you do delegate work to them



                                You want to make sure you don't come across as if you're having a go at your boss but at the same time you need to get the message across as he doesn't understand what happens within development. If you simply mention that you would be happy to delegate the work but only when you feel safe to do so.







                                share|improve this answer














                                share|improve this answer



                                share|improve this answer








                                edited 2 days ago

























                                answered 2 days ago









                                Twyxz

                                5,21052251




                                5,21052251




















                                    up vote
                                    4
                                    down vote













                                    If you can get away with logic arguments like the 9 months to make a baby analogy, that's great but, in my experience, this argument only works with people who already get it. And even when they do, it will often be followed with questions about what the optimal number of team members will be.



                                    What might help if logic fails is to put together some data showing how work is actually getting done and focus on which people's work needs remediation. If you pull this together, you can show a pretty dramatic graph of who is actually adding to the output and who is detracting from it.



                                    Part of the problem is that managers are under pressure to deliver and they need to show that they are doing something to make it happen. Doing nothing could make them look ineffectual and irrelevant. You can help with this by offering up some changes that your manager can make that will help (better machines, laptops, whiteboards, a build server, different hours, isolated work space, etc.)






                                    share|improve this answer
























                                      up vote
                                      4
                                      down vote













                                      If you can get away with logic arguments like the 9 months to make a baby analogy, that's great but, in my experience, this argument only works with people who already get it. And even when they do, it will often be followed with questions about what the optimal number of team members will be.



                                      What might help if logic fails is to put together some data showing how work is actually getting done and focus on which people's work needs remediation. If you pull this together, you can show a pretty dramatic graph of who is actually adding to the output and who is detracting from it.



                                      Part of the problem is that managers are under pressure to deliver and they need to show that they are doing something to make it happen. Doing nothing could make them look ineffectual and irrelevant. You can help with this by offering up some changes that your manager can make that will help (better machines, laptops, whiteboards, a build server, different hours, isolated work space, etc.)






                                      share|improve this answer






















                                        up vote
                                        4
                                        down vote










                                        up vote
                                        4
                                        down vote









                                        If you can get away with logic arguments like the 9 months to make a baby analogy, that's great but, in my experience, this argument only works with people who already get it. And even when they do, it will often be followed with questions about what the optimal number of team members will be.



                                        What might help if logic fails is to put together some data showing how work is actually getting done and focus on which people's work needs remediation. If you pull this together, you can show a pretty dramatic graph of who is actually adding to the output and who is detracting from it.



                                        Part of the problem is that managers are under pressure to deliver and they need to show that they are doing something to make it happen. Doing nothing could make them look ineffectual and irrelevant. You can help with this by offering up some changes that your manager can make that will help (better machines, laptops, whiteboards, a build server, different hours, isolated work space, etc.)






                                        share|improve this answer












                                        If you can get away with logic arguments like the 9 months to make a baby analogy, that's great but, in my experience, this argument only works with people who already get it. And even when they do, it will often be followed with questions about what the optimal number of team members will be.



                                        What might help if logic fails is to put together some data showing how work is actually getting done and focus on which people's work needs remediation. If you pull this together, you can show a pretty dramatic graph of who is actually adding to the output and who is detracting from it.



                                        Part of the problem is that managers are under pressure to deliver and they need to show that they are doing something to make it happen. Doing nothing could make them look ineffectual and irrelevant. You can help with this by offering up some changes that your manager can make that will help (better machines, laptops, whiteboards, a build server, different hours, isolated work space, etc.)







                                        share|improve this answer












                                        share|improve this answer



                                        share|improve this answer










                                        answered yesterday









                                        JimmyJames

                                        2,4221610




                                        2,4221610




















                                            up vote
                                            1
                                            down vote













                                            I find it useful to discuss a specific example. Take one case of something a temp did that took fixing by you. Describe the issue being worked on. Make a careful timeline of the events, showing when the temp got asked to work on it, how long the temp worked on it, when the problems were discovered, how the problems were fixed, and when the code was ready or at least back to usable. Compare with an estimate of how it would have worked with a stable development team. You can admit that you cherry-picked the example, but also have a list of many issues where this has transpired.



                                            Now discuss your solution, which seems to be hiring a permanent addition to the staff. How long will it take to train this person (but you only do it once, not once per temp), how do the costs compare (as best you know), etc.



                                            It sounds like your boss/company is not understanding that there is too much work for you to do. Hiring temps makes sense when the overload is temporary, but is a very costly solution when the overload is permanent. You need to make this case.






                                            share|improve this answer
























                                              up vote
                                              1
                                              down vote













                                              I find it useful to discuss a specific example. Take one case of something a temp did that took fixing by you. Describe the issue being worked on. Make a careful timeline of the events, showing when the temp got asked to work on it, how long the temp worked on it, when the problems were discovered, how the problems were fixed, and when the code was ready or at least back to usable. Compare with an estimate of how it would have worked with a stable development team. You can admit that you cherry-picked the example, but also have a list of many issues where this has transpired.



                                              Now discuss your solution, which seems to be hiring a permanent addition to the staff. How long will it take to train this person (but you only do it once, not once per temp), how do the costs compare (as best you know), etc.



                                              It sounds like your boss/company is not understanding that there is too much work for you to do. Hiring temps makes sense when the overload is temporary, but is a very costly solution when the overload is permanent. You need to make this case.






                                              share|improve this answer






















                                                up vote
                                                1
                                                down vote










                                                up vote
                                                1
                                                down vote









                                                I find it useful to discuss a specific example. Take one case of something a temp did that took fixing by you. Describe the issue being worked on. Make a careful timeline of the events, showing when the temp got asked to work on it, how long the temp worked on it, when the problems were discovered, how the problems were fixed, and when the code was ready or at least back to usable. Compare with an estimate of how it would have worked with a stable development team. You can admit that you cherry-picked the example, but also have a list of many issues where this has transpired.



                                                Now discuss your solution, which seems to be hiring a permanent addition to the staff. How long will it take to train this person (but you only do it once, not once per temp), how do the costs compare (as best you know), etc.



                                                It sounds like your boss/company is not understanding that there is too much work for you to do. Hiring temps makes sense when the overload is temporary, but is a very costly solution when the overload is permanent. You need to make this case.






                                                share|improve this answer












                                                I find it useful to discuss a specific example. Take one case of something a temp did that took fixing by you. Describe the issue being worked on. Make a careful timeline of the events, showing when the temp got asked to work on it, how long the temp worked on it, when the problems were discovered, how the problems were fixed, and when the code was ready or at least back to usable. Compare with an estimate of how it would have worked with a stable development team. You can admit that you cherry-picked the example, but also have a list of many issues where this has transpired.



                                                Now discuss your solution, which seems to be hiring a permanent addition to the staff. How long will it take to train this person (but you only do it once, not once per temp), how do the costs compare (as best you know), etc.



                                                It sounds like your boss/company is not understanding that there is too much work for you to do. Hiring temps makes sense when the overload is temporary, but is a very costly solution when the overload is permanent. You need to make this case.







                                                share|improve this answer












                                                share|improve this answer



                                                share|improve this answer










                                                answered 11 hours ago









                                                Ross Millikan

                                                1415




                                                1415



























                                                     

                                                    draft saved


                                                    draft discarded















































                                                     


                                                    draft saved


                                                    draft discarded














                                                    StackExchange.ready(
                                                    function ()
                                                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fworkplace.stackexchange.com%2fquestions%2f120528%2fhow-should-i-approach-a-boss-that-keeps-hiring-temporary-workers-only-to-have-m%23new-answer', 'question_page');

                                                    );

                                                    Post as a guest

















































































                                                    Comments

                                                    Popular posts from this blog

                                                    What does second last employer means? [closed]

                                                    List of Gilmore Girls characters

                                                    Confectionery