敏捷开发
其实都是在从方法论、工具等方面解释敏捷开发。
我将基于 Scrum 和极限编程的实践,来对比一下敏捷开发模型和瀑布模型的差异。
- 敏捷开发是怎么做需求分析的?
可能就是总结出一个小故事,写在看板上或者卡片上,有时候甚至就一句话,在sprint 冲刺的环节去确认具体的需求。比如 :作为用户,要有登录功能,能访问我们的web网页,但是要求开发人员有良好的沟通能力和对需求的理解能力。
- 敏捷开发是怎么做架构设计的?
每个 Sprint 只做一部分需求,所以是一种渐进式的架构设计,当 前 Sprint 只做适合当前需求的架构设计。必然会产生一些技术债。那么必要的时候一定要进行定期重构。但是个人理解,有的时候重构是一个很大的问题!!!! - 敏捷开发怎么保证项目质量的?
敏捷开发的 Sprint 中,并没有专门的测试阶段,这就依赖于开发功能的同时,要编写单元测试和集成测试代码,用自动化的方式辅助完成测试。 这个时候需要开发人员要有一定的能力,并不是每个人都能写好单元测试和自动化辅助测试的。 - 敏捷开发是怎么发布部署的?
敏捷开发是依赖于自动化部署和自动化测试的,持续的构建持续的发布,也就是持续集成。
需要做好敏捷开发估计有一定的难度,一次全新的构建依赖于全自动化的测试包括集成测试的代码。
前期搭建整个持续集成环境需要一定技术要求 - 敏捷开发的 Sprint 和迭代模型的迭代有什么区别?
迭代模型可能还是需要耗费一定的时间,毕竟是小瀑布模型。
敏捷在最开始的时候就全员进行参与,有时候甚至没有文档可以进行依赖,从而产生快速迭代过程,这种方式可能开发前期bug多,后续程序趋于稳定的状态。 - 该不该选择敏捷开发?
个人感觉可以先从几个方面入手,第一需求,如果产品经理能输出确认的需求,其实故事这个步骤可以考虑的少些,至于领取任务,还是需要团队的领导者做一些工作,比如开发人员的主观能动性,至于会议完全不必强制4个会议,还是可以根据情况进行必要的讨论。至于能力,我感觉还是需要团队的人员具备一定的素质的。