软件原型开发是一个众所周知的术语,它带有各种神话色彩。如果我们消除所有的误解并提出一个简单的定义,软件原型只是一个基础产品,与最终软件产品的外观和功能非常相似。然而,并不是所有类型的原型都是这样的。
首先,你有**高保真(HiFi)**的原型,在最真实的意义上代表了与最终软件相同的功能。高保真原型提供了一个非常清晰和令人满意的软件演示,只缺少一些外观上的修饰。唯一的缺点是高保真原型增加了开发周期的长度,这导致了更高的开发成本。
接下来,你有低保真原型(LoFi),基本上是二维的数字或图表。LoFi原型不是复制软件的功能,而是以白纸黑字列出和解释功能。LoFi原型被用来展示应用程序背后的想法,以获得其他利益相关者对应用程序开发的认同。
简而言之,原型软件是最终软件的近似复制品,它可能遵循或不遵循与最终软件产品相同的逻辑。然而,原型软件应该足够全面,可以给客户、投资者和顾客做产品演示,特别是对于推出新产品或业务的企业家来说。
为什么你需要一个软件原型?
一个企业家或品牌需要一个软件原型模型的原因有很多。
为了统一愿景
软件原型可以帮助你评估仍在开发中的应用程序的进展和方向。他们展示了增量的功能和最终软件产品的方向,而不需要增加大量的额外资源。原型在软件开发 的各个阶段都是有价值的(比如为MVP提供不同的原型,为第一次迭代提供不同的原型等等),帮助你有效地跟踪项目的开发过程和方向。
对于外部参与
一些软件开发项目需要外部利益相关者、投资者或客户的参与。为了适当地展示正在进行的软件,原型对于第三方的参与是非常有用的。创业者和开发者可以根据外部的反馈来改进软件,这对于获得第三方资金可能是至关重要的。
为了评估待定的时间和资源
软件原型模型也可以用来评估任何最后一分钟的SRS(软件需求规格)变化。模型有助于检查软件是否与新的需求兼容,以及是否可以在最后期限或资源耗尽之前实施变化。你也可以使用软件原型来确认所有资源耗尽时软件的实际状态。
软件原型的不同类型
软件原型模型有四种实用的分类。
1.快速原型开发
考虑这样一种情况:在软件开发生命周期(SDLC)中,无论源代码的变化有多小,都会经常需要一个原型用于各种目的。快速原型验证是匹配这种测试要求或演示小的补充的理想选择。由于这个原因,快速原型开发大多用于敏捷开发方法,在这种方法中,每个冲刺阶段都会快速开发和实施最小的变化。
随着软件开发从一个阶段转到另一个阶段,以前的原型变得毫无用处。因此,快速原型开发也被称为丢弃式原型开发,每一个先前的原型都变得与当前的开发状态无关。
快速原型开发的好处
- 节省时间--快速原型是建立在相互之间的,消除了从头开始的开发。
- 通用性 - 迭代开发对小型到大型项目都非常有用
- 成本效益高--只需在迭代模型中稍作改动,快速原型开发对软件开发预算的影响最小。
2.进化的原型开发
有时,软件需求在项目开始时并不明确,需要在整个开发过程中进行细微到重大的改进。在这种情况下,进化的原型被开发出来,只包括那些被清楚理解的功能。一旦进化的原型被展示出来,利益相关者可以帮助定义和完善以前不清楚的需求。
进化的原型使用一个互动的过程来实施外部反馈,识别新的需求,并在新的需求加入时确认兼容性。在某种程度上,进化的原型类似于最小可行产品或MVP,但不是从基本的、最小的功能开始,而是只从那些被清楚识别和理解的功能开始开发。
进化型原型开发的好处
- 有助于理解所有指定的软件需求
- 更容易发现为实现最终产品的预期功能所需的缺失功能。
- 由于利益相关者的反馈推动了功能的开发,从而使软件产品得到了更广泛的接受。
3.增量式原型开发
增量式原型验证是企业软件唯一可行的模式,因为企业应用通常是模块化的,需要大量的集成。在这种类型的原型验证中,为综合软件解决方案的每个功能开发多个较小的原型。一旦所有这些原型被开发出来,它们就会被合并成一个代表实际软件的大原型。

