瀑布型项目适用于“技术很确定且需求很确定”的项目,如stacey矩阵中的“Simple”区域。而现实中,大多数的软件项目充满了不确定性。大多数情况下,技术不确定,需求在前期更为不确定。
从事软件开发的是一群聪明人。而正是因为这些聪明人经常习惯于过度思考,过度设计。这对于初期需求不明确时,过度的思考和设计常常是一种极大的浪费。“人类一思考,上帝就发笑。”当软件需求一开始不是非常明确的时候,我们需要从原型开始,通过多次的迭代:
基于已明确问题的实现 —>Demo反馈 —> 修改设计 —>再次Demo反馈。这种拥抱变化的软件开发模式是敏捷思想的真谛。
敏捷开发4项基本价值
- 以人为本:Individuals and Interactions Over Processes and Tools
- 目标导向:Working Software Over Comprehensive Documentation
- 客户为先:Customer Collaboration Over Contract Negotiation
-
拥抱改变:Responding to Change Over Following a Plan
12项指导原则
读书感悟:
原则1:
-
原则7: Working software is the primary measure of progress
在企业项目管理中,官僚化的管理思维往往会把做一件事情的过程搞得看起来很专业、很美好,而对事情的结果不重视。在敏捷中,我们重视最终交付的价值。过程当然重要,但过程是为结果,即交付可用的软件产品服务。“无论黑猫白猫,抓到老鼠🐭的就是好猫🐱”是个朴素的敏捷思维。
-
原则 8: Agile processes to support a consistent development pace
活儿是永远干不完的。一个有持续发展能力的组织应该注重干活的方式。这种持续收益远大于多加一两天班。而一旦一个公司不以结果导向(原则7),为彰显所谓“苦干”精神,形成制度化加班的氛围。磨洋工式的工作态度就会相伴而生。
Ref:
https://www.agilealliance.org/agile101/12-principles-behind-the-agile-manifesto/