敏捷开发
敏捷开发
敏捷开发是什么
敏捷开发(Agile Development)是一种软件开发方法,强调快速响应变化、快速迭代、持续交付和团队合作等特点,以提高软件开发的灵活性、效率和质量。
敏捷开发的核心是以客户需求为中心,强调快速反馈和迭代改进,通过短周期的迭代开发流程,不断调整和优化软件功能和特性,以更好地满足客户需求和期望。
敏捷开发通常采用以下一些方法和实践:
- **短周期迭代开发:**将软件开发过程分为短周期的迭代周期,每个迭代周期通常为1-4周,开发人员需要在每个迭代周期结束时交付可用的软件功能。
- **用户故事和需求:**采用用户故事和需求来描述客户需求和期望,帮助团队更好地理解客户需求和期望,以便更好地满足客户需求。
- **自组织和自我管理:**强调团队成员的自组织和自我管理能力,鼓励团队成员自主决策和自我调整,以便更好地应对变化和风险。
- **快速反馈和持续集成:**强调快速反馈和持续集成,开发人员需要在每个迭代周期结束时交付可用的软件功能,并不断进行集成和测试,以确保软件质量和稳定性。
- **团队合作和知识分享:**注重团队合作和知识分享,团队成员需要相互支持和协作,共同完成任务并不断学习和提高。
总之,敏捷开发是一种软件开发方法,强调快速响应变化、快速迭代、持续交付和团队合作等特点,以提高软件开发的灵活性、效率和质量。
敏捷开发起源
敏捷开发的起源可以追溯到20世纪90年代初期,当时软件开发领域存在着一些问题,例如开发周期长、成本高、质量低、难以适应需求变化等等。为了解决这些问题,一些软件开发者开始尝试采用一些新的方法和实践,这些方法和实践后来被统称为“敏捷开发”。
敏捷开发的最开始的参考文献是1995年由Kent Beck所著的《极限编程探索》(Extreme Programming Explained: Embrace Change),该书首次提出了一种敏捷开发方法——极限编程(XP)。极限编程强调快速反馈、持续集成、测试驱动开发、用户参与和团队合作等特点,可以帮助软件开发团队更好地应对需求变化和风险,提高软件开发的效率和质量。
除了《极限编程探索》之外,还有一些其他的书籍和文章也为敏捷开发的发展做出了贡献,例如:
- 《自适应软件开发》(Adaptive Software Development)(Jim Highsmith,2000年)
- 《开发者的用户故事》(User Stories Applied for Agile Software Development)(Mike Cohn,2004年)
- 《敏捷软件开发:原则、模式和实践》(Agile Software Development: Principles, Patterns, and Practices)(Robert C. Martin,2002年)
这些书籍和文章为敏捷开发的发展提供了理论基础和实践指南,对敏捷开发的理论和实践产生了深远的影响。
**敏捷开发最重要的参考文献是2001年发布的“敏捷宣言”(Agile Manifesto)。**敏捷宣言是由17位软件开发领域的专家在2001年2月聚集在美国犹他州的滑雪度假村共同制定的。这些专家在会议上共同探讨如何改进软件开发的方法和实践,发现传统的软件开发方法和实践存在一些问题,例如缺乏灵活性、过程繁琐、沟通效率低下等等。为了解决这些问题,他们共同制定了“敏捷宣言”,并提出了12项原则,这些原则强调快速响应变化、快速迭代、持续交付和团队合作等特点,以提高软件开发的灵活性、效率和质量。敏捷宣言的正式文本如下:
Manifesto for Agile Software Development
敏捷思维与敏捷开发区别
敏捷思维和敏捷开发是两个不同的概念,虽然它们都与敏捷方法和实践相关,但它们的重点和侧重点有所不同。
敏捷思维是一种思考方式和工作态度,强调自组织、快速反馈、迭代改进和团队合作等特点。敏捷思维的核心是以人为本,充分发挥团队成员的创造力和灵活性,积极应对变化和风险,以达到更好的工作效果。
敏捷开发则是一种软件开发方法,强调快速交付、持续改进和客户满意度等特点。敏捷开发的核心是通过短周期的迭代开发流程,不断交付可工作的软件,并通过快速反馈和持续改进来满足客户需求。
因此,敏捷思维和敏捷开发的重点和侧重点略有不同。敏捷思维强调个人和团队的能力和态度,以便更好地应对变化和风险,而敏捷开发则强调软件开发过程和方法,以便更好地满足客户需求和提高软件质量。不过,敏捷思维和敏捷开发也有很多相似之处,例如注重快速反馈、持续改进和团队合作等,两者可以互相促进和支持,共同推动软件开发效率和质量的提高。
敏捷开发简介
敏捷开发(agile development)是非常流行的软件开发方法。据统计,2018年90%的软件开发采用敏捷开发。
但是,到底什么是敏捷开发,能说清的人却不多。本文尝试用简洁易懂的语言,解释敏捷开发。
- 敏捷开发的核心是迭代开发(iterative development)。敏捷一定是采用迭代开发的方式。

- 所谓"增量开发",指的是软件的每个版本,都会新增一个用户可以感知的完整功能。也就是说,按照新增功能来划分迭代。

- 增量开发加上迭代开发,才算真正的敏捷开发。
虽然敏捷开发将软件开发分成多个迭代,但是也要求,每次迭代都是一个完整的软件开发周期,必须按照软件工程的方法论,进行正规的流程管理。

