分析&回答
敏捷开发(Agile Development)不是指某一种具体的方法论、过程或框架,而是一组价值观和原则。
敏捷并不是一门具体的技术,而是一种理念或者说是一种思想。它可以指导我们更加高效的开发。
敏捷开发都具有以下共同的特征:
- 迭代式开发
- 增量交付
- 开发团队和用户反馈推动产品开发
- 持续集成
- 开发团队自我管理
相比于“传统”的瀑布开发模式,敏捷开发是一种“现代”的开发模式。
从业务目标出发,由外而内逐步拆分需求
个人认为这个环境需要花更多的精力进行探讨,合理的拆分对后面的没一个环境至关重要。
什么是有效的需求拆分呢?需求拆分完之后,它必须还是需求,它必须要:
- 足够小:这样才能做到可持续交付;
- 端到端:这样才能保证交付有意义的价值;
- 独立性:便于持续集成和灵活安排;
- 整体性:拆分完仍能看到整体的结构。
要做到有效的需求拆分,需要:
- 澄清目标:需求相关方要共同理解需求的背景,为什么要做需求的原因;
- 梳理需求上下文及用户的使用场景;
- 列出用户操作及操作步骤。
利用可视化物理板与站会,透明团队工作(核心能迅速发现并跟进问,站会时间不要太长
(推荐早上15分钟)。)
研发流程规则工具化(辅助与提升)
反思&扩展
敏捷价值观:
- 个体与交互 重于 过程和工具
- 可用的软件 重于 完备的文档**
- 客户协作 重于 合同谈判
- 响应变化 重于 遵循计划
敏捷开发十二原则
在敏捷开发中,我们遵循以下准则:
- 我们的最高目标是,通过尽早和持续地交付有价值的软件来满足客户。
- 欢迎对需求提出变更——即使是在项目开发后期。要善于利用需求变更,帮助客户获得竞争优势。
- 要不断交付可用的软件,周期从几周到几个月不等,且越短越好
- 项目过程中,业务人员与开发人员必须在一起工作。
- 要善于激励项目人员,给他们以所需要的环境和支持,并相信他们能够完成任务。
- 无论是团队内还是团队间,最有效的沟通方法是面对面的交谈。
- 可用的软件是衡量进度的主要指标。
- 敏捷过程提倡可持续的开发。项目方、开发人员和用户应该能够保持恒久稳定的进展速度。
- 对技术的精益求精以及对设计的不断完善将提升敏捷性。
- 要做到简洁,即尽最大可能减少不必要的工作。这是一门艺术。
- 最佳的架构、需求和设计出自于自组织的团队。
- 团队要定期反省如何能够做到更有效,并相应地调整团队的行为。
喵呜面试助手: 一站式解决面试问题,你可以搜索微信小程序 [喵呜面试助手] 或关注 [喵呜刷题] -> 面试助手 免费刷题。如有好的面试知识或技巧期待您的共享!