【什么是敏捷开发?】资深程序员之路(5)--agile开发
敏捷开发(scrum, agile)相对于瀑布流开发(waterfull)更适合现在快节奏的商业模式需求,它将一整个项目拆分为相互独立的小块,我们成为sprint(冲刺),每个sprint都包含前期的需求分析,开发测试,客户演示和demo优化,UAT,如下图。
好处:随时保持和客户的交互(双向反馈),确保开发更符合客户实际业务需求。
【敏捷开发的4大核心价值观?】The Four Values of The Agile Manifesto
1. Individuals and Interactions Over Processes and Tools
以人为中心,强调团体(内部团队+外部客户)沟通协作。
2. Working Software Over Comprehensive Documentation
传统的项目管理大量时间被消耗在记录产品开发和最终交付,如技术规范、技术要求、技术说明文档、接口设计文档、测试用例文档等拖延了项目交付时间,敏捷不排除文档,它借助User Story敏捷文档需求结合敏捷工作软件使形式更精简,这给开发者明确的工作任务而非陷入细节。
3. Customer Collaboration Over Contract Negotiation
客户参与开发过程,包括需求的进一步确认、细节的进一步拟合、定期的演示,能确保产品极大程度地满足客户的业务需求。
4. Responding to Change Over Following a Plan
传统的项目管理重计划,并将中途客户提出的需求变更视为一种支出,对于大型项目,如果有需求变更就需要依据ITIL规范提出变更并经过需求变更委员会审批后(重估成本和IT预算)才能实施;而敏捷开发拥抱变化,并认为变更总是改善项目,为客户提供额外的价值。
【敏捷开发的12条原则?】敏捷开发之 12条敏捷原则 | 周金根博客
1. Customer satisfaction through early and continuous software delivery
2. Accommodate changing requirements throughout the development process
3. Frequent delivery of working software
4. Collaboration between the business stakeholders and developers throughout the project
5. Support, trust, and motivate the people involved
6. Enable face-to-face interactions
7. Working software is the primary measure of progress
8. Agile processes to support a consistent development pace
9. Attention to technical detail and design enhances agility
10. Simplicity
11. Self-organizing teams encourage great architectures, requirements, and designs
12. Regular reflections on how to become more effective
【敏捷开发的框架的核心概念?】敏捷项目管理流程-Scrum框架最全总结
1. User Stories
End User关于产品的要求,常用如下格式表示一个完整的User Story:
As a/an role, I want/need(features), so that(benefits).
通常,在收集user story的同时,会要求客户注明可接受条件(acceptance criterias),作为软件实施的Basic Requirement/MVP(Most viable product)。
2. Product Backlogs - 产品待办项(未完成项/存量)
The collection of all user stories, we called product backlogs.
3. Realeas List<Backlogs>
从Product Backlogs挑出需要实施的User,并按照优先级Must/Should/Could/Won't排序,并规定每个task需要完成的时间,如:1hr/2hrs/4hrs/8hrs | 2ds/3ds/5ds/10ds | 1m/2ms/3ms/6ms.
3. Team Roles
将scrum的roles分为三个层次:
Product Owner: 将正确的功能放入Product Backlogs的人。
Scrum Master: 相当于项目经理,需要确保项目进度,协调客户与团队并主持scrum daily meetings等。
Team: include developers, testers, customers, executives.
4. Sprints
指Realease Planning,一般一个Sprint周期为2d-1m。
5. Burndown Charts (燃尽图)