渐进式原型开发需要紧密合作
增量式原型开发的一个明显区别是,所有的开发者和开发都需要适当的同步。否则,每个小的原型可能看起来是来自不同的软件产品,而最终的结果可能看起来是不连贯的。
渐进式原型验证的好处
- 对于企业级软件来说,这是唯一可行的原型验证模式。
- 非常灵活,因为较小的模型更容易执行更改
- 善于发现有缺陷的代码,因为故障排除只限于应用程序的较小部分。
4.极端原型验证
极端原型法专门用于网络开发,分为三个阶段,其中第二阶段最为重要。对这些阶段至关重要的是极端原型模型的各个层:表现层或用户界面和服务层--通信、业务逻辑和授权。
极端原型设计的三个阶段。
1:准备一个HTML构建来表示表现层
2:通过与服务层的连接,将原型转换为一个全功能的模型
3:通过实现服务层来最终完成生产。
极端原型技术的好处
- 通过消除网络开发过程中的所有非生产性活动来节省大量的时间
- 极端原型设计的各个阶段使其更容易在各个层面上展示一个网络开发项目。
为你的项目选择最佳的软件原型开发模式
即使有了上述的细节,你仍然可能发现很难为你的项目挑选合适的模型。唯一的例外是用于开发简单的直接网站的极端原型验证和用于复杂的企业软件应用的增量原型验证。
否则,对于开发成熟的解决方案,你可以选择快速、进化或极端的原型开发。如果软件开发项目过于庞大和复杂,那么可以用增量式原型验证来处理。另一方面,如果软件是在不同的冲刺阶段开发的,比如在敏捷方法论中,那么就选择快速原型开发。
演进式原型开发只在软件需求不明确或不被理解的情况下有帮助。
| 快速原型开发 | 当在冲刺阶段开发软件时 |
| 进化的原型开发 | 当软件需求不明确时 |
| 渐进式原型验证 | 当开发一个企业级软件时 |
| 极端原型验证 | 开发一个网站时 |
软件原型开发过程
一个企业或企业家可以按照这些步骤来开发一个高效的原型。
定义软件要求
在第一步,企业家需要定义软件的所有主要功能要求。他/她可以详细了解产品的基本功能所需的最重要的功能。相比之下,次要功能的细节,如软件安全、设置选项和直观的界面,可以在以后添加。
创建初始界面
一旦软件需求被开发出来,就要用最小的努力设计一个简单的界面来展示这些功能。这就是所谓的初始原型,它可能不是完整的功能,但其目的是为了解决与定义的需求有关的关键问题,并建立一个类似于界面的结构。
审查原型
设置好界面后,从各个角度进行分析。向所有的利益相关者演示特征和增加的功能,以确认项目的方向保持在正轨上。同时,让测试用户审查你的原型,他们可以推荐缺失的功能并帮助你改进原型。请注意,如果是增量原型,获得测试用户的反馈可能会很费钱和费时,所以你可能想在所有的构建中获得早期采用者的反馈。
改进原型
重复上述步骤,根据利益相关者和测试者的反馈进行迭代改进,直到你开发出一个能够准确展示目标应用功能的原型。最终的原型也应该足够完善和有能力进行公开演示和开发实际产品。
软件原型设计的优点
视觉表现
原型通过提供一个理想化软件的视觉模型,让你对产品有一个更好的了解。企业家、利益相关者和测试人员使用原型模型来理解功能和特性。所有的利益相关者都可以检查原型是否符合预期,并对进一步的开发有一个感觉。这有助于战略规划和为最终产品的推出建立一个可实现的目标。
风险检测
开发原型的最好部分是没有什么是具体的。随着利益相关者的要求被添加到原型中并进行测试,问题区域往往被发现,故障可以被消除。随着风险的检测,原型的评估有助于识别软件在进入生产时可能出现的挑战和问题。
起始阶段
原型可以作为最终软件的训练模型。此外,与其在推出后发现问题,使品牌形象受损,原型协助事先解决有问题的地方。所有这些都确保了一个快速和良好的开始,不仅成本低,而且节省时间。
开拓创新的空间
在识别风险的同时,原型有助于识别和完善你最有价值的软件功能。聪明的开发者和企业家会增加补充功能或计划未来的升级以增加价值。你也可以确定使你的产品与众不同的独特卖点,并确保未来的升级不会干扰任何高价值的功能。
软件原型开发的劣势
可能导致优柔寡断
原型通常由多人测试,他们有时可能会有不同意见。另外,一个功能可能会被证明既有好处又有坏处,这可能会增加功能选择的挑战。如果出现这些情况,你的软件原型模型可能会产生更多的优柔寡断而不是改进。
解决方案。 谨慎地选择测试人员和彻底的预算分析
多个原型的成本
原型可以在不同的阶段开发,在你开发的任何时候都会有同样的帮助。然而,对于小品牌来说,为一个项目开发多个原型是不可能的。虽然一个原型的成本只是开发最终软件的一部分,但开发多个原型会让小品牌甚至大品牌超出预算。
解决方案。 在第一个原型上做更多的投资,并让它被尽可能多的相关人员审查
原型开发的替代方案
原型有多种用途,但开发者和企业家也可以尝试一些替代方案。请记住,每个替代方案的有用性和有效性会有所不同。
1.1.MVP
MVP类似于进化的原型,但也有很大区别。一个MVP只包括执行产品主要功能的最基本的功能。除了演示的目的,MVP更多的是用于市场验证的目的,也就是目标市场是否会喜欢这个产品,这个商业理念是否有利可图。
2.POC
概念验证(POC)是包括MVP在内的一个更大的概念,它只专注于证明一个想法在现实世界条件下的可行性。一般来说,投资者需要一个POC来预测他们的投资回报。如果产品显示出较高的回报,那么它就被认为是值得投资的。虽然POC不需要是功能性的,但它越详细越好。出于这个原因,POC也包括MVP。一旦POC准备好了,企业家就可以向开发原型迈进了。
结论
不同层次的企业家都会开发软件原型模型,以可视化或测试他们的理想化产品的市场。原型也可以展示软件的实际功能,以确保投资者的满意,并提高上市时间。然而,为你的特定项目选择正确的原型是成功的关键。除了软件原型,企业家和企业主还可以选择MVP和POC等替代方案。