一、瀑布式开发
瀑布式开发是早期被广泛采用的软件开发模型,要求有明确的需求,按照需求一步步做好规划,每一阶段工作的完成是下一阶段工作开始的前提,每一阶段都要进行严格的评审,保证各阶段的工作做得足够好时才允许进入下一阶段,它适用于需求明确的项目。
最大的风险是,当产品研发完成后, 到了产品测试阶段如果发现了问题 ,或者发现其无法满足市场需求, 那么就需要重新开发,甚至需要重新规划产品。
瀑布模型,就是说,软件开发是按照一定顺序展开的,总体上就分为:
需求 → 设计 → 制造 → 测试,四个阶段。
在这个系统中,客户被排除在生产系统之外,它们只能从需求的接口人那里向系统输入需求。
提供需求后进入设计阶段
设计定型后,进入制造阶段:
在瀑布开发模式中,需求和设计是不可以进行修改的。工人被安排在制造系统中一个个工位上,每个人仅负责一个部件的生产和装配。
瀑布模型最大的弊端,就是下游工作的开展严格依赖于上游交付件的完成情况
完成生产和测试之后,一次性交付到客户手中,完成客户的全部需求。
二、敏捷开发
敏捷开发是一种以用户需求进化为核心、迭代、循序渐进的开发方法。首先把用户最关注的软件原型做出来并交付给用户,用户在实际场景中发现问题并给予反馈,研发人员快速修改弥补需求中的不足。上述过程不断迭代,直到用户满意。
敏捷适用于需求不明确、创新性或者需要抢占市场的项目,特别适合互联网项目。
敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的