什么是敏捷开发的根本基础?持续集成+团队协作!【转】

本文探讨了敏捷开发的两大核心要素:持续改进与团队协作,并详细解释了它们如何与敏捷开发的十二项原则相对应。

问题:什么是敏捷开发的根本基础?What is the essence of Agile Software Development??

来自LinkedIn热帖http://www.linkedin.com/groupAnswers?viewQuestionAndAnswers=&discussionID=156452723&gid=37631&commentID=93678048&trk=view_disc&ut=3OEFTrlSNevlo1,大家也可以到上面看看老外们的讨论。

道德经说太极生两仪,两仪生四象,四象生八卦,八卦生六十四卦,六十四卦生万物。

但是多数企业的敏捷开发都太“八卦”了,上不能掌握太极的根本,下不能根据企业具体情况衍生出万物。博客上的其他文章描述描述“万物”已经够多了,这篇文章只说说两仪。

在前面的帖子里边,有几个人支持fast feedback/short iteration,另外一些人则支持transparency/teamwork,加在一起算是敏捷开发的两个最重要方面。

答案:持续改进+团队协作

如果用地道的敏捷开发词汇,就是这两个。

持续改进包括 quick feedback, continues integration, daily buiding, standup meeting, short iteration, refact, working software, etc. 团队协作包括 stands for cross-function team, focusing on customer's value(把客户也当作双赢乃至多赢的团队的一部分), selforganized team, test automation (开发人员做测试的事), 
下面是这两者和12个敏捷原则的对应关系:

持续改进

1: Our highest priority is to satisfy the customer through early and continuous delivery of valuable software

翻译:尽早并持续地交付有价值的软件以满足顾客需求。

3: Deliver working software frequently, from a couple of weeks to a couple of months, with a preference for the shorter timescale

翻译:经常发布可用的软件,发布间隔可以从几周到几个月,能短则短。

7: Working software is the primary measure of progress.

翻译: 可用的软件是衡量项目进展的主要指标

8: Agile processes promote sustainable development.  The sponsors, developers, and users should be able to maintain a constant pace indefinitely.

翻译: 敏捷流程应能保持可持续的发展。 领导, 团队和用户应该能按照目前步调持续合作下去。

10: Simplicity--the art of maximizing the amount of work not done--is essential.

翻译: 保持简明 - 尽可能简化工作量的技艺 - 极为重要。英文说 maximizing the amount of work not done.

 我的理解是 - 任何还没有明确的工作都会花不可知的时间,因此要 maximize,  不要把那些还没有做的工作和正在做的工作混起来。      

12: At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

翻译: 时时总结如何提高团队效率, 并付诸行动。

团队协作:

2: Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage

翻译:敏捷流程欢迎需求的变化, 并利用这种变化来提高用户的竞争优势。

4: Business people and developers must work together daily throughout the project. 

翻译:业务人员和开发人员在项目开发过程中应该每天共同工作。

5: Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. 

翻译:以有进取心的人为项目核心,充分支持信任他们

6: The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.

翻译:无论团队内外,面对面的交流始终是最有效的沟通方式

9: Continuous attention to technical excellence and good design enhances agility.

翻译: 只有不断关注技术和设计才能越来越敏捷.

11: The best architectures, requirements, and designs emerge from self-organizing teams.

翻译: 只有能自我管理的团队才能创造优秀的架构, 需求和设计.


把客户和商业价值等内容放到团队协作里边看似有点牵强,这也是我更喜欢用“无我”的原因。“

团队”很容易让人局限到开发团队的内容,实际上团队协作是在说“不要只考虑我”乃至“不要只考虑我们(还要考虑客户)”。

 

 

关于由持续改进产生的两象在这里:http://blog.youkuaiyun.com/cheny_com/article/details/7190094 

而团队协作产生的两象在这里:http://blog.youkuaiyun.com/cheny_com/article/details/7189757 

 

本文中采用的翻译文字,来自:http://www.cnblogs.com/xinz/archive/2010/12/10/1902725.html

内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值