{"id":40062,"date":"2021-06-23T08:09:00","date_gmt":"2021-06-23T12:09:00","guid":{"rendered":"https:\/\/www.shortform.com\/blog\/?p=40062"},"modified":"2021-06-26T13:48:56","modified_gmt":"2021-06-26T17:48:56","slug":"project-estimation-techniques-in-software-engineering","status":"publish","type":"post","link":"https:\/\/www.shortform.com\/blog\/project-estimation-techniques-in-software-engineering\/","title":{"rendered":"Project Estimation Techniques in Software Engineering"},"content":{"rendered":"\n<p>What are the different project estimation techniques in software engineering? What are some things you should take into account when estimating the completion deadline of a software development project?<\/p>\n\n\n\n<p>When you\u2019re programming something for someone, they always want to know when it will be done. Most of the time, you won\u2019t know exactly how long something will take, so you\u2019ll provide an estimate instead of a guarantee.<\/p>\n\n\n\n<p>There are many methods you can use to give your managers and clients an estimation, and we\u2019ll cover three of the options.&nbsp;<\/p>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Estimation Methods<\/strong><\/h2>\n\n\n\n<p>When you are giving a client an estimation of the project&#8217;s completion date, it&#8217;s important to stress that it is<em> an estimate<\/em>, not a commitment. Estimates have the following qualities:<\/p>\n\n\n\n<p><strong>1. They aren\u2019t promises<\/strong> (though businesses often interpret them as such, which is why there\u2019s often conflict between programmers and businesspeople).<\/p>\n\n\n\n<p><strong>2. They aren\u2019t single numbers\u2014they\u2019re probability distributions. <\/strong>They factor in the following <em>three <\/em>numbers:<\/p>\n\n\n\n<p><strong>3. Best-case.<\/strong> If <em>everything <\/em>goes right, you\u2019ll be finished in this amount of time. This number should be <em>very<\/em> optimistic\u2014there\u2019s only a 1% chance that you\u2019ll make this number.<\/p>\n\n\n\n<p><strong>4.<\/strong> <strong>Nominal. <\/strong>This is the amount of time you think is most likely.<\/p>\n\n\n\n<p><strong>Worst-case.<\/strong> If <em>everything <\/em>goes wrong, you\u2019ll be finished in this amount of time. This number should be <em>very<\/em> pessimistic\u2014there\u2019s only a 1% chance that this is how long the task will take you.<\/p>\n\n\n\n<p>Missing an estimate <em>isn\u2019t<\/em> unprofessional because estimates aren\u2019t guarantees. However, <strong>professionals make their estimates as accurate as possible using well-tested estimation methods.&nbsp;<\/strong><\/p>\n\n\n\n<p>Here, we&#8217;ll discuss three project estimation techniques in software engineering that are commonly used by professionals in the industry.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Method #1: Wideband Delphi<\/strong><\/h3>\n\n\n\n<p>The first estimation method is called wideband delphi and uses consensus to make estimations by pooling the experience and knowledge of several people.&nbsp;<\/p>\n\n\n\n<p>Here are the steps:<\/p>\n\n\n\n<p><strong>1. Everyone discusses a task<\/strong>\u2014what it involves, how to do it, and possible delays or hiccups.<\/p>\n\n\n\n<p><strong>2. Individually and privately, everyone estimates the nominal time.<\/strong> Be objective and honest about these dates\u2014don\u2019t factor in hope or miracles. Hope is dangerous because it leads people to create unrealistic schedules and then when things don\u2019t work out, people\u2019s reputations suffer.<\/p>\n\n\n\n<p><strong>3. Everyone reveals their estimate at the same time.<\/strong> This is so that no one\u2019s estimate influences anyone else\u2019s.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Example #1: Everyone might represent their estimate by flashing a count on their hands, with each finger held up representing a day. (If the estimate is a longer time frame than days, each finger could represent multiple days.)<\/li><li>Example #2: Everyone might reveal their estimate by flipping a card that shows how long they think a task will take. (This method is called planning poker.)<\/li><\/ul>\n\n\n\n<p>If there are any major discrepancies, the conversation continues.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>For example, if everyone holds up three or four fingers, that\u2019s essentially consensus. If everyone holds up five and one person holds up zero, there needs to be a conversation.<\/li><\/ul>\n\n\n\n<p><strong>4. After the discussion, repeat steps 2 and 3 until everyone reaches a consensus.<\/strong><\/p>\n\n\n\n<p><strong>5. To determine the best-case estimate, repeat only steps #2 and #3. Take the lowest estimate.<\/strong><\/p>\n\n\n\n<p><strong>6. To determine the worst-case estimate, repeat only steps #2 and #3 and take the highest estimate.<\/strong><\/p>\n\n\n\n<h5 class=\"wp-block-heading\">A Variation on Wideband Delphi<\/h5>\n\n\n\n<p>There\u2019s another version of wideband delphi you might find useful for estimations:<\/p>\n\n\n\n<p><strong>1. Write all the tasks onto cards and spread the cards out randomly on a surface.<\/strong><\/p>\n\n\n\n<p><strong>2.<\/strong> As a group (but without talking), <strong>everyone arranges the cards in order of how long they think each of the tasks will take.<\/strong> Anyone can move any card, and once a card has been moved a certain predetermined amount of times, it\u2019s taken off the table and the group will discuss the task until they agree on an estimated time.<\/p>\n\n\n\n<p><strong>3. Sort the cards into approximate time frames.<\/strong> Usually, the buckets are 1, 2, 3, 5, 8, and these numbers can represent weeks, days, or points (units of complexity). (Shortform example: One complicated feature might be assigned 10 points, while a simpler feature would only be worth one).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Method #2: Program Evaluation and Review Technique (PERT)<\/strong><\/h3>\n\n\n\n<p><strong>The second estimation method is the program evaluation and review technique (PERT).<\/strong> While it doesn\u2019t formally involve consulting others like wideband delphi, feel free to ask your teammates and the people around you to weigh in because their perspective might improve the accuracy.<\/p>\n\n\n\n<p>Here are the steps:&nbsp;<\/p>\n\n\n\n<p><strong>1. Create your distribution<\/strong> by coming up with the best case, nominal, and worst-case numbers.&nbsp;<\/p>\n\n\n\n<p><strong>2. Describe the probability distribution using the following formula<\/strong>: (Best + (nominal*4) + worst)\/6<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>For example, if your best-case number is 3, your nominal is 5, and your worst is 10: (3+(5*4)+10)\/6=5.5<\/li><\/ul>\n\n\n\n<p>Most of the time, this calculation will return a pessimistic-ish number because the right side of the distribution curve will be longer than the left.<\/p>\n\n\n\n<p><strong>3. Calculate the standard deviation (how much uncertainty there is)<\/strong> using this formula: (Worst &#8211; best)\/6<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>For example, continuing to use the numbers above, (10-3)\/6=1.1666\u2026<\/li><\/ul>\n\n\n\n<p><strong>4. Express the estimate as a range.<\/strong> The task will take the probability distribution amount of time plus or minus the standard deviation.&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>For example, the task will take 5.5 days \u00b1 1.2 (rounded) days. Therefore, it will take between 4.3 and 7.2 days.<\/li><\/ul>\n\n\n\n<h5 class=\"wp-block-heading\">Using PERT to Estimate Time Required for Multiple Tasks<\/h5>\n\n\n\n<p>You\u2019re rarely working on just one task at a time. You could estimate how long doing all your tasks would take by adding up all the nominal estimates, but there&#8217;s a more accurate way that takes into account the uncertainty surrounding doing multiple tasks at once.<\/p>\n\n\n\n<p>To do the calculation:<\/p>\n\n\n\n<p><strong>1. Follow steps 1-3 above for each of the individual tasks.<\/strong><\/p>\n\n\n\n<p><strong>2. Add the probability distributions (calculated in step #2 of PERT) together.<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>For example, if Task A has a probability of 4, Task B has 5, and Task C has 6, the calculation is: 4+5+6=15.<\/li><\/ul>\n\n\n\n<p><strong>3. Use the following formula to calculate the standard deviation of the group of tasks:<\/strong> \u221a(Task A standard deviation^2 + Task B standard deviation^2 Task C standard deviation^2 \u2026)&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>For example, if all the tasks have a standard deviation of 0.5, the calculation is: \u221a(0.5^2 + 0.5^2 +0.5^2)=0.87 (rounded)<\/li><\/ul>\n\n\n\n<p><strong>4. Express the estimate as the step #2 number plus or minus the step #3 number.<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>For example, doing the group of tasks will take 15 days plus or minus just under a day, so between 14-16 days.<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Method #3: Law of Large Numbers<\/strong><\/h3>\n\n\n\n<p>The law of large numbers states that <strong>if you break a big task into smaller chunks and estimate how long each chunk will take, adding up the chunk times will give you a more accurate estimate than simply estimating the big task as a whole. <\/strong>This is because the errors in small tasks compound when you do the math, which is more realistic, because uncertainty also compounds in real life.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Sharing Your Estimates<\/strong><\/h3>\n\n\n\n<p>Once you\u2019ve calculated your estimates, it\u2019s time to share them. Once you do, <strong>there\u2019s always the possibility that people won\u2019t like them and will want something done faster.<\/strong> If this happens, you have three options, not all of which are professional:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Option #1: Saying \u201cNo\u201d (Professional)<\/strong><\/h4>\n\n\n\n<p><a href=\"https:\/\/www.shortform.com\/blog\/saying-no\/\">Saying no<\/a> has a bad rap, but it\u2019s the most professional thing to do in many situations. <strong>If it\u2019s impossible to get something done properly (adhering to discipline) by a certain deadline, and you say anything other than no, you\u2019re essentially lying.<\/strong><\/p>\n\n\n\n<p>Here are some of the situations where you might think you can\u2019t say no, but in reality, it\u2019s the right thing to do:<\/p>\n\n\n\n<p><strong>1. When it\u2019s technically <\/strong><strong><em>possible <\/em><\/strong><strong>to get the job done, but only if you do it badly. <\/strong>Doing damage is unprofessional\u2014remember, your first commitment should be to your standards. (Martin\u2019s experience shows that breaking discipline is always less productive\u2014when a hurried developer writes messy code, all the other developers are slowed down too as they navigate the mess.) If the only way to get something done is to skip testing or write messy code, say no.<\/p>\n\n\n\n<p><strong>2. When the adversary is your manager. <\/strong>Your job isn\u2019t to follow your manager\u2019s orders; it\u2019s to defend your objective, which is to have enough time to do a professional job. Your manager expects defense from you.<\/p>\n\n\n\n<p><strong>3. When you want to be a team player. <\/strong>Being a team player means doing your part of the work well, helping others, and communicating truthfully. It doesn\u2019t help your team to agree to do something impossible on their behalf. It also doesn\u2019t help your team to let them fail because they\u2019ve ignored your \u201cno\u201d\u2014if they refuse to acknowledge your answer, speak to someone higher up.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>(Shortform example: When programmer Fred told his manager Annalise that meeting a project deadline was impossible, Annalise ignored him and told the CEO that the deadline was fine. Fred has copies of the multiple emails in which he explained the situation to Annalise, so when the deadline comes and the project isn\u2019t done, he could cite these to the CEO to show Annalise was the problem. Instead, as a professional, what he should do is force Annalise to tell the CEO the truth. Fred might do this by threatening to talk to the CEO himself.)<\/li><\/ul>\n\n\n\n<p><strong>4. When someone begs, cajoles, or casts you as a hero. <\/strong>Accolades and glory are tempting. You don\u2019t have to swear off heroism, just swear off working unsustainable overtime. If you really want to be a hero, do the job properly\u2014meet both a <em>reasonable <\/em>deadline and the budget.<\/p>\n\n\n\n<p><strong>5. When you\u2019ve already said yes.<\/strong> Sometimes, you\u2019ll say yes to a project that has hidden complications. Once you discover that the complications will affect your ability to do a job well, you can say no in light of the new information, even though you\u2019d previously agreed.<\/p>\n\n\n\n<p><strong>It\u2019s especially important to say no in high-stakes situations<\/strong> (such as if your company will fail if the software doesn\u2019t work). This is because high-stakes situations are when managers most need accurate information and honesty.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Explaining Yourself<\/h5>\n\n\n\n<p><strong>You don\u2019t need to explain why you\u2019ve said no. <\/strong>What\u2019s important and relevant is that something is impossible\u2014your manager doesn\u2019t need to know why to make decisions or rearrange a schedule. If your manager is reasonable and has a lot of technical knowledge, you can explain if you want to, which will usually produce one of the following reactions:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>The manager, knowing the reasoning, will be better able to accept the answer.<\/strong><\/li><li><strong>The manager will disagree with your conclusion.<\/strong> She might tell you to skip a time-consuming step such as testing (which you can\u2019t do because it would be unprofessional) or otherwise micro-manage.<\/li><\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Option #2: Saying You\u2019ll \u201cTry\u201d (Unprofessional)<\/strong><\/h4>\n\n\n\n<p><strong>Never agree to \u201ctry\u201d to do something in a time period shorter than your estimation. <\/strong>The word \u201ctry\u201d has multiple definitions and implications, none of which is honest:<\/p>\n\n\n\n<p><strong>1. You will apply extra effort.<\/strong> If you agree to try to get something done faster, it implies that you haven\u2019t been giving the project your full effort up until this point. You have an extra energy reserve, or a new plan, or a behavioral change you\u2019ve been holding back. If you\u2019re a professional, you\u2019ve <em>already <\/em>been throwing everything you have at the project. Therefore, there is nothing else <em>to <\/em>try, so by promising to do so, you\u2019re lying and <a href=\"https:\/\/www.shortform.com\/blog\/making-commitments\/\">making a commitment<\/a> you won\u2019t be able to keep.<\/p>\n\n\n\n<p><strong>2. You really mean \u201cmaybe.\u201d<\/strong> If this is the case, you should be honest about your uncertainty. If someone insists on a yes or no, and you\u2019re not sure, say no.<\/p>\n\n\n\n<p><strong>3. You really mean \u201cyes.\u201d<\/strong> The person who\u2019s saying \u201ctry\u201d rarely means \u201cyes,\u201d but it\u2019s often what the listener hears.&nbsp;<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Option #3: Saying \u201cYes\u201d (either professional or unprofessional)<\/strong><\/h4>\n\n\n\n<p><strong>If you say yes, you\u2019re committing to getting something done by the date you promised, no matter what it takes<\/strong> (overtime, skipping family vacations, and so on). It\u2019s unprofessional to say yes to something you\u2019re not sure you can achieve because other people are going to plan around you. If you miss a commitment, it\u2019s a huge blow to your reputation.<\/p>\n\n\n\n<p>On the other hand, <strong>it <\/strong><strong><em>is <\/em><\/strong><strong>professional to ask to change the parameters of the task so that you <\/strong><strong><em>can <\/em><\/strong><strong>say yes. <\/strong>(You cannot say yes without something changing because you already considered every factor during your estimation.)<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>For example, you might ask to reduce the scope of the project so that there\u2019s less to do and you can finish in a shorter amount of time.<\/li><\/ul>\n\n\n\n<p>One of the parameters you <em>might<\/em> change is your working hours, but working overtime will tire you, so it has limitations:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>What you get done won\u2019t be proportional to how much time you throw at it\u2014for example, if you work 25% more hours, you won\u2019t get 25% more work done.<\/li><li>If overtime would be required for more than two to three weeks, it won\u2019t work.<\/li><\/ul>\n\n\n\n<p>Therefore, don\u2019t agree to work overtime unless:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>It won\u2019t significantly impact your personal life.<\/li><li>It\u2019s required for no more than two weeks.<\/li><li>There\u2019s a backup plan. Your boss must have a plan for what to do if working overtime isn\u2019t enough to get the project done.<\/li><\/ul>\n\n\n\n<h5 class=\"wp-block-heading\">How to Say Yes<\/h5>\n\n\n\n<p>According to consultant Roy Oshervoe, there are three stages to saying yes and committing:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li><strong>Saying yes.<\/strong> Many people <em>say <\/em>yes, but don\u2019t mean it. (Shortform example: People often say things like, \u201cI really need to eat more vegetables.\u201d They probably don\u2019t even want to eat more vegetables.)<\/li><li><strong>Meaning the yes.<\/strong> Few people get to this stage, often because they think the commitment is impossible or depends on someone else.<\/li><li><strong>Carrying out the yes.<\/strong> Only professionals get to this stage.<\/li><\/ol>\n\n\n\n<p>You can help yourself reach the last stage by <a href=\"https:\/\/www.shortform.com\/blog\/how-to-pay-attention\/\">paying attention<\/a> to the language you use. Say \u201cI will\u201d instead of should, need, wish, hope, let\u2019s (all of these words abdicate responsibility). Once you\u2019ve said \u201cI will,\u201d you\u2019re accountable\u2014whoever you said it to will know that if it doesn\u2019t happen, it\u2019s your fault. Fault feels bad, so you\u2019ll be motivated to do what you said you would.&nbsp;<\/p>\n\n\n\n<p><strong>Don\u2019t commit to things you can\u2019t control.<\/strong> If you can\u2019t get something done without the help of someone else, don\u2019t commit because you have no way of following through. Instead, commit to something that will get you <em>closer <\/em>to getting something done.&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>(Shortform example: If you\u2019re building a website and you can\u2019t finish until the design department gives you the color palette, instead of committing to finish the website, commit to meeting with the design team about the color palette for an hour.)<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Breaking a Commitment<\/strong><\/h3>\n\n\n\n<p>There will be times when you can\u2019t make a commitment because life gets in the way. <strong>Everyone is late at some point in their lives, and the best way to manage this is to regularly assess and communicate:<\/strong><\/p>\n\n\n\n<p><strong>1. Update your estimates every day and share them.<\/strong><\/p>\n\n\n\n<p><strong>2. As soon as you realize you can\u2019t make a commitment, tell everyone<\/strong> who\u2019s depending on you. The earlier you tell them, the more time they have to come up with a backup plan. Someone else might be able to take over the commitment, the team might be able to reassess priorities, or you can make a new commitment.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>For example, if you\u2019re going to be late for a team meeting because your car broke down, call your team right away so they can reschedule, someone else can do your part of the presentation, or they can cancel the meeting and work on something else instead.<\/li><\/ul>\n\n\n\n<p><strong>However, if someone makes a commitment on your <\/strong><strong><em>behalf<\/em><\/strong><em> <\/em>(for example, your employer promises a customer something without talking to you about it first), <strong>professionalism requires you to help the promiser meet the commitment, but professionalism <\/strong><strong><em>doesn\u2019t<\/em><\/strong><strong> require you to take ownership of the commitment.<\/strong> If you can\u2019t meet the commitment, <em>you\u2019re <\/em>not breaking it, the promiser is. <em>She <\/em>must <a href=\"https:\/\/www.shortform.com\/blog\/accepting-responsibility\/\">take responsibility<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>What are the different project estimation techniques in software engineering? What are some things you should take into account when estimating the completion deadline of a software development project? When you\u2019re programming something for someone, they always want to know when it will be done. Most of the time, you won\u2019t know exactly how long something will take, so you\u2019ll provide an estimate instead of a guarantee. There are many methods you can use to give your managers and clients an estimation, and we\u2019ll cover three of the options.&nbsp;<\/p>\n","protected":false},"author":7,"featured_media":40116,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[34,25,30],"tags":[397],"class_list":["post-40062","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-communication","category-statistics","category-work","tag-the-clean-coder","","tg-column-two"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.3 (Yoast SEO v24.3) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Project Estimation Techniques in Software Engineering - Shortform Books<\/title>\n<meta name=\"description\" content=\"There are many techniques you can use to give your clients an estimation of a software engineering project. Here are some of your options.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.shortform.com\/blog\/project-estimation-techniques-in-software-engineering\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Project Estimation Techniques in Software Engineering\" \/>\n<meta property=\"og:description\" content=\"There are many techniques you can use to give your clients an estimation of a software engineering project. Here are some of your options.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.shortform.com\/blog\/project-estimation-techniques-in-software-engineering\/\" \/>\n<meta property=\"og:site_name\" content=\"Shortform Books\" \/>\n<meta property=\"article:published_time\" content=\"2021-06-23T12:09:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-06-26T17:48:56+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/s3.amazonaws.com\/wordpress.shortform.com\/blog\/wp-content\/uploads\/2021\/06\/computer-coding-laptop-technology-working.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Darya Sinusoid\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Darya Sinusoid\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.shortform.com\/blog\/project-estimation-techniques-in-software-engineering\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.shortform.com\/blog\/project-estimation-techniques-in-software-engineering\/\"},\"author\":{\"name\":\"Darya Sinusoid\",\"@id\":\"https:\/\/www.shortform.com\/blog\/#\/schema\/person\/0421cce75bc249b11e2517b3a91f9c46\"},\"headline\":\"Project Estimation Techniques in Software Engineering\",\"datePublished\":\"2021-06-23T12:09:00+00:00\",\"dateModified\":\"2021-06-26T17:48:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.shortform.com\/blog\/project-estimation-techniques-in-software-engineering\/\"},\"wordCount\":2680,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.shortform.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.shortform.com\/blog\/project-estimation-techniques-in-software-engineering\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.shortform.com\/blog\/wp-content\/uploads\/2021\/06\/computer-coding-laptop-technology-working.jpg\",\"keywords\":[\"The Clean Coder\"],\"articleSection\":[\"Communication\",\"Statistics\",\"Work\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.shortform.com\/blog\/project-estimation-techniques-in-software-engineering\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.shortform.com\/blog\/project-estimation-techniques-in-software-engineering\/\",\"url\":\"https:\/\/www.shortform.com\/blog\/project-estimation-techniques-in-software-engineering\/\",\"name\":\"Project Estimation Techniques in Software Engineering - Shortform Books\",\"isPartOf\":{\"@id\":\"https:\/\/www.shortform.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.shortform.com\/blog\/project-estimation-techniques-in-software-engineering\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.shortform.com\/blog\/project-estimation-techniques-in-software-engineering\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.shortform.com\/blog\/wp-content\/uploads\/2021\/06\/computer-coding-laptop-technology-working.jpg\",\"datePublished\":\"2021-06-23T12:09:00+00:00\",\"dateModified\":\"2021-06-26T17:48:56+00:00\",\"description\":\"There are many techniques you can use to give your clients an estimation of a software engineering project. Here are some of your options.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.shortform.com\/blog\/project-estimation-techniques-in-software-engineering\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.shortform.com\/blog\/project-estimation-techniques-in-software-engineering\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.shortform.com\/blog\/project-estimation-techniques-in-software-engineering\/#primaryimage\",\"url\":\"https:\/\/www.shortform.com\/blog\/wp-content\/uploads\/2021\/06\/computer-coding-laptop-technology-working.jpg\",\"contentUrl\":\"https:\/\/www.shortform.com\/blog\/wp-content\/uploads\/2021\/06\/computer-coding-laptop-technology-working.jpg\",\"width\":1920,\"height\":1080},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.shortform.com\/blog\/project-estimation-techniques-in-software-engineering\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.shortform.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Project Estimation Techniques in Software Engineering\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.shortform.com\/blog\/#website\",\"url\":\"https:\/\/www.shortform.com\/blog\/\",\"name\":\"Shortform Books\",\"description\":\"The World&#039;s Best Book Summaries\",\"publisher\":{\"@id\":\"https:\/\/www.shortform.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.shortform.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.shortform.com\/blog\/#organization\",\"name\":\"Shortform Books\",\"url\":\"https:\/\/www.shortform.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.shortform.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.shortform.com\/blog\/wp-content\/uploads\/2019\/06\/logo-equilateral-with-text-no-bg.png\",\"contentUrl\":\"https:\/\/www.shortform.com\/blog\/wp-content\/uploads\/2019\/06\/logo-equilateral-with-text-no-bg.png\",\"width\":500,\"height\":74,\"caption\":\"Shortform Books\"},\"image\":{\"@id\":\"https:\/\/www.shortform.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.shortform.com\/blog\/#\/schema\/person\/0421cce75bc249b11e2517b3a91f9c46\",\"name\":\"Darya Sinusoid\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.shortform.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.shortform.com\/blog\/wp-content\/uploads\/2021\/07\/Untitled-design-1.png\",\"contentUrl\":\"https:\/\/www.shortform.com\/blog\/wp-content\/uploads\/2021\/07\/Untitled-design-1.png\",\"caption\":\"Darya Sinusoid\"},\"description\":\"Darya\u2019s love for reading started with fantasy novels (The LOTR trilogy is still her all-time-favorite). Growing up, however, she found herself transitioning to non-fiction, psychological, and self-help books. She has a degree in Psychology and a deep passion for the subject. She likes reading research-informed books that distill the workings of the human brain\/mind\/consciousness and thinking of ways to apply the insights to her own life. Some of her favorites include Thinking, Fast and Slow, How We Decide, and The Wisdom of the Enneagram.\",\"url\":\"https:\/\/www.shortform.com\/blog\/author\/darya\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Project Estimation Techniques in Software Engineering - Shortform Books","description":"There are many techniques you can use to give your clients an estimation of a software engineering project. Here are some of your options.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.shortform.com\/blog\/project-estimation-techniques-in-software-engineering\/","og_locale":"en_US","og_type":"article","og_title":"Project Estimation Techniques in Software Engineering","og_description":"There are many techniques you can use to give your clients an estimation of a software engineering project. Here are some of your options.","og_url":"https:\/\/www.shortform.com\/blog\/project-estimation-techniques-in-software-engineering\/","og_site_name":"Shortform Books","article_published_time":"2021-06-23T12:09:00+00:00","article_modified_time":"2021-06-26T17:48:56+00:00","og_image":[{"width":1920,"height":1080,"url":"https:\/\/s3.amazonaws.com\/wordpress.shortform.com\/blog\/wp-content\/uploads\/2021\/06\/computer-coding-laptop-technology-working.jpg","type":"image\/jpeg"}],"author":"Darya Sinusoid","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Darya Sinusoid","Est. reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.shortform.com\/blog\/project-estimation-techniques-in-software-engineering\/#article","isPartOf":{"@id":"https:\/\/www.shortform.com\/blog\/project-estimation-techniques-in-software-engineering\/"},"author":{"name":"Darya Sinusoid","@id":"https:\/\/www.shortform.com\/blog\/#\/schema\/person\/0421cce75bc249b11e2517b3a91f9c46"},"headline":"Project Estimation Techniques in Software Engineering","datePublished":"2021-06-23T12:09:00+00:00","dateModified":"2021-06-26T17:48:56+00:00","mainEntityOfPage":{"@id":"https:\/\/www.shortform.com\/blog\/project-estimation-techniques-in-software-engineering\/"},"wordCount":2680,"commentCount":0,"publisher":{"@id":"https:\/\/www.shortform.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.shortform.com\/blog\/project-estimation-techniques-in-software-engineering\/#primaryimage"},"thumbnailUrl":"https:\/\/www.shortform.com\/blog\/wp-content\/uploads\/2021\/06\/computer-coding-laptop-technology-working.jpg","keywords":["The Clean Coder"],"articleSection":["Communication","Statistics","Work"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.shortform.com\/blog\/project-estimation-techniques-in-software-engineering\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.shortform.com\/blog\/project-estimation-techniques-in-software-engineering\/","url":"https:\/\/www.shortform.com\/blog\/project-estimation-techniques-in-software-engineering\/","name":"Project Estimation Techniques in Software Engineering - Shortform Books","isPartOf":{"@id":"https:\/\/www.shortform.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.shortform.com\/blog\/project-estimation-techniques-in-software-engineering\/#primaryimage"},"image":{"@id":"https:\/\/www.shortform.com\/blog\/project-estimation-techniques-in-software-engineering\/#primaryimage"},"thumbnailUrl":"https:\/\/www.shortform.com\/blog\/wp-content\/uploads\/2021\/06\/computer-coding-laptop-technology-working.jpg","datePublished":"2021-06-23T12:09:00+00:00","dateModified":"2021-06-26T17:48:56+00:00","description":"There are many techniques you can use to give your clients an estimation of a software engineering project. Here are some of your options.","breadcrumb":{"@id":"https:\/\/www.shortform.com\/blog\/project-estimation-techniques-in-software-engineering\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.shortform.com\/blog\/project-estimation-techniques-in-software-engineering\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.shortform.com\/blog\/project-estimation-techniques-in-software-engineering\/#primaryimage","url":"https:\/\/www.shortform.com\/blog\/wp-content\/uploads\/2021\/06\/computer-coding-laptop-technology-working.jpg","contentUrl":"https:\/\/www.shortform.com\/blog\/wp-content\/uploads\/2021\/06\/computer-coding-laptop-technology-working.jpg","width":1920,"height":1080},{"@type":"BreadcrumbList","@id":"https:\/\/www.shortform.com\/blog\/project-estimation-techniques-in-software-engineering\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.shortform.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Project Estimation Techniques in Software Engineering"}]},{"@type":"WebSite","@id":"https:\/\/www.shortform.com\/blog\/#website","url":"https:\/\/www.shortform.com\/blog\/","name":"Shortform Books","description":"The World&#039;s Best Book Summaries","publisher":{"@id":"https:\/\/www.shortform.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.shortform.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.shortform.com\/blog\/#organization","name":"Shortform Books","url":"https:\/\/www.shortform.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.shortform.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.shortform.com\/blog\/wp-content\/uploads\/2019\/06\/logo-equilateral-with-text-no-bg.png","contentUrl":"https:\/\/www.shortform.com\/blog\/wp-content\/uploads\/2019\/06\/logo-equilateral-with-text-no-bg.png","width":500,"height":74,"caption":"Shortform Books"},"image":{"@id":"https:\/\/www.shortform.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.shortform.com\/blog\/#\/schema\/person\/0421cce75bc249b11e2517b3a91f9c46","name":"Darya Sinusoid","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.shortform.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/www.shortform.com\/blog\/wp-content\/uploads\/2021\/07\/Untitled-design-1.png","contentUrl":"https:\/\/www.shortform.com\/blog\/wp-content\/uploads\/2021\/07\/Untitled-design-1.png","caption":"Darya Sinusoid"},"description":"Darya\u2019s love for reading started with fantasy novels (The LOTR trilogy is still her all-time-favorite). Growing up, however, she found herself transitioning to non-fiction, psychological, and self-help books. She has a degree in Psychology and a deep passion for the subject. She likes reading research-informed books that distill the workings of the human brain\/mind\/consciousness and thinking of ways to apply the insights to her own life. Some of her favorites include Thinking, Fast and Slow, How We Decide, and The Wisdom of the Enneagram.","url":"https:\/\/www.shortform.com\/blog\/author\/darya\/"}]}},"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/www.shortform.com\/blog\/wp-content\/uploads\/2021\/06\/computer-coding-laptop-technology-working.jpg","_links":{"self":[{"href":"https:\/\/www.shortform.com\/blog\/wp-json\/wp\/v2\/posts\/40062","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.shortform.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.shortform.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.shortform.com\/blog\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.shortform.com\/blog\/wp-json\/wp\/v2\/comments?post=40062"}],"version-history":[{"count":8,"href":"https:\/\/www.shortform.com\/blog\/wp-json\/wp\/v2\/posts\/40062\/revisions"}],"predecessor-version":[{"id":40448,"href":"https:\/\/www.shortform.com\/blog\/wp-json\/wp\/v2\/posts\/40062\/revisions\/40448"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.shortform.com\/blog\/wp-json\/wp\/v2\/media\/40116"}],"wp:attachment":[{"href":"https:\/\/www.shortform.com\/blog\/wp-json\/wp\/v2\/media?parent=40062"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.shortform.com\/blog\/wp-json\/wp\/v2\/categories?post=40062"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.shortform.com\/blog\/wp-json\/wp\/v2\/tags?post=40062"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}