具体来说,每次迭代都必须依次完成以下五个步骤。每个迭代大约持续2~6周。
需求分析(requirements analysis)
设计(design)
编码(coding)
测试(testing)
部署和评估(deployment / evaluation)
敏捷宣言价值观
《敏捷软件开发宣言》里面提到四个价值观。

- 程序员的主观能动性,以及程序员之间的互动,优于既定流程和工具。
- 软件能够运行,优于详尽的文档。
- 跟客户的密切协作,优于合同和谈判。
- 能够响应变化,优于遵循计划。
敏捷宣言十二条原则
该宣言还提出十二条敏捷开发的原则。

- 通过早期和持续交付有价值的软件,实现客户满意度。
- 欢迎不断变化的需求,即使是在项目开发的后期。要善于利用需求变更,帮助客户获得竞争优势。
- 不断交付可用的软件,周期通常是几周,越短越好。
- 项目过程中,业务人员与开发人员必须在一起工作。
- 项目必须围绕那些有内在动力的个人而建立,他们应该受到信任。
- 面对面交谈是最好的沟通方式。
- 可用性是衡量进度的主要指标。
- 提倡可持续的开发,保持稳定的进展速度。
- 不断关注技术是否优秀,设计是否良好。
- 简单性至关重要,尽最大可能减少不必要的工作。
- 最好的架构、要求和设计,来自团队内部自发的认识。
- 团队要定期反思如何更有效,并相应地进行调整。
敏捷思维和敏捷开发如何应用?
敏捷思维和敏捷开发在实际工作中的应用可以帮助团队更好地应对变化和风险,提高效率和质量。以下是一些方法和实践,可以帮助团队在实际工作中应用敏捷思维和敏捷开发:
- **建立敏捷文化:**敏捷思维和敏捷开发需要建立在敏捷文化的基础上,即注重团队协作、持续改进和客户满意度等。团队可以通过培训、分享和实践等方式,建立敏捷文化,激发团队成员的创造力和灵活性。
- **采用敏捷方法和工具:**敏捷思维和敏捷开发可以采用各种敏捷方法和工具,例如Scrum、Kanban、XP、TDD、CI/CD等,以实现快速反馈、持续改进和持续交付。团队可以根据具体情况选择合适的方法和工具,并根据实际情况持续优化流程和工作方式。
- **注重团队协作:**敏捷思维和敏捷开发强调团队协作和自组织,团队成员需要充分发挥自己的能力和创造力,注重合作和沟通。团队可以通过会议、协作工具和沟通渠道等方式加强团队协作,提高工作效率和质量。
- **持续改进和学习:**敏捷思维和敏捷开发强调持续改进和学习,团队需要不断反思和总结,找出问题和改进点,并采取措施进行改进。团队可以通过回顾会议、知识分享和培训等方式,持续学习和提高自己的能力和水平。
总之,敏捷思维和敏捷开发在实际工作中的应用需要团队根据具体情况进行选择和实践,建立敏捷文化、采用敏捷方法和工具、注重团队协作、持续改进和学习等方式可以帮助团队更好地应对变化和风险,提高效率和质量。
由来
马斯克的5步工作法也诞生于这段时期马斯克自己对于 “量产地狱” 的亲身体验和经验总结。
五步工作法是马斯克在经历特斯拉Model3汽车的量产地狱(Mass Production Hell)以后痛定思痛,从很多管理失误和错误种总结出来的一套非常有效的企业商业创新管理思路。
简介
****
特斯拉如何像造软件一样造汽车
https://www.youtube.com/watch?v=_rySu6FZ18c
https://www.linkedin.com/pulse/insights-agile-tesla-joe-justice-h%C3%A0o-l%C7%90
https://www.linkedin.com/pulse/insights-agile-tesla-joe-justice-h%C3%A0o-l%C7%90
https://www.youtube.com/watch?v=AKqKCn4fheY
https://mashable.com/article/elon-musk-fixes-model-3-production-problems-more-humans
https://cleantechnica.com/2021/08/26/tesla-model-3-has-passed-1-million-sales/
https://en.wikipedia.org/wiki/Tesla_Model_3
https://press.farm/the-5-failures-of-elon-musk-and-how-he-overcame-them/
https://zhuanlan.zhihu.com/p/42671353
探访智能工厂:什么?45秒一辆车?_哔哩哔哩_bilibili
https://zhuanlan.zhihu.com/p/35234688
如何像造软件一样造星舰
https://www.thepaper.cn/newsDetail_forward_9635559
https://mil.news.sina.com.cn/world/2021-08-11/doc-ikqcfncc2273291.shtml
https://zhuanlan.zhihu.com/p/629263576
https://www.woshipm.com/pd/5816453.html
- SpaceX星舰:从敏捷开发看火箭科技的革新
https://www.bilibili.com/video/BV18M4y1t77K/?vd_source=bf81d82c33d79fc8ba758f30562cc9b5
https://zhuanlan.zhihu.com/p/102097404
- 星舰第二次发射的瞬间
https://36kr.com/p/2520748281882375
https://www.bilibili.com/video/BV1Cc411675R/?vd_source=bf81d82c33d79fc8ba758f30562cc9b5
https://new.qq.com/rain/a/20221122A077DX00


参考资料
- 极限编程解释:拥抱变化
Extreme Programming Explained Embrace Change.pdf
https://mp.weixin.qq.com/s/8M1iUQu7I13splGK_wmrRw