本文是:技术或非技术的软件初创公司创始人和开发团队希望充分利用敏捷软件开发方法,使他们的开发项目保持在正轨上。
写道:Alex Senson,Ashley Burton,Tyler Boulanger
建立一个伟大的软件产品有多种方式。当您推出新软件启动时,您应该首先考虑在开发过程中使用哪种开发方法。在本文中,我们将概述可用软件开发方法的比较,以及如何为项目选择正确的。
本文适用于计划开发软件产品的启动创始人。您的公司可能有一个开发团队,需要计划发展过程。或者,你可以外包给发展公司或者租一个自由职业者去做这项工作。您需要更好地管理流程并避免陷阱。
如果您正在招聘或签订开发团队,请确保您询问并理解他们将使用的开发方法。如果它们不使用方法,它可能是一个红旗,但一些非常小的操作可能不是。
有很多方法可以用来构建一个伟大的软件产品。你选择的方法将影响到你要雇佣的人,他们开发新功能的速度,以及你接收客户反馈和作出反应的速度。
通常,两个主要类别的开发过程是传统的,敏捷的软件开发方法。
我们将概述一些常见方法的优缺点,并展示如何在特定情况下成为正确的选择。使用此资源以了解传统和敏捷软件开发方法的更多信息以及如何在构建新软件产品时进行明智的决定。
要涵盖的主要主题:
- 传统与敏捷开发方法
- 快速评估传统的还是敏捷的方法是可行的。
- 传统发展方法论
- 敏捷开发方法
- 如何选择您的软件开发方法
- 在选择方法和RIC中心自己的开发方法决策树时需要评估的关键事项。
我们将通过与RIC中心合作的公司和创始人的案例研究来说明这些想法
软件开发。简介
软件开发是一系列导致创建软件产品的活动。开发过程适用于新软件或修改现有程序。它通常由以下活动组成(图1):
- 软件规范和要求工程,
- 软件设计和实现,
- 验证和验证,以及
- 软件演进和维护
内容开发
此外,内容开发(例如,支持材料、营销材料等)也是软件开发过程的一部分。所有这些活动一起工作使初创公司能够开发出可用的产品。
这些关键活动的顺序和流程取决于项目开始时选择的软件开发方法(SDM)。行业中使用了许多不同的SDMS,每个SDMS从不同的角度表示内容开发过程(例如,以规划为中心的或专为中心)。
软件开发方法的重要性
作为启动的非技术创始人,您需要了解在开发项目中可以使用的不同SDM。在其核心,SDM所选的描述描述了您的开发团队如何在整个项目中做出反应。
例如,它们会在开始开发无法偏离的计划(以计划为中心)的计划。或者开发团队将更多地关注特征的开发,并灵活地适应障碍(功能集中)。通过在开始时确定开发过程的风格,项目始于明确的期望,允许您的启动跟踪项目的进度。
SDM的选择是开发过程中至关重要的一步。这是因为选择不合适的方法是软件开发失败的最关键风险。选择不恰当的方法可能会导致项目超出预算,时间线延迟,以及缺乏需求验证,所有这些都被认为是项目失败。
传统的VS敏捷软件开发方法
关键外卖:您的启动可以在开发过程中使用传统或敏捷方法。传统需要重大的前期规划。然而,敏捷允许您在发生时对问题作出反应。
启动开发时,您在启动开发时的第一个决策之一是在开发期间决定您的启动将使用的方法。启动将使用传统(预测)方法或敏捷(自适应)吗?最成功的开始选择敏捷方法,通常由行业专家推荐。
一种传统的方法采取沉重的前端规划。在任何开发开始之前,该团队进行了全面的要求分析,并计划从头到尾出来的项目。在一个可预测的环境中,可以很好地工作。在启动时,它可以以灾难性地反次。
然而,敏捷方法不包括详细的计划,只确定明确的未来任务。这种方法在大多数情况下适用于初创公司,因为敏捷软件开发方法允许:
- 软件产品要求的动态变化,
- 持续测试和
- 频繁与用户交互
在这些传统和敏捷方法的大类别中有许多不同的方法。现在让我们稍微深入研究一下您的启动可用的每种不同的方法。
RIC中心案例研究:Expancio
Expancio是一家初创公司,提供帮助企业设计、构建和运行web应用程序的工具。有了他们的产品,企业不需要从头创建web应用程序。相反,他们可以使用Expancio的平台来节省大量开发成本。
当Expancio开始收到来自企业的服务请求并开始签署合同时,团队知道他们必须有一个适当的计划。该计划需要涵盖团队如何成功和有效地完成每个项目。
根据Expancio的工程副主席,James Lee,敏捷软件开发方法是唯一适合他们的。“Expancio由一个小型团队组成......我们希望迅速完成项目,快速转变,”李说。
这一决定建立在与金融机构合作的过去的经历,以创建Web应用程序。金融业内的公司通常使用瀑布方法,在任何工作之前需要详细策划的整个开发项目。然后,银行将在开发期间遵循严格的具体时间表,这不能轻松适应行业或市场内的任何变化。
李在金融业工作时受到李的主要挑战是,建立一套详细的具体计划提高了项目的复杂性。这种复杂性是尝试准确规划整个开发项目,并在任何工作完成之前,涵盖所有潜在的发展阶段。随着项目的复杂性增加,完成项目所需的资源和时间也增加。亚搏体育客户端app下载
或者,银行机构可以在整个开发过程中使用敏捷软件开发方法。这些敏捷方法允许Lee以小的增量开发所需的软件产品,并将开发中的测试构建到项目计划中。通过使用这些敏捷方法,Lee和开发团队的其他成员可以使用一种方法创建所需的产品,这种方法不依赖于前期计划,而是依赖于主导其余开发阶段的开发中产品测试的结果。
基于他过去经历的所有学习,Lee建议在产品开发期间使用的方法Expancio的主题时使用敏捷开发方法。作为一个启动,Expancio需要能够快速适应行业内的变化,以确保其产品和公司并未被遗忘。
敏捷开发方法的使用还允许Expancio继续验证其早期商业产品。这种连续验证是通过敏捷方法实现的,这使得公司可以根据用户反馈快速更改其平台。用户在迭代的新阶段解决了关于任务完成和设计缺陷中的挑战以及产品内识别的错误的任何意见。通过在验证期间不断迭代他们的早期商业产品,Expancio能够创建其用户真正需要的产品。这取决于在可能需要大规模大修时,直到用户反馈的所有机会都能保存,而是可能需要。
总的来说,使用敏捷开发方法允许Expancio继续增长和改进其平台。这可确保其产品不会停滞,并且可以根据用户反馈和行业内的任何变化轻松改进。
传统的软件开发方法
关键的外卖:传统的开发方法是高度结构化的,并且在开发过程中允许有限的灵活性。最流行的创业传统方法是瀑布方法。
传统发展方法导致高度结构化的项目。它们基于一系列背对背计划驱动的步骤。
在定义阶段,在开发开始之前,团队计划整个过程。这是为了在项目的工作阶段指导成员来完成。
在开发开始之前,初创公司通常没有明确验证的产品要求。这可能存在挑战。因此,可以浪费资源,因为要亚搏体育客户端app下载求随着需求的发展而需要更改的开发。
软件开发人员通常在以下项目中使用传统的方法:
- 大量的预算(通常超过100万美元)允许工作重做
- 用于多个从事单一项目的中型团队
- 由大公司进行
虽然敏捷软件开发方法越来越受欢迎,但传统方法仍然是最常用的开发风格。
优点:
- 计划驱动的过程易于理解
- 所有团队成员的严格开发角色
- 与大型团队和项目兼容
缺点:
- 高成本重新启动开发过程
- 需要启动以了解项目开始时的软件的要求
- 允许有一定灵活性的固定开发过程
- 测试通常在开发过程结束时进行
有许多传统的方法,都基于预先规划项目的核心概念来指导开发。理解最适合项目的传统方法是很重要的。如果你的初创公司选择了一种侧重于提前规划的方法,那么你需要确保你的规划是以适当的方式进行的。
以下部分介绍了可用的关键传统方法,并以与初始启动最相关的瀑布模型开始。
瀑布模型
关键外卖:瀑布模型最适合那些有清晰的、很好理解的、不会改变的需求的项目的初创公司。在应对设计问题时,严格的文档和计划会阻碍开发过程中的灵活性。
瀑布模型(也称为线性顺序生命周期模型或级联模型)需要在开始下一个(图2)之前完成并审查每个开发阶段。该模型涉及许多文档,以确保团队遵循该计划,并正在开发所有所要求的要求。这种级别的文档可能会压倒初创性。
可以引入循环以允许前一级重新审视。这允许您的启动进行产品验证。
优点:
- 由于文档级别和结构设计,新团队成员可以很容易地加入
- 每个阶段都有一个预期的结果和评估过程,协调很容易
- 由团队成员可以容易地理解和使用的顺序步骤组成
- 具有按顺序实现的阶段
- 由于相应分配的设置计划和资源,变得容易确定项目成本亚搏体育客户端app下载
缺点:
- 需求需要在项目一开始就完全理解
- 确定新的要求产生负面影响,提高成本,延迟时间表
- 在开发期间限制灵活性,如果测试标识问题,难以返回设计阶段
- 在开发结束时,而不是在开发过程中,为用户反馈开发原型
- 由于灵活性有限,导致高项目风险
推荐以下情况:
- 具有良好理解,清晰和最终要求的项目
- 了解具有混凝土可重复开发路径的技术(不是创新性)
- 用户要求有限的额外要求的额外要求的短程
- 当主题专家(中小企业)在您的团队中易于获得,以便在开发开始之前计划项目
- 为其他应用程序提供服务或提供后端功能的软件
原型模型
关键外卖:原型设计模型最适合具有不明确要求的项目的启动,并侧重于用户界面。大量用户参与通常会增加项目的持续时间和总体成本。
原型模型涉及快速创建最终产品的功能(图3)。实现此模型以在创建最终产品之前验证用户的要求和设计的可行性。通过这样做,您的启动确保它正在生产用户想要的产品!
初创公司通常使用这种方法来避免瀑布方法的问题,即只在开发结束时接收用户反馈。原型设计并不是一种独立的方法。这是初创公司可以与其他方法一起使用的方法,以提高项目的成功。
优点:
- 由于用户参与在开发期间增加了产品接受的可能性
- 清楚地识别和评估软件的功能过程
- 降低软件功能失败的风险
- 需求可以在整个开发过程中添加
- 在开发的早期检测错误
- 快速用户反馈可用并导致改进的解决方案
- 易于识别缺失的功能
缺点:
- 开发过程中的变化导致成本增加
- 客户的过度参与会增加项目的持续时间
- 大量的变化会影响软件的工作流程
- 随着开发项目的范围扩展,项目复杂性可能会发生变化
推荐以下情况:
- 当产品要求不清楚时
- 当开发软件需要与终端用户进行大量交互时(如在线系统和web界面)
v模型
关键外卖:v -模型最适合初创公司,这些公司的项目有清晰的、很好理解的需求,并且在整个项目过程中不会发生变化。在开发过程的早期,需要一个由高技术成员组成的大型团队来进行验证和验证工作。
v -模型或验证和验证模型将瀑布模型更进一步,开发和验证阶段并行执行(图4)。随着软件产品需求的开发,初创公司测试并将它们并行地集成到最终产品中。这使得初创公司可以越过主观术语,如“用户友好”,转向更客观和可验证的需求。
优点:
- 由团队成员可以轻松理解和使用的顺序步骤组成
- 侧重于开发早期验证和验证,提高了成功产品的概率
- 是一个具有阶段完成的阶段的高度学科模型
- 每个阶段都有特定的可交付成果和相关审查过程,以确保更容易的管理
- 包括主动缺陷测试
- 可以在有多个团队、承包商和分包商的大型项目中使用吗
- 项目管理可以准确地跟踪项目的进度
缺点:
- 由于潜在的时间线延迟,长时间建议不建议增加验证工作
- 复杂和面向对象的项目不适合这种方法,因为在开发过程中需求没有完全集成
- 需求不能在开发过程中更改
- 一旦软件到达测试阶段,难以实现对功能的变化
- 在开发过程中延迟生成原型
- 不容易处理并发事件
推荐以下情况:
- 为其他应用程序提供服务或提供后端功能的软件
- 具有明确定义和修复的要求的小项目
- 当中小企业在团队中可以在您的团队中提供支持,为项目提供支持
快速应用开发(RAD)模型
关键外卖:快速应用程序开发模型最适合具有截止日期紧张的项目的启动。该模式高度依赖于团队的技术知识和合作努力来成功。
快速应用程序开发(RAD)模型旨在通过突出最终用户的参与来提高启动开发过程的实用性(图5)。此方法使用原型设计来允许迭代开发。它还通过利益相关者参与促进协作氛围。原型化周期以长期绘制的开发和测试周期完成。
优点:
- 鼓励并确定客户的反馈,以允许改进
- 决策制作被移动到功能团队而不是项目经理
- 灵活的系统,允许需要更改
- 提高审查周期生产力
- 减少开发时间
- 在更少的人参与的情况下提高生产力
- 集成是从头开始的项目的一部分
缺点:
- 高度依赖于该组织的成功
- 需要高技能人员来处理模型的复杂性
- 不适合小预算项目
- 需要强大的团队合作
- 由于所需的快速周转,不适合大型团队
- 仅适用于具有小开发时间的项目
- 创建一个复杂的开发过程,难以管理
- 需要项目模块化以允许项目阶段的快速变化
推荐以下情况:
- 最适合为最终用户提供可视化界面的软件
- 当您有一个可以提供一致和可靠的反馈的用户池时
- 当您有严格的截止日期来生产产品
螺旋模型
关键外卖:螺旋模型最适合那些高风险项目的初创公司,这些项目一旦提供给用户就需要频繁的更新。这个模型是复杂的,并且需要所有的团队成员严格遵循它以确保成功。
螺旋模型,一个风险驱动的开发过程,被塑造成一个螺旋,而不是一系列活动(图6)。初创公司在过程的开始结合了瀑布和原型方法,并引入了风险评估。您的启动周期通过多次迭代的螺旋,直到原型创建,可以验证用户需求。
优点:
- 降低早期识别和减缓的风险,以防止后续成本增加
- 适合在大型和复杂的项目期间使用
- 允许以后添加其他需求
- 适合具有不同业务需求的高风险项目
- 将客户集成到开发的早期阶段允许他们提供可用的反馈并提高他们的满意度
- 开发快速,功能是以系统的方式添加的
缺点:
- 复杂的开发模式,要求开发人员严格遵循它以确保成功
- 时间管理很难计划,因为项目开始时阶段的数量是未知的
- 是一种昂贵的软件开发方法
- 风险分析阶段的失败可能会破坏整个项目
- 不适合低风险项目
- 没有明确的项目结束,所以它可以持续延长,从未达到完成
- 需要适应性管理,这可能还没有出现在公司内部
推荐以下情况:
- 为其他应用程序提供服务或提供后端功能的软件
- 需要经常发布的项目
- 中至高风险项目
- 项目需要原型
- 需求是不明确的和复杂的,并且变更可能在任何时候发生
- 由于长期项目承诺由于经济优先事项的变化而不可行
敏捷软件开发方法
关键外卖:敏捷开发方法允许开发过程中的灵活性和增加用户参与。创业公司最流行的敏捷方法是Scrum模型。
敏捷软件开发方法专注于协同开发。用户和利益相关者积极指导产品的发展在一起。
由于精益概念,初创公司通常使用这些方法。敏捷方法可以最大限度地减少不必要的工作和多余的文档。您在文书工作中缺货的时间越多,您可以花费创建软件产品的时间越多!
这些方法接受了不确定性是软件开发的一部分,并试图控制更改是不可能的。
敏捷软件开发方法通常用于以下项目:
- 低预算(少于20万美元),鼓励初创公司在方法上灵活,以节省资金
- 由一个不到十个人的团队组成
- 由员工少于250人的公司进行
敏捷方法可能是最好的遵循作为启动,因为昂贵的错误可能导致业务失败或金融毁灭。
优点:
- 能够快速,灵活地回应变革
- 最小的正规过程
- 鼓励项目团队成员之间的沟通
- 客户的反馈贯穿于整个开发过程
- 开发分为短期间隔,频繁的软件发布
缺点:
- 高度依赖于开发人员的动机和专业知识
- 新团队成员难以进入该项目
- 需要良好的沟通技巧定期与客户互动
- 由于强调实时通信,在大型项目期间难以使用
有许多可用的敏捷软件方法,每个方法都可以在开发期间允许不同的灵活性。了解启动项目的最合适的敏捷方法很重要。通过了解这些模型,您将能够选择最适合您启动项目的方法以及所需的反应风格。
以下部分介绍了可用的密钥敏捷方法,并以最相关的启动,scrum模型开始。
Scrum模型
关键外卖:Scrum Model最适合具有快速变化要求的项目的启动。该模型涉及一个强烈的项目生命周期,需要成功使用技术专家,以上使用。
scrum模型是初创公司最广泛使用的敏捷软件开发方法之一(图7)。该模型建立在开发过程不可预测,并且在过程中需求可以而且应该改变的假设上。
启动可以使用此模型通过一系列迭代快速开发软件。每日Scrum会议,用户可以参加,以确保控制和跟踪开发。
优点:
- 决策是在开发团队的手中
- 限制所需文件的数量
- 将大型项目分成较小的项目,因此每个部分都可以作为Scrum的Scrum组织
- 在整个过程中进行测试,以确保高质量的产品
缺点:
- 由于每天的scrum会议和频繁的评审,需要亚搏体育客户端app下载大量的资源
- 不适合需要多个团队完成的大型项目。如果需要多个团队,则需要将项目分解为较小的Scrums,以便在团队中更容易地决策。
- 需要一个由专家组成的团队;该领域的新手将努力保持快速的节奏
- 频繁的变更、产品不确定性和频繁的产品交付导致了紧张的项目周期
- 需要团队内部高水平的沟通
推荐以下情况:
- 适用于中小型项目
- 为最终用户提供可视界面的软件
- 成熟并完全致力于产品的项目团队
精益敏捷软件开发模型
关键外卖:精益开发模式最适合具有低预算和时间要求的项目的初创公司,允许提高生产力。该模式取决于团队的技术知识和协作努力,在项目期间不会失去重点。
精益开发方法强调在大约三分之一的时间内创建轻松管理软件(图8)。启动通过限制预算和消除浪费来完成此操作。这意味着您的团队不会构建不影响最终产品功能的功能。
这是为了提前提供产品,以最少的功能提供。整个过程中的短期迭代允许与用户通信,并灵活地适应任何无法预料的风险。
优点:
- 降低了项目的预算和时间要求,从而提高了效率
- 提前提供最终产品
- 当团队成员参与决策过程时,增加团队授权和激励
缺点:
- 取决于开发团队的凝聚力和承诺
- 要求团队成员具有互补的技术技能
- 由于过度的灵活性,焦点丧失
- 需要在一开始就知道软件需求,并且在过程中不能更改
推荐以下情况:
- 为最终用户提供可视界面的软件
- 小型项目短时间框架
- 更复杂的项目
- 用户想要参加开发过程的项目
极限编程(XP)模型
关键外卖:极端编程模型最适合开放的办公空间,以便在团队中的人对之间快速沟通和协作。该模式高度依赖于团队的技术知识和合作努力来成功。
使用极限编程(XP)模型,创业公司在几个小版本中开发(图9)。这允许创业公司快速适应需求变化,而对成本的影响很小。
开发人员以简单的设计成对工作,并根据用户反馈不断完善代码。这是以一致的风格完成,因此每个人都可以理解和改进代码。此模型旨在节省时间,并防止在团队成员不存在代码本身时延迟。XP被认为是软件开发中最敏捷的方法。
优点:
- 用户审阅了功能,以确保功能
- 通过将项目分成较小的项目来避免长范围的项目
- 随着个人工作特征的发展,提供了作为金钱的开发者动机
- 由于开发人员成对工作,防止开发滞后
- 由于团队协作,在团队中增加了知识共享
缺点:
- 需要开放式办公空间
- 主要工作于小型到中型的固定项目,因为需要的团队规模
- 缺乏初始设计阶段,可能在新的,不相容的要求表面后面以后导致更高的成本
- 有效性取决于参与项目的人员
- 需要频繁的会议(虚拟或亲自),用户可能是昂贵或重复的
推荐以下情况:
- 为最终用户提供可视界面的软件
- 由小团队组成的小项目,这些小团队紧密合作,允许面对面的会议
- 涉及新技术的项目,因为这种方法可以面对迅速变化和技术要求
- 用户已经集成的团队
晶体的方法
关键外卖:Crystal方法最适合具有与多个团队一起工作以快速开发产品的项目的初创公司。由于晶体方法的数量可用,在项目期间可能存在混淆,因为当团队尺寸增加时使用的晶体方法会发生变化。
Crystal Methods是一系列软件开发方法,它们用颜色编码来表示对人类生命的风险(图10)。水晶蓝宝石用于可能涉及人命风险的项目,水晶清晰用于没有这些风险的项目。
启动使用这些方法,因为它们被认为是非常灵活的。这是因为它们被设计为以人为本的项目,而不是特征或以商业为中心的项目。
由于团队成员的数量和项目的环境,初创公司选择了Crystal方法的颜色。Crystal Clear是开发软件产品字段时启动最常用的晶体开发方法。
优点:
- 确保频繁的交付,以便在每个阶段发现最终的问题
- 改善了作为讨论如何完善该过程的讨论
- 允许增加沟通,并鼓励团队成员之间的知识共享
- 需要具有自动化测试、配置管理和频繁集成的技术环境
- 反射研讨会每周举行,以确保有关开发过程的清晰沟通
- 不是互斥的其他方法
缺点:
- 由于可用晶体方法的数量,导致项目的结果并不简单。每种方法的原则随团队和项目的规模而变化
- 由于经常需要交流和反思,在地理位置不同的团队中管理是困难的
- 大量的资源集中在日常会议和增加团队/用户沟通上亚搏体育客户端app下载。这将占用用于开发工作的亚搏体育客户端app下载资源
- 用户的参与仅使用增量版本,而不是整个开发过程。
- 规划和发展不依赖于要求
推荐以下情况:
- 在团队内部有一个非常开放的交流流程的公司
- 有一个固定大小的团队的项目不会在整个开发中改变
- 重点较少用户界面的项目
动态系统开发模型(DSDM)
关键外卖:动态系统开发模型最适合具有固定资产和时间线预算的项目的启动。亚搏体育客户端app下载此模型没有确定的实践来处理开发过程后面的项目的可扩展性。
动态系统开发模型(DSDM)起源于快速应用开发(RAD)模型。使用了一个迭代和增量的方法,它关注用户在开发过程中的参与(图11)。
这是一个有用的初创公司模型,因为它涉及固定的资源和时间,您现在可能遇到的东西。亚搏体育客户端app下载因此,调整功能要求以满足截止日期。该模型是结构化的,使得开发过程尽可能短的时间,并且每次交付都包含大部分要求。
优点:
- 迅速提供基本产品功能
- 在开发过程中通过用户测试增加用户对产品的理解
- 对于开发人员来说,可以轻松访问用户
- 可靠地完成项目
缺点:
- 实施成本高昂
- 由于所需的快速周转,不适合小型组织
- 没有定义的实践来处理项目的可扩展性
- 在项目开始时,需求是不明确的
- 代表了公司文化的戏剧性和破坏性的变化
推荐以下情况:
- 对于优先考虑快速发展的公司,按时交付和预算
- 有固定预算和时间表的项目
- 需要迅速进入市场的产品
特性驱动开发(FDD)模型
关键外卖:特性驱动开发模型最适合那些拥有多个团队一起快速开发产品的项目的初创公司。这个模型不推荐给单个开发人员,并且需要主要开发人员来密切监视特性开发。
功能驱动开发(FDD)模型组织了创建功能的开发。这些功能是较大项目中的小型项目(图12)。
FDD专注于提供有许多团队的公司,该公司在面向对象技术的基础上工作。由于其多团队性质,这是初创公司常用的敏捷方法。
FDD模型使用短迭代过程来确保功能快速呈现给用户(例如,每两周呈现一个新功能)。因此,初创公司首先关注最重要的用户功能。
优点:
- 通过其五步过程允许快速发展
- 利用预定义的开发标准,因此团队可以快速移动
- 允许更大的团队以持续的成功推进产品
- 可以扩展到大型项目吗
- 每两周一次,每两周生产切实结果
缺点:
- 由于所需的快速周转,不适合小型组织
- 取决于铅开发人员,因为需要通过每个阶段监测过程
- 要求客户已明确识别和优先配置功能
- 由于缺乏文件而导致混乱
推荐以下情况:
- 大公司进行开发工作
- 大型软件开发项目
- 公司拥有非常自上而下的决策过程
如何选择您的软件开发方法
关键外卖:选择软件开发方法是开发过程中的一个关键阶段。确保您的创业公司在决定开发方法之前评估组织,项目和团队特征。
选择软件开发方法是启动软件启动时的一个重要步骤。您的启动必须从“开始”完成并遵循此方法。
中途更改模型是困难的。更改流程最终会使团队中的每个人感到困惑,导致潜在的开发延迟。尤其不建议初创公司这样做,因为方法论改变会对财务和时间产生影响。
许多行业领导人认为主要原因项目失败是在开发过程中使用了不适当的方法的结果。项目失败可能是由于产品没有按时或在预算之内交付。它也可能失败,因为它没有为用户提供价值。
基于组织,项目和团队特征评估不同的开发模式。这可以防止您的初创公司选择由文献或其他人的建议偏见。
软件开发方法选择期间要评估的特征
您的初创公司可以通过专注于项目的具体情况来创建恒星产品。以下是在开发方法选择过程中应评估的关键特征:
团队的特点
- 团队的大小 - 选择一个在与您的团队使用相同的团队使用时显示成功的方法。
- 团队角色——团队成员具有多个独特的角色(例如,项目经理、程序员、设计师、技术推动者等),可能需要一种更传统的方法,基于你的初创公司的组织结构。
- 团队经验 - 敏捷方法依赖于高度经验丰富的团队成员,而更多的传统方法可以成功地包括新手开发人员。查看您的开发团队并确定不同熟练的团队成员的比例。也不要忘记查看领导团队的体验级别,以确保他们能够成功管理更灵活的项目结构。
- 公司内部管理风格 - 如果您的启动以自上而下的方式结构,团队决策将困难,从而防止大多数敏捷的开发方法完全成功。
项目的特点
- 项目规模——某些方法论的结构方式只适用于具有快速周转能力的小型项目。
- 项目复杂性——高度复杂的项目需要更敏捷的开发过程,以适应在开发过程中出现的任何困难。
- 项目风险——敏捷软件开发方法最适合高风险项目,因为客户反馈的周期是一致的。
- 项目预算 - 如果需要选择一个专注于预算范围内的模型,而不是允许增加灵活性的方法,因为这通常会增加项目的成本。
- 项目需求——传统的方法要求在项目一开始就知道软件需求。更敏捷的方法允许初创公司在整个开发过程中轻松地更改需求。
- 强制性审查的数量——如果你的初创公司需要大量的审查用户反馈在开发过程中,传统方法不合适。在传统方法中,用户通常不会给予产品以进行审查,直到产品完全开发。
通信要求
- 团队的地理位置 - 某些方法需要频繁团队成员之间的沟通。如果您的启动在不同的工作区域上展开,则这可能很困难,如果它们在不同的地理位置,则更不用说。
- 客户可访问性 - 所选方法可能需要用户持续反馈。您需要确保您的启动器有用随时可用,并致力于为您提供此反馈。
外部项目因素
- 市场稳定性——如果你的软件产品正在进入的市场是不断发展的,那么应该选择更灵活的方法。这将增加开发过程中的灵活性
- 行业要求 - 如果业界您的产品进入需要遵守严格的规定,更加传统的方法可能会更适合。这是由于所需的大量文档。
- 质量保证程序到位——如果你的初创公司有一个完善的质量保证(QA)系统,那么一个敏捷的软件开发过程是合适的。这是因为一个完整开发的QA系统允许持续测试,以确保在开发结束时产生一个功能完整且经过验证的产品。
无法决定?使用多种软件开发方法
作为选择一种特定方法的替代方案,启动可以在同一项目中使用多种方法(AKA。混合方法)。但是,这不建议启动。
使用多种方法可能会导致项目管理问题。你的初创公司还可能浪费资源和时间来决定在特定时间采用什么方法亚搏体育客户端app下载。选择混合路线的公司通常有中等预算、高度关键的项目和小型团队。
选择软件开发方法的重要性
已发现开发方法选择过程对以下内容有直接影响:
- 所需的测试量,以及
- 客户满意度直接影响您的业务福利
因此,在开发过程中,应通过自己和启动的其他成员优先考虑开发方法选择过程,以创建恒星产品。
使用以下SDM选择决策树由RIC中心创建,了解您应该先详细研究哪些方法(图13)。当您选择适合您的STARTUP的软件开发项目时,这应该帮助您。
结论:传统和敏捷软件开发方法
创业公司可以使用各种各样的软件开发方法来管理开发过程。每种方法在开发过程中所需要的预计划、灵活性和开发中测试的数量不同。
在每个新的开发项目开始时,初创公司需要基于几个标准来评估他们的团队和项目,以确定哪种方法最合适。具体来说,公司应该关注团队的个人属性(即技术技能、沟通能力等)。这是因为团队成员本身对所生产的产品质量有重大影响。
要记住的一件关键件是没有任何方法是所有类型的软件开发项目的完美契合。因此,仅仅因为一种与过去项目合作的方法,并不意味着在您的启动下一个开发项目中会成功。
当您继续开发并开始软件开发时,请记住将从本文中学到的知识带在身边。与您的团队讨论不同的开发方法,并找到最适合您的项目的方法。让每个人都参与到这个过程中来,这样团队协作就可以尽早开始,以确保项目的成功。
在软件开发方法之间进行选择的经验教训
恭喜你!您现在已经了解了许多不同的软件开发方法。在阅读这篇文章之后,你应该学到了以下关键知识:
- 为软件产品选择适当的开发方法的重要性。
- 传统的软件开发方法是以规划为中心的开发方法。这些方法是预测性的。
- 敏捷软件开发方法本质上是自适应的,并且是高度灵活的。
- 最受欢迎的传统软件开发方法是瀑布方法。
- Scrum方法是最流行的敏捷软件开发方法。
- 在选择开发方法时,您的启动需要审查团队,项目和组织特性。
- 所有的项目都是独一无二的,所以要确保为每个开发项目选择最合适的项目。