Software Development Estimation: A Quick Guide

软件开发评估: 快速指南

2022-06-15 19:00 project manager

本文共2003个字,阅读需21分钟

阅读模式 切换至中文

Software development estimation is an essential part of many projects. Even before the planning stage, it’s critical to create an accurate forecast of the project’s duration, costs and more. Despite its importance, software development estimation is often overlooked. Maybe that’s because it’s difficult to estimate properly. Software development estimation requires an understanding of all parts of your software development project and the time needed to successfully complete the work to meet the quality criteria set by your clients. There’s also money, labor and so much more. Let’s explore how software development estimation works and its techniques and tools. What Is Software Development Estimation? Software development estimation is a process by which one can accurately determine the amount of effort, as in time and money, necessary to deliver or maintain a software-based project. Of course, this defines any project estimation. What’s unique to software development estimation is that it takes into consideration the software development company’s unique techniques and processes used to complete tasks. This requires using complex tools and having sound knowledge of mathematics. For a software development estimate to be considered accurate, it’s expected to have an error margin within the five to 10 percent range. Creating such a forecast involves a substantial upfront investment in both time and money, but it pays off through a better product that satisfies its customers’ needs. Part of any software development estimate is mapping its life cycle. This means using tools such as work breakdown structure (WBS) to thoroughly understand every step in the process. ProjectManager is work and project management software with interactive Gantt charts that can import a WBS from Excel and organize your tasks, durations, dependencies and milestones. More than that, the Gantt filters for the critical path and can set a baseline to track actual progress against your plan in real time. Get started with ProjectManager today for free. How to Estimate Cost and Effort in a Software Development Project Now that we understand what a software development estimate is, how do we estimate costs and effort in software development projects? The best way to approach this difficult problem is slowly through a series of steps. Use all of the means at your disposal. That can be historical data from similar past projects or the experience of your team and experts who can guide you. Once you have some insight and context, it’s recommended that you follow these steps. 1. Map Your Software Development Life Cycle To start, you need to know all of the steps in your software development life cycle. This is the first formal project management framework and goes from project planning, analysis and design to implementation, testing and maintenance. The more information you can add to activities, key roles and deliverables for each of these stages, the more accurate your software development estimate will be. 2. Check Your Project Requirements Once you have the software development life cycle completed, it’s time to check your project requirements and ensure they match those defined by your stakeholders or client. The clearer your project requirements, the more accurate your software development estimate will be. If you skip this step, it’s almost impossible to make an accurate forecast of your costs and effort. 3. Make a Work Breakdown Structure You started to define your activities in the first step, but now you need to collect every task and deliverable for the project. The best tool for this task is a work breakdown structure (WBS). It helps you collect all of the necessary steps to get you to the final deliverable of your software development project, which will allow you to estimate time and costs. 4. Use a Software Estimation Technique Now that you’ve gathered the above information, the next step is to use a software estimation technique. The type you use will depend on the project methodology you’ll use for the software development project. We’ll get into more specifics about software development estimation techniques shortly. Software Development Estimation Tools Because of the complexity and the importance of forecasting in software development, it’s crucial that you use software estimation tools to help you get more accurate figures. As we mentioned before, brainstorming with your experienced team and experts can offer valuable insights. Historical data is also a valuable asset. The following are some other estimation tools to consider. Work Breakdown Structure The work breakdown structure (WBS) is part of the process of figuring out the time and effort for your project. Let’s take a closer look at this tool and how the WBS acts as a hierarchical list of project activities. There are two formats to work breakdown structures. One is the outline view which presents the entire project and uses numbers to record its stages. For example, you would have one stage that’s the project scope and listed beneath this heading would include facets such as determining the scope, securing sponsorship, defining resources, etc., ending with scope complete. You’d then move to the software requirements stage and make another list ending with scope complete. Related: Free Work Breakdown Structure Template for Excel The other work breakdown structure format is a tree diagram that shows the entire project including the final deliverable on top with a row of all project stages underneath. Below each stage is the list of activities. There are two types of work breakdown structures. A functional WBS is one in which the system is broken based on functions in the application which helps estimate the size of the system. The other is an activity WBS which is broken down based on activities that are further broken down into tasks. This is the type of WBS that helps estimate the effort and schedule. PERT Chart PERT is an acronym for program evaluation and review technique, also known as a three-point estimate. A PERT chart is a three-point activity estimating technique that takes into consideration uncertainty and risk. It does this by taking in three categories of estimates. The three estimates are most likely (M), which is the most likely cost and time for the project based on a realistic look at what needs to be done; optimistic (O), which is the best-case scenario for completing the project; and pessimistic (P), which is the worst-case scenario. PERT then calculates the weighted average by using the formula: PERT Estimate = (O + 4 x M) + P) / 6. The PERT chart can be made by identifying the tasks in your project, defining dependent tasks, connecting the tasks and using this to estimate the project timeline. The tasks, activities or events are represented as nodes and the connections as arrows. The critical path method is then used with the PERT equation to find the longest sequence of tasks that must be completed to finish your project successfully. This helps you estimate time and effort. Product Backlog The product backlog is an ordered list of what’s needed to be done in order to complete the project. Using the product backlog is ideal for estimating the length of your project within a certain timeframe. Estimating your product backlog allows product owners to better prioritize tasks and make decisions about scope and schedule. Story points are often used to estimate the product backlog, a unit of measure to estimate how much effort is needed to complete a product backlog item. Don’t forget to factor in the risk involved and the complexity of the task to give you a more realistic estimate of scheduling and help to better prioritize your tasks. Another method is the planning poker, in which you create a deck of cards that have a ranking scale and during a team meeting, everyone chooses the card they believe represents the time needed for each task. Then see if everyone picked the same card. If not, work towards a consensus. Software Development Estimation Techniques Here are some techniques you can use to help with software development estimation. They take into account the details of your task, the resources you have, the rate the cost to time, the duration and whether any third-party services will be required. Bottom-Up Estimation: This is where a project is divided into tasks and subtasks that are easy to define and manage. This makes it easier to come up with estimates for these tasks. Adding them up from the bottom to the top is timely but accurate. Top-Down Estimation: Conversely, top-down estimation reviews the overall scope of the project by identifying the major elements of work and making estimations on the effort and time for them outside of the rest of the project. It creates a rough or ball-park figure at an early stage of the project and takes less time than the bottom-up type. Parametric Estimation: The first step in parametric estimation is pinpointing the requirements, complexity and technology involved in the development. Then, you compile information on what work is necessary to complete a task from similar projects. Finally, the cost is found by empirical relationships between the factors involved and the total tasks in the project. In parametric estimation, use scalability for accuracy. Relative Sizing: This is a type of estimation used by agile teams. It’s done by estimating tasks or user stories by comparing or grouping them together rather than separately. It’s similar to silent grouping or affinity estimating as the agile community believes that relative over absolute estimations is more accurate. Wideband Delphi: This is a consensus-based technique useful for estimating the time needed to complete a task. It relies on experts who answer questionnaires in two or more rounds. After each round, a facilitator summarizes the findings. Experts then can revise their earlier questions in the next round. How ProjectManager Helps Software Development Estimation ProjectManager is work and project software that’s collaborative to the core. It connects teams with one source of truth to keep everyone working productively. Whether your team is in the office or remote, they’ll love our flexible software that’s flexible enough to handle agile or more traditional project management methodologies. Manage Product Backlogs With Kanban Boards One estimation tool is the product backlog. Our kanban boards allow you to manage and prioritize backlog items so the whole team can collaborate on their sprint. Managers get visibility into the process and can reallocate resources as needed to keep things moving on schedule. Automate Workflows Across Multiple Project Views We already told you how our Gantt charts can filter for critical paths, but that’s only one of several project views that we offer. Explore the sheet, calendar, list view and more to work how you please. Whether you prefer the traditional Gantt chart or the agile kanban board, all views offer workflow automation to streamline your processes. Then, set someone to authorize task approvals to make sure the task meets quality expectations. Stay on Track With Real-Time Dashboards After you’ve made your scheduling estimate, you want to stick to it. That means monitoring your progress and performance. Our real-time dashboard does that automatically for you. It collects and calculates project data, displaying the results in easy-to-read graphs and charts across six metrics. Best of all, there’s no setup required as with inferior software options. You get real-time data when you want it for more insightful decision-making. ProjectManager also offers one-click reports, task and resource management tools to keep your teams working at capacity and email and in-app notifications to make sure you’re instantly alerted of updates. Our software can help you plan, manage and report on your next software development project with ease. ProjectManager is award-winning work and project management software that organizes teams and boosts productivity. Our collaborative platform connects hybrid teams to help them work better together. Join the teams that are delivering success at NASA, Siemens and Nestle using our tool. Get started with ProjectManager today for free.
软件开发评估是许多项目的重要组成部分。即使在计划阶段之前,对项目的持续时间,成本等进行准确的预测也至关重要。尽管它很重要,但软件开发估计经常被忽视。 也许那是因为很难正确估计。软件开发评估需要了解软件开发项目的所有部分,以及成功完成工作以满足客户设定的质量标准所需的时间。还有金钱,劳动力等等。让我们探讨一下软件开发估算的工作原理及其技术和工具。 什么是软件开发估算? 软件开发评估是一个过程,通过该过程可以准确地确定交付或维护基于软件的项目所需的工作量 (如时间和金钱)。当然,这定义了任何项目估算。 软件开发估算的独特之处在于,它考虑了软件开发公司用于完成任务的独特技术和流程。这需要使用复杂的工具并具有良好的数学知识。为了使软件开发估计被认为是准确的,它的误差范围应在5到10% 范围内。创建这样的预测需要在时间和金钱上进行大量的前期投资,但是它通过满足客户需求的更好的产品来获得回报。 任何软件开发估算的一部分都是映射其生命周期。这意味着使用诸如工作分解结构 (WBS) 之类的工具来彻底了解流程中的每个步骤。ProjectManager是具有交互式甘特图的工作和项目管理软件,可以从Excel导入WBS并组织您的任务,持续时间,依赖性和里程碑。更重要的是,甘特筛选关键路径,并可以设置基线,以根据您的计划实时跟踪实际进度。立即免费开始使用ProjectManager。 如何估算软件开发项目中的成本和工作量 现在我们了解了什么是软件开发估算,那么我们如何估算软件开发项目中的成本和工作量呢?解决这一难题的最佳方法是缓慢地通过一系列步骤。使用您可以使用的所有手段。这可以是过去类似项目的历史数据,也可以是你的团队和专家的经验,他们可以指导你。 一旦你有了一些洞察力和背景,建议你遵循这些步骤。 1.映射你的软件开发生命周期 首先,您需要了解软件开发生命周期中的所有步骤。这是第一个正式的项目管理框架,从项目计划,分析和设计到实施,测试和维护。您可以添加到这些阶段的活动,关键角色和可交付成果中的信息越多,您的软件开发估算就越准确。 2.检查您的项目需求 完成软件开发生命周期后,就该检查您的项目需求,并确保它们与您的利益相关者或客户定义的需求相匹配。你的项目需求越清晰,你的软件开发估计就越准确。如果你跳过这一步,几乎不可能对你的成本和精力做出准确的预测。 3.制作工作分解结构 您开始在第一步定义您的活动,但现在您需要收集项目的每个任务和可交付成果。此任务的最佳工具是工作分解结构 (WBS)。它可以帮助您收集所有必要的步骤,以使您进入软件开发项目的最终交付项,这将使您能够估算时间和成本。 4.使用软件估算技术 既然您已经收集了上述信息,那么下一步就是使用软件估算技术。您使用的类型将取决于您将用于软件开发项目的项目方法。我们将很快详细介绍有关软件开发估算技术的更多细节。 软件开发估算工具 由于软件开发中预测的复杂性和重要性,因此使用软件估算工具来帮助您获得更准确的数字至关重要。正如我们之前提到的,与您经验丰富的团队和专家进行头脑风暴可以提供宝贵的见解。历史数据也是一笔宝贵的财富。以下是一些其他需要考虑的估计工具。 工作分解结构 工作分解结构 (WBS) 是为您的项目计算时间和精力的过程的一部分。让我们仔细看看这个工具,以及WBS如何充当项目活动的分层列表。 有两种格式来处理分解结构。一种是轮廓视图,它显示了整个项目,并使用数字记录了其阶段。例如,您将有一个阶段,即项目范围,并且在此标题下列出的阶段将包括诸如确定范围,确保赞助,定义资源等方面,以范围完成为结尾。然后,您将进入软件需求阶段,并制作另一个以范围完成结尾的列表。 相关: Excel的免费工作分解结构模板 另一种工作分解结构格式是一个树形图,它显示了整个项目,包括顶部的最终可交付成果,下面是所有项目阶段的一行。每个阶段下面是活动清单。 有两种类型的工作分解结构。功能性WBS是根据应用程序中的功能破坏系统的功能,这有助于估计系统的大小。另一个是活动WBS,它根据进一步分解为任务的活动进行分解。这是有助于估计工作量和时间表的WBS类型。 PERT图表 PERT是程序评估和审查技术的缩写,也称为三点估计。PERT图表是一种考虑不确定性和风险的三点活动估计技术。它通过接受三类估计来做到这一点。 这三个估计是最有可能的 (M),这是基于对需要做什么的现实审视的项目最可能的成本和时间; 乐观 (O),这是完成项目的最佳情况; 悲观 (P),这是最坏的情况。然后,PERT通过以下公式计算加权平均值: PERT估计 = (O 4 x M) P)/6。 PERT图表可以通过识别项目中的任务,定义相关任务,连接任务并使用它来估计项目时间表来制作。任务,活动或事件表示为节点,连接表示为箭头。然后将关键路径方法与PERT方程一起使用,以找到成功完成项目必须完成的最长任务序列。这有助于你估计时间和精力。 产品积压 产品积压工作是完成项目所需要做的事情的有序列表。使用产品积压是在一定时间范围内估计项目长度的理想选择。估计您的产品积压可以使产品所有者更好地确定任务的优先级,并就范围和时间表做出决策。 故事点通常用于估计产品积压工作,这是一个度量单位,用于估计完成产品积压工作项需要多少精力。不要忘记考虑所涉及的风险和任务的复杂性,以便为您提供更现实的计划估算,并帮助您更好地确定任务的优先级。 另一种方法是计划扑克,您可以在其中创建一副具有排名等级的纸牌,并且在团队会议期间,每个人都选择他们认为代表每个任务所需时间的纸牌。然后看看是否每个人都选了同一张卡片。如果没有,努力达成共识。 软件开发估算技术 以下是一些您可以用来帮助进行软件开发估算的技术。他们会考虑您的任务细节、您拥有的资源、时间成本费率、持续时间以及是否需要任何第三方服务。 自下而上的估计: 这是一个项目被划分为易于定义和管理的任务和子任务的地方。这使得对这些任务的估计变得更加容易。将它们从底部到顶部相加是及时但准确的。 自上而下的估计: 相反,自上而下的估计通过确定主要工作要素并对项目其余部分之外的工作和时间进行估计来审查项目的总体范围。它会在项目的早期阶段创建一个粗糙的或球形的图形,并且比自下而上的类型花费更少的时间。 参数估计: 参数估计的第一步是查明开发中涉及的需求,复杂性和技术。然后,您可以编译有关完成类似项目中的任务所需的工作的信息。最后,通过所涉及的因素与项目总任务之间的经验关系来确定成本。在参数估计中,使用可伸缩性来获得准确性。 相对规模: 这是敏捷团队使用的一种估计。它是通过将任务或用户故事进行比较或分组而不是分开来估计任务或用户故事的。它类似于沉默分组或亲和力估计,因为敏捷社区认为相对绝对估计更准确。 宽带Delphi: 这是一种基于共识的技术,可用于估计完成任务所需的时间。它依赖于专家在两轮或更多轮中回答问卷。每轮之后,主持人都会总结调查结果。然后,专家可以在下一轮中修改他们先前的问题。 ProjectManager如何帮助软件开发评估 ProjectManager是与核心协作的工作和项目软件。它将团队与一种真理联系起来,以保持每个人都富有成效地工作。无论您的团队是在办公室还是在远程,他们都会喜欢我们灵活的软件,该软件足够灵活,可以处理敏捷或更传统的项目管理方法。 用看板管理产品积压 一种估计工具是产品积压。我们的看板允许您管理积压项目并确定其优先级,以便整个团队可以在sprint上进行协作。管理人员可以了解流程,并可以根据需要重新分配资源,以使事情按计划进行。 跨多个项目视图自动化工作流 我们已经告诉您我们的甘特图如何过滤关键路径,但这只是我们提供的几个项目视图之一。浏览工作表,日历,列表视图等,以使您满意。无论您喜欢传统的甘特图还是敏捷看板,所有视图都提供工作流自动化来简化您的流程。然后,设置某人授权任务批准,以确保任务符合质量期望。 通过实时仪表板保持跟踪 在你做出了你的日程安排估计后,你想坚持下去。这意味着监视您的进度和绩效。我们的实时仪表板会自动为您完成。它收集和计算项目数据,在六个指标中以易于阅读的图形和图表显示结果。最重要的是,没有劣质软件选项需要设置。您需要实时数据以进行更深刻的决策。 ProjectManager还提供一键式报告,任务和资源管理工具,以使您的团队保持容量,并通过电子邮件和应用内通知来确保您立即收到更新警报。我们的软件可以帮助您轻松地计划,管理和报告下一个软件开发项目。 ProjectManager是屡获殊荣的工作和项目管理软件,可组织团队并提高生产力。我们的协作平台连接混合团队,帮助他们更好地合作。加入使用我们的工具在NASA,Siemens和Nestle取得成功的团队。立即免费开始使用ProjectManager。

以上中文文本为机器翻译,存在不同程度偏差和错误,请理解并参考英文原文阅读。

阅读原文