zoukankan      html  css  js  c++  java
  • [软件工程--个人作业] 敏捷开发读后感

    敏捷开发--软件开发的高大上方法

      一开始看到敏捷开发这个名字,就对里面的“敏捷”这个词产生了疑问,什么叫做敏捷开发,难道开发软件工程还要像奥运会一样“在追求更高更快更强的道路上,没有终点”吗?笔者带着这个非常sb的疑问大致浏览了一下老师blog里的网页,发现所谓的敏捷开发,说的就是一种高大上的软件开发新方式,它强调开发人员之间的频繁交流、快速处理需求改变、无限提高开发效率等等非常考验开发人员脑容量和体力的方式来开发软件。笔者以前其实没有什么软件开发的经历,但是在课堂上了解到了一些软件开发的一些传统方式,比如说瀑布模型,这是最典型的预见性的方法,严格遵循预先计划的需求、分析、设计、编码、测试的步骤顺序进行。然而相对于这种循规蹈矩的传统模型,敏捷开发其实就开放的多,当然也累得多,但是其在某些方面确实强于传统的开发方式。

      为了更加详细的了解敏捷开发方式,需要知道敏捷开发具体指的是什么,这又回到了笔者一开始的那个非常sb的问题---何为敏捷?通过浏览网页的信息以及查了一下词典,笔者机智的发现agile这个词有一条英文解释:“ having a quick resourceful and adaptable character ”,再结合各种百科对于敏捷开发的描述,笔者(根据自身渣一般的英文水平以及理解能力)对敏捷开发做出的概述就是“一种具有快速适应性的软件开发方法”。这里不引用下敏捷开发的十二条原则简直就天理不容了:

    1. 我们最重要的目标,是通过持续不断地及早交付有价值的软件使客户满意。

    2. 欣然面对需求变化,即使在开发后期也一样。为了客户的竞争优势,敏捷过程掌控变化。

    3. 经常地交付可工作的软件,相隔几星期或一两个月,倾向于采取较短的周期。

    4. 业务人员和开发人员必须相互合作,项目中的每一天都不例外。

    5. 激发个体的斗志,以他们为核心搭建项目。提供所需的环境和支援,辅以信任,从而达成目标。

    6. 不论团队内外,传递信息效果最好效率也最高的方式是面对面的交谈。

    7. 可工作的软件是进度的首要度量标准。

    8. 敏捷过程倡导可持续开发。责任人、开发人员和用户要能够共同维持其步调稳定延续。

    9. 坚持不懈地追求技术卓越和良好设计,敏捷能力由此增强。

    10. 以简洁为本,它是极力减少不必要工作量的艺术。

    11. 最好的架构、需求和设计出自自组织团队。

    12. 团队定期地反思如何能提高成效,并依此调整自身的举止表现。

      我们可以看到,敏捷开发的主要目的是要不择手段的将效率和质量最大化(从第一条就能看出来了),主要的方法就是发掘团队成员每个人的潜力,并且通过短间隔的交付以及讨论来保证效率。初看这种方法会给人一种榨取劳动力剩余价值的感觉,但仔细一想,这样的开发方式也许真能又快又好的完成项目。首先,敏捷开发强调短间隔开发周期,并且给予每个团队人员最大的信任和自由,因此,当每个团队人员都能以极高的热情努力完成任务时,这种短间隔的交付以及例会就能很好的保证项目的效率以及质量。其次,敏捷开发中提高效率的方法也是很不错的,它要求团队人员们多面对面交流,保持紧密的联系,并且还要定期反思提高效率,可以说能用来提高效率的方法它基本都用了,就差项目经理开会时拿着一大捆钞票说“第一名拿一万,第二名拿一半,第三名拿第二名的一半,以此类推,再到后面就没钱了,注意了,排在后面就没钱啦”这种方式了。再者,在强调效率的同时,敏捷开发方式还不是敏捷的提醒众位注意质量,每个进度的首要度量标准是可工作的软件,还要坚持不懈的追求技术卓越和良好设计的同时以简洁为本,在自组织团队人员的个人能力都很强的时候这么做未尝不可。最后,敏捷开发可是大神们在一次茶话会中讨论出来的高大上开发方式,谁不支持谁就不客观。

      但是,在看到敏捷开发高大上的原则以及诱人成果的同时,笔者还对此方法抱有一些疑问。敏捷开发的12条原则虽然都是一些非常完美的方法,但是这些原则的执行是非常考验团队每一成员的能力的,这么短的开发周期确实能激励每个队员努力的去完成任务,但也限制了每个开发人员在两个间隔期间只能着手于自己任务,如果有一两个开发人员因为能力不足、偶感风寒或者一些不可抗拒的自然因素,导致其没能完成任务,而其他开发人员又没空接手,就很有可能打乱进度,然而如果为了适应各种情况增加周期,就变得不那么敏捷了吧。当然,正如一开始所说,敏捷以为着快速适应,而敏捷开发的团队又是自组织的,团队会在下一次工作周期做出相应的调整以求高效的解决问题,但这里就有一个疑问了,如果一直没有找到合适的分工形式是不是意味着不断地调整,这样不稳定性会不会导致一些意想不到的问题?

      其实每种开发方式都会有或多或少的问题,然而敏捷开发最为一种比较新的开发方式,它很符合当下这个信息爆棚的时代,是一种大信息量,时刻通信,快速的开发方式,虽说比较考验团队人员的能力,但是通过方便快捷的资料查询,能力的差距会不断缩小,因此,笔者认为敏捷开发方式是一种不错的软件工程的开发方式。最后还是那句话,这是一群大神们抱团想出来的高大上方法,谁不支持谁就不客观。

  • 相关阅读:
    swagger 接口文档,控制器 和 object类型的参数与返回值 的 注释不显示问题
    python学习——练习题(13)
    python学习——练习题(12)
    女生生日祝词
    python学习——练习题(11)
    python学习——练习题(10)
    python学习——练习题(9)
    python学习——练习题(8)
    python学习——练习题(7)
    python学习——练习题(6)
  • 原文地址:https://www.cnblogs.com/z-mac/p/3370060.html
Copyright © 2011-2022 走看看