“在软件开发中我们常见的开发模型有瀑布模型,原型模型,增量模型,迭代模型,螺旋模型,敏捷开发模型,演化模型,喷泉模型,混合模型等。需求分析是软件开发的关键,而最让人头疼的是用户不断的该需求,开发人员的理想就是做不会改动的需求,但是事实往往并非如此,用户甚至不是特别明确自己想要一个怎样的系统,具体需要什么功能,这些功能在操作的过程中需要怎样的效果。或者在最初用户的描述不准确甚至错误,在这种情况下贸然的开发存在太大的风险。所以敏捷开发上场了,以用户的价值和投入市场的效果为软件开发的功能和价值导向进行设计和开发。”
01
—
什么是敏捷开发?
敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
02
—
为什么要敏捷开发?
拥抱需求的变化:而不是从前的排斥需求变化。
递增的变化:不用在一开始做好所有的建模和设计。实际上,也不可能对所有的细节做好所有的准备。
统一系统使用多种工具进行建模。
快速反馈:在较短的时间内对自己的工作成果可以进行展示。
令投资最大化:相比其他开发模式,敏捷开发,客户的参与度明显大大提高,而且其在项目中的作用最大化并且核心化。
高质量的工作:是系统的更新和维护变得简单。
03
—
敏捷开发对开发人员有何影响
快速迭代:根据用户提出的功能优先级对各个版本开发设置先后顺序,进行开发。团队微型化,成员参与度提高,分工明确,检查周期短。
让测试人员和开发者参与需求讨论:增强个人存在感。
编写可测试的需求文档:以需求为中心,而不是以需求的解决方案和技术为中心,过早的提及技术实施方案,会降低对需求的注意力。
多沟通,尽量减少文档,但沟通时注意做好记录。
做好产品原型:使用草图和模型来阐明用户界面,这样观点表达更清晰。
测试应该从需求开始:在传统的软件开发中需求往往在软件开发基本完成时才考虑。这样工作量大,可能使测试不全面,而且对测出的错误,修改起来也很不方便,需要耗费大量的人力物力。但是敏捷开发,在需求分析的阶段,就会将测试考虑进来,这个想法是不是很前卫呀!