才思敏捷的近义词

2024-07-10

才思敏捷的近义词(共12篇)

才思敏捷的近义词 篇1

敏捷的近义词是什么_用敏捷这词造句

敏捷

mǐn jiéㄇㄧㄣˇ ㄐㄧㄝ @

目录1、基本解释

2、近义词

3、反义词

4、英文翻译

5、详细解释

基本解释

[释义]

(形)(动作)迅速而灵敏。多用于书面语。

[构成]

并列式:敏+捷

[例句]

他身手敏捷。(作谓语)

[同义]

麻利

近义词

迟缓、迅速、快捷、快速、火速、急迅、迅捷、伶俐、灵活、灵巧、聪明、圆活、灵敏、灵便、灵动、活络、矫捷、生动、乖巧、精巧、麻利

反义词

笨拙、迟缓、痴钝、缓慢、迂缓

英文翻译

1.quick; nimble; sharp; agile

详细解释

◎ 敏捷 mǐnjié

[quick;agile;nimble;fleet;prompt] 反应迅速快捷

敏捷地跳上敞篷车

灵敏迅速。《汉书・酷吏传・严延年》:“ 延年 为人短小精悍,敏捷於事。” 宋 欧阳修 《归田录》卷二:“而 子华 笔力豪赡, 公仪 文思温雅而敏捷,皆偷幸病!薄逗炻ッ巍返谖迨回:“ 宝玉 见 宝琴 年纪最小,才又敏捷。” 柳青 《创业史》第一部第一章:“人们从 梁三 走步的带劲和行动的敏捷上,一眼就可看出:那强壮的体魄里,蕴藏着充沛的精力。”

用敏捷这词造句

1. 零星的时间,如果能敏捷地加以利用,可成为完整的时间。所谓“积土成山”是也,失去一日甚易,欲得回已无途。

2. 我迟疑,也敏捷;我孤僻,也能与众多的人交往;我多变,也始终不变。

3. 伟大的事业不是靠力气、速度和身体的敏捷完成的,而是靠性格、意志和知识的力量完成的。

4. 在一次学校组织的旅游中,彼特和他的同学们参观了一个有关节肢动物的科学展览,期间,彼特被一个转基因蜘蛛咬了一口。不久之后,他发现自已具有了非同寻常的能力:他成了一只力量超凡、身手敏捷的蜘蛛,并且还具有了一种敏锐的超感知蜘蛛感官。

5. 马蹄声声那是快乐的节拍,马到成功那是事业的腾飞,马踏飞燕那是人生的舞步,倚马千言那是才思的流淌。马年到了,愿你踏着快乐的舞步,拥着敏捷的才思,步入人生的辉煌。

6. 在我身后的那座不夜城里,探照灯扫射天空只为了取乐。我想像他们聚集在大理石铺地的广场上,井然有序,机智敏捷。我看到他们明亮的双眼中饱含热爱,他们热爱灯火通明的街道,热爱银光闪闪的车辆。

7. 她的走路脚步,做事情时的小动作,都那样端正认真,但是轻快敏捷,像早晨露水里山川草木的爽气。

8. 自幼好学,敏捷多才,下笔成章,颇受人钦佩。

9. 能跑善钻:小强的动作很敏捷,能跑善钻,这次比赛应该是稳操胜券。

10. 他敏捷的辩别力使他急躁得毫无耐心作深思熟虑的判断。

11. 我们老师思维敏捷,当我们有问题问他时,他总是胸有成竹地回答我们。

12. 他的文思敏捷,信手拈来,总是佳言妙句。

12 他的学养深厚,兼以才思敏捷,自然出口成章。

12 他身手敏捷,做什么事都不会拖拖拉拉,所以他成了大家的好榜样。

15. 小明反应相当敏捷,只要老师教过的,他都能举一反三。

16. 她才思敏捷,出口成章,令人佩服!

17. 这个青年作家由于才思敏捷,得到王老作家的激赏,两人因此结为忘年之交。

18. 别看这只猎犬长得膘肥体壮,追起猎物来可敏捷得很呢!

19. 孟加拉邦小镇一户人家丢了很多鸡,一直归罪于邻居的狗,直到主人亲眼目睹自家小牛像猫一样敏捷地扑向鸡群才真相大白。

[敏捷的近义词是什么_用敏捷这词造句]

才思敏捷的近义词 篇2

1 敏捷开发

敏捷开发是由15个科学家共同提出来的,其中包括来自思特沃克公司 ( Thought Works) 著名的软件大师马丁·福勒 ( Martin Fowler)[1]。敏捷开发即一种全新而快捷的软件开发模式,是把人放在第一位,以满足用户不同需求为导向的开发模式[2]。应用敏捷开发的方法,要求团队成员具有很强的主动性,满足了高内聚、松耦合的原则把项目分成了若干个小组。较少的文档准备和分组的新方式缩短了软件开发周期,开发过程中的多次迭代和测试提高了软件的质量[3]。

2 敏捷技术的重要性

从目前敏捷开发的研究现状中,我们可以看到在任何一个软件的开发过程中,任何的一种模式都不是能解决所有问题的万能钥匙,所以在软件开发过程中应全面考虑所有的问题,不管是开发方法、设计模式还是设计架构都是必须考虑的重要因素,而就目前敏捷开发的应用研究来看,敏捷开发的过程,对技术并没有明确的指导思想,这也正是多数项目在应用敏捷开发过程中失败的重要因素。

从根本来说,敏捷开发不仅是一个软件开发过程的方法论,准确地说它更是一种思想,但这种方法是建立在敏捷技术上的,敏捷技术为这一方法的实施提供了可行性,只有敏捷的技术才能支撑敏捷开发的实施[4]。真正的敏捷开发不只是管理层次的敏捷、项目参与人员的敏捷,架构的设计也应该是敏捷的,编程思想也应该是敏捷的,这才是实至名归的敏捷开发。在项目真正进行过程中,为了能更好地发挥敏捷开发的优势应做到管理与技术同步规范。管理与技术是不可分割的,二者相辅相成,技术的敏捷使得敏捷开发方法的实施具有一定可操作性,是敏捷开发方法的基石,如果没有相关技术的支持,敏捷开发是不能完全发挥效应的甚至是不可行的。只有做到管理与技术同步敏捷,在管理的过程中得到相应技术的支撑,敏捷开发方法才能发挥真正的敏捷,才是真正的敏捷思想。

2. 1 简单三层

敏捷开发方法要求在敏捷开发实施过程中,如何保证开发团队的每个开发人员能够独立地进行系统模块开发是敏捷开发能否成功的关键因素。而以往的传统开发技术,并没有将系统模块化,整个系统的耦合性较高,依赖性较强,使用传统的开发技术并不能实施敏捷开发方法,使得敏捷开发提倡的系统各模块之间并行开发成为空想。简单三层却为这一要求提供了可行性。

三层架构由底层至上层分为数据访问层 ( Data AccessLayer,DAL) ,业务逻辑层 ( Business Logic Layer,BLL) ,用户界面 ( User Interface,UI)[5]。简单三层将界面的呈现、业务逻辑的处理以及访问数据库很好的分离开来,因此在系统实现编码过程中不仅可以实现系统各模块的并行开发,而且不要求全能型的开发人员,只需精通其中一层即可参与到项目当中,在保证工作高效且代码质量的同时节约了开发成本[6]。在测试方面,三层也可同步进行,可以解决敏捷开发在测试环节中给项目带来的成本偏高问题,在支持敏捷开发实施的同时,又保证了整个系统的安全,降低了系统的复杂性,无形之中也提高了项目参与人员的积极性,使得敏捷开发能够顺利进行。

2.2 抽象工厂模式

敏捷开发提倡的是拥抱变化,要求在开发过程中进行多次的迭代,项目团队进行周期性的交流沟通,随时应对客户的需求变化,勇敢地面对变化,对于用户的反馈,程序员要有勇气对已经编写好的代码进行适当的修改[7]。敏捷开发里所说的勇于接受变化并不是简单的要求项目团队在客户提出新的要求时,就将之前的系统全部放弃,从头再来,这并不是真正意义上的敏捷开发。但是面对这样的需求敏捷开发只是单纯的提出了要求,并没有对此有进一步的说明和指导,而为了满足更换数据库的需求重新编译数据操作类就相当于项目从头开始,又不是最好的解决办法。如何在面对客户需求的时候,尽可能地减少代码的修改量,代码的复用性是一个关键因素。想要提高代码的复用性,就想到了设计模式,在当前的设计模式中,抽象工厂模式很好地解决了这一问题。

作为创建型模式的抽象工厂模式是23种设计模式中的一种,所谓创建型模式就是不需要自己实例化对象,而是由创建型模式来代替新操作[8]。抽象工厂模式指的是提供一个创建一系列相关或者相互依赖对象的接口,而不需要指定它具体的类[9]。该类设计模式是专门针对需求的变化来达到提高代码复用性目标的一种模式,它就相当于一个实实在在的工厂,只不过与我们现实生活中的工厂不同的是现实生活中的工厂是用来生产产品,但是这里的工厂是用来管理变化的。

使用抽象工厂模式将可变的进行封装,以接口的形式呈现,在三层中应用抽象工厂模式,在不需要修改以前代码的前提下轻松地解决了更换数据库类型这一需求,并且在系统开发完成之后甚至是使用过程中,都可轻松地更换数据库类型,有效地解决了由于需求变化导致开发周期延长,并且为系统的后期维护降低了成本。

2.3 ASP. Net MVC

客户的需求贯穿于整个项目中,虽然敏捷开发中采取先测试再编码的方式有效地应对了客户需求的变化,但是并不排除客户对测试满意,开发完成之后又提出了新要求的可能性存在。对于大多数客户来说需求的变化主要体现在系统功能和界面展示方面,针对这一可能性传统的敏捷开发并没有很好的解决办法,只能重新编写,重新测试,但是这一问题是周而复始的,这样的做法治标不治本。应对这一状况就应考虑到从技术方面入手。

在通常情况下,系统的页面开发都是用网页表格( Web Form) 进行,虽然网页表格 ( Web Form) 操作简单,可以直接拖控件对页面完成布局工作,但是它的页面展示与后台逻辑代码的耦合度较高,在遇到客户对页面布局要求变更的时候,不仅要进行页面布局的修改,还要将相应的页面逻辑进行修改,这无疑多做了很多没有必要的工作,这时ASP. Net MVC框架成了解决这一问题的第一选择。

ASP. Net MVC是微软在2009年对外公开发布的第一个开源的表示层框架[10]。ASP. Net MVC模式是一种表现模式,它可以将 表现层分 成模型 ( Model ) 、控制器( Controller) 和视图 ( View) 三个组件,有效地分离了页面展示与用户界面 ( UI) 逻辑代码,所以ASP. Net MVC是一个更加倾向于用户界面层 ( UI) 的表现层框架,是网页表格 ( Web Form) 的另一种选择[11]。在面对客户对页面展示需求变化的时候,只需更改相应页面的展示效果即可。

3 敏捷技术应用实例

3. 1 项目简介

本校的博士研究生招生工作在2013年之前均是通过工作人员手工的录入以及核对完成的,因此,本校博士招生工作存在效率低下,管理无序,数据安全性较差等诸多问题,实施办公自动化对于我校的博士招生工作具有重大意义。本项目将采用本文所提及的融合敏捷技术的敏捷开发方法对系统进行开发。

3.2 敏捷技术在开发中的具体应用与实现

根据上述分析,博士研究生招生系统的整体架构见下图。

从上图中我们可以看到,本系统结合了简单三层架构、抽象工厂设计模式和ASP. Net MVC框架三大技术,本系统使用2011年发布的ASP. Net MVC3. 0版本[12]。本论文主要从这三个技术的应用上进行详细论述,来论证敏捷技术对敏捷开发的重要性。

3. 2. 1 抽象工厂模式在数据访问层的应用

对于本系统的开发主要是针对学生各种信息的管理与操作,并且录取的学生信息数据库要与我校现有的各种学生工作系统进行衔接,而所用数据库并不相同,对现在已经使用的系统进行修改并不是一个好办法,只有针对目前着手开发的博士研究生招生系统进行完善,来迎合不同数据库的需求。解决这一需求的办法就是抽象工厂模式。本文以考生登录功能为例进行技术应用说明。

创建抽象工厂类,利用 . Net的反射机制获取数据访问层的程序集和命名空间的名称,通过数据访问接口层来创建user_ infor数据表的实体类,并采用缓存技术来提高系统性能,设置当前应用程序指定Cache Key的Cache值的核心代码如下:

由于数据访问层融合了抽象工厂设计模式的思想,所以业务逻辑层调用数据访问层是通过数据访问接口层创建相对应的数据工厂实例,并没有指定具体的数据操作类,因此,在面对更改数据库类型时,只需修改配置文件的程序集和命名空间的Value值即可,配置文件代码如下:

由此可见,应用了抽象工厂模式和反射机制加上配置文件的使用,在不需要修改系统代码的前提下轻松实现了异库移植操作,并且为本项目实施敏捷开发时适应了需求且缩短了开发周期。

3. 2. 2 ASP. Net MVC 框架的应用

在ASP. Net MVC中UI逻辑在Controller组件中进行编译,Controller负责将数据从Model取出传递给View[13]。在本系统里,ASP. Net MVC代替网页表格 ( Web Form)作为三层中的用户界面层 ( UI) ,所以在界面展示编译中,ASP. Net MVC框架中的控制器 ( Controller) 组件则负责与业务逻辑层进行对话,从业务逻辑层调用校验用户的方法来获取数据库中的考生登陆信息。判断登陆是否成功的部分代码如下:

前台的页面布局交由视图 ( View) 组件负责,由于它与控制器 ( Controller) 组件的低耦合性,视图 ( View)的页面展示只需单纯的Html标签即可实现,并且不需要将标签ID传到后台,实现了UI展示与UI逻辑的彻底分离。登录页面的视图 ( View) 核心代码如下所示:

从以上代码我们可以看出,视图 ( View) 页面都是由Html标签实现,所以在更换页面布局的时候就不需要考虑前台标签与后台逻辑的绑定问题,不需要修改用户界面 ( UI) 逻辑代码。

4 结 论

才思敏捷的解缙 篇3

一日,解缙陪朱元璋出游,朱元璋要解缙以《鸡冠花》为题吟诗。于是,解缙出口一句:“鸡冠本是胭脂染。”有人提醒,不是红色的,是白色的。解缙又吟出了第二句:“今日为何浅淡妆?”随后,解缙又自己做出了解答:“只因五更贪报晓,至今戴却满头霜。”众人听了,连连叫好。

解缙曾奉旨给朱元璋写了首《有喜》诗。他第一句便写道:“君王昨夜降金龙。”这是把皇子比喻为金龙。但朱元璋看了说:“生下的是个女孩儿。”解缙略加思索,笔锋一转又写道:“化作嫦娥下九重。”用一个“化”字便改男为女,真是天衣无缝!但朱元璋又说:“已经死了。”解缙立即露出惋惜的神情,马上又走笔写道:“料是人间留不住。”瞧,解缙对噩耗的处理多么妥帖!朱元璋接着又说:“已经把她抛到水里去了。”解缙随即挥笔写出最后一句:“翻身跳入水晶宫。”朱元璋听后,仔细思量了一下,觉得解缙的诗构思巧妙,开头与结尾遥相呼应,他反复吟诵,赞赏不已。

解缙身材不高,初入朝时,群臣借以嘲讽。解缙以诗答之曰:“诸君笑我矮锉锉,我笑诸君食禄多。倒吊起来无点墨,身高一丈又如何?”群臣听了,顿时哑口无言。

一次,众人在雪地里玩雪,他们将雪堆成了一个和尚,并请路过此地的解缙作诗。解缙随口便吟道:“此僧从未入娘胎,昨夜天宫降下来。暂借此间投一宿,明朝日出返天台。”众人听后,顿时佩服不已。

还有一次,解缙随朱元璋去钓鱼,钓了好久都未钓着,朱元璋有些不高兴了。解缙见了,便作了首《钓鱼》诗来解闷:“数尺丝纶落水中,金钩抛去荡无踪。凡鱼不敢朝天子,万岁君王只钓龙。”朱元璋听后,哈哈大笑:“爱卿真会随机应变啊!”

敏捷的反义词是什么 篇4

与敏捷这个词语含义相近的词语有:快捷、灵敏、灵便、灵活、迅捷、矫捷、灵巧、机敏、聪明、飞快、火速、伶俐、急迅、敏锐、活络、灵动、快速、麻利、圆活、迅速等。

1、矫捷 [ jiǎo jié ] 矫健而敏捷。如:他飞速地攀到柱顶,像猿猴那样矫捷。

2、伶俐 [ líng lì ] 表示聪明或灵活。如:口齿伶俐。

用才思敏捷造的句子 篇5

1. 爸爸是个才思敏捷的人。

2. 大学生对新事物接受能力强,才思敏捷,感情丰富。

3. 苏东坡的才思敏捷,写文章有如行云流水,行于当行,止于当止。

4. 他的学养深厚,兼以才思敏捷,自然出口成章。

5. 她才思敏捷足以避开别人的攻击。

6. 他的才思敏捷,企业主管十分器重他。

7. 从小她的成绩名列前矛、头脑才思敏捷,是老师看好的好学生。

8. 他有才思敏捷的头脑,却不学好,让父母十分伤心。

9. 学生的知识经验增多了,人文素质提稿了,就会才思敏捷,写出既具一定的思想见解,又具有较丰富的文化内涵的好文章。

10. 哥哥才思敏捷,再冷僻再刁钻的问题,他都会做出迅速反应。

11. 小王是个才思敏捷的小伙子!

12. 他是个才思敏捷的.人,而且他做什么事都能胸有成竹。

13. 他才思敏捷,勤奋刻苦,每次考试都胸有成竹。

14. 我才思敏捷的造了一个句子。

15. 他才思敏捷,什么难题都难不到他。

16. 红红从小才思敏捷,这次竞赛活动一定能拿个好成绩。

17. 姐姐是个才思敏捷的人。

18. 要取得这次比赛的胜利,不仅要知识基础牢靠,还要才思敏捷才可以。

19. 这位同学参加面试,答题的时候才思敏捷,应对自如。

20. 1000字的作文,才思敏捷的他,半个小时就搞定了。

21. 我们班上的张兰是一个才思敏捷的学生。

22. 我哥学识很深,在班上他总是第一个举手回答老师提出的问题,可谓是个才思敏捷的学生。

对“敏捷”的一些体会 篇6

说起敏捷开发,很多人第一反应这是一种开发技术,立马想到OOP设计原则、TDD、MDD、XP等等,

我理解的敏捷:

敏捷是一个过程,而不是技术。一个过程让团队成员爽、轻松、高效、产品质量过关,这就是敏捷的过程。TDD、MDD、oop等是实施过程中的一些方法,这些方法可能某些的团队实施起来让过程很敏捷,但是某些团队实施起来就不一定敏捷了,就像女人适合练 、男人适合练九阳神功,因为每个团队所处的环境、团队的水平都不一样,有很多的客观和主观的原因。

敏捷的基础:信任——你做事、我放心。

没有信任,就不可能有敏捷。想想老板、同事告诉你“你做事,我放心”,你是什么反映。

信任,意味着你有更大的权利决策更多的事情,同时也意味着你需要承担更多的责任,俗话说“这件事交给你了,你当家做主了”。

对于我们,我们应该怎么做:

1、 流程是否可以减少:

产品会议->需求评审->Kick Off ->设计评审->项目周会(晨会)->TC评审->发布评审 等等,我们是否每个项目都要按照一定模板,一个阶段一个阶段的实施。如果大家互相非常信任,是否还需要这么多的流程。我的理解,该省则省,视项目而定。有些小项目,UC可以简单点,设计可以不做,有些复杂点的项目,一步一步走,不要越级。就像如果拿着一个小东西,你跑没关系,跳着前进也没关系,但是背着一个很大很重的包,这时就跑步动了,那就一步一步稳稳当当的走吧(东北话,有点墨迹)。

2、 开会是否真的需要邀请那么多人:

我们发会议邀请,邮件列表里往往几十个人,运营、运营老大、pd、pd老大、开发及其老大等等,想想这么多人都是真的需要关注这件事情么,

3、 开会是否必须要到会议室

现在我们每次开会都要预定会议室,每次都很难订到,那么想想我们是否真的需要到会议室才能开会。开会,是找几个相关的人到一个不受影响(也不要影响别人)的地方,

一起讨论碰到的问题,或者宣布一些什么事情、汇报情况等。那么座位上,或者休闲吧、或者楼梯口、旺旺群邮件等是否也具有相应的功能。

4、 设计:过度设计。

我们在做设计的时候(需求设计、系统设计),经常听到这样的话“将来什么什么情况时,你怎么办”。想想,如果将来的情况你都能考虑到话,现在为什么不把做掉,

还要等到将来,或者说将来的多种情况你都考虑到,那将来还需要我们干什么,直接从你这几种方案里选一个就好了。现实当中,我们为将来做的设计,将来真的用上的,大家可以

举几个实际例子来看看,很少。当然,适当考虑一些是没错的,但是不要过多的考虑,否则就是过度设计,我们不需要为将来背太多的书,还是多花点精力盯紧当前的需求。

做一天和尚撞一天钟,你看和尚活得多爽。

5、 重构:随时重构、包括流程。

需求每天都在变,环境每天都在变,所以两年前很好的流程,很好的技术架构现在已经很不爽了,所以需要随时把不爽的,过时的流程、架构、代码

砍掉,换上与时俱进的流程、架构、代码。

6、保持学习:

社会在发展、环境每天都在变,我们不学习,会落伍的。

7、最后一点,敏捷不是一个人、一个部门的事情,是需要整个公司一起来做才能做好的事情,现在我们没做一个项目,都会涉及多人、多部门、甚至多个公司,需要大家互相理解互相信任。单纯一个人或者一个部门敏捷的过程是无法实施的。

敏捷方法与SOA的结合 篇7

近年来,关于SOA实施必要性的讨论甚嚣尘上,似乎SOA是包治百病的良药,企业只要实施了SOA,就能提高业务灵活性,从而增强企业的竞争力。然而在大多数实施了SOA的企业中,需求的变化还是不断的出现。针对这一问题,笔者提出利用敏捷方法实现SOA技术的新的开发模式。

2、企业实施SOA的优势与问题

2.1 SOA的优势

1) SOA可通过互联网服务器发布,从而突破企业内网的限制,实现与供应链上下游伙伴业务的紧密结合。通过SOA架构,企业可以与其业务伙伴直接建立新渠道,建立新伙伴的成本得以降低.

2) SOA与平台无关,减少了业务应用实现的限制.要将企业的业务伙伴整合到企业的“大”业务系统中,对其业务伙伴具体采用什么技术没有限制。

3) SOA具有低耦合性特点,增加和减少业务伙伴对整个业务系统的影响较低.在企业与各业务伙伴关系不断发生变化的情况下,节省的费用会越来越多。

4) SOA具有可按模块分阶段进行实施的优势.可以成功一步再做下一步,将实施对企业的冲击减少到最小。

2.2 实施中的问题

1)对SOA概念的理解误差

问不同的人“什么是SOA”,一定会得到许多不同的答案。实际上,SOA是一种无边界服务的汇聚。这些服务之间可以相互通讯,所谓通讯可以是指简单的数据转移,也可以是指两种或多种服务的协同。

然而,某些企业在SOA上只考虑到了Web服务(WSDL),正因为理解上的局限性,因而导致很多“SOA万能”的误解。有些人坚信实施企业服务总线(ESB)就会给你创造一个SOA环境,而有的软件厂商也宣称他们的产品是准SOA,可以提供某些Web服务。但在很多情况下,这些粗粒状的服务都是很笼统的,并且更加倾向于建立技术基础架构,而不会为企业带来新的功能性。对于那些购买了准SOA产品的企业而言,则必须在产品所用技术基础上建立特定的层,以求与公司现有系统结合,反之,如果你不这么做,那么SOA项目的失败率就会大幅蹿升。

2)缺乏商业单位的投入

大部分的SOA项目都是由IT部门中的某人来推动。比如CIO、企业架构师,或IT经理,他们深信SOA或许是一种可以解决以前解决不了的问题的方案,例如服务提供速度过慢、不断积压的项目数量、或者加强遗留系统的要求。这名“推动人员”负责去带领开发人员建立基于SOA原理的应用。但在这一点上,一个最突出的问题就是缺乏商业单位的投入。SOA不是一种可以无视终端用户的体验而直接部署的技术,正因为它同时牵动了多个部门的不同系统,因此更需要商业单位的参与。

如果商业部门无法用SOA方式来思考问题,那么整个链路中就会断了一个环节,导致SOA无法实现预期成效。

3)缺少预算

展开一个SOA项目是极耗成本的。首先是技术成本,你需要搭建一个平台,然后就是学习曲线上的成本。当然,你可以通过聘请有经验的专业人士或服务伙伴来完成。不管使用哪种方式,你都必须将其计入你的预算内。为一个带有高度商业价值的项目去申请预算一直都很难,而在目前的经济气候下,去为一个无法看到立竿见影回报的项目去申请预算更是难上加难。

4)项目执行

大部分SOA项目都使用瀑布式方法来管理和执行,即定义项目的时间跨度(比如9-1 2个月内)来完成SOA基础架构的定义、编码和实施。

以这种从上至下的方式来实施SOA不但无法提供及时的价值,也难以让商业应用高效运转,原因有二:第一,少有最终用户的参与而提高了失败的风险。第二,这一方式没有考虑到要求和环境总是在不断变化。因此使用在SOA实施中的技术也必须足够灵活并支持变革。

3、SOA与敏捷方法的结合

实施中的问题的前面3个问题都可以通过其他方法可以解决,唯独第4个方法在解决上面有一定的难度。针对这一问题,笔者提出使用SOA和敏捷方法结合的方式来解决这一问题。

SOA是一种架构,强调业务必须能满足市场要求,而且通过构建各种服务,可以消除重复,并达成“重用”这一很难捉摸的目标。团队通过构建“服务”而非“应用”,来平衡企业内部和外部的工作。

敏捷是一种方法论,强调事物是变化的,软件开发团队必须拥抱变化,并对变化做出反应。通过引入技术性和非技术性实践,团队可以使业务敏捷起来。敏捷方法的整体目标以人为主和欢迎变化。敏捷方法是“适应性”而非“预测性”的,目的是成为适应变化的过程。

SOA软件开发方法试图对一个软件开发项目在很长的时间跨度内做出详细的计划,然后依计划进行开发,在计划制定完成后拒绝变化。敏捷方法是“面向人”的而非“面向过程”的,强调软件开发应当是一项愉快的活动,试图使软件开发工作能够利用人的特点,充分发挥人的创造能力。

SOA是一个方面,是架构层面的因素,可以让企业架构变得更加松耦合,让业务更快的发展起来。敏捷方法是另外一个因素,它能够给SOA的架构提供一种迭代的开发方式,让它能够快速地产生价值,SOA和敏捷有这样一种奇妙的共生关系。一份研究报告上说在美国采用SOA的企业同时采用敏捷方法的比例比其他的企业要高出一倍以上。公司必须一边改造一边使新的应用产生价值,所以往往会采用迭代的方法,所以敏捷就成了自然而然的选择。

4、结论

(1)架构和方法论是可以一同使用的,它们本质上是互补的。而且,SOA和敏捷的目标相同,它们都承认a变化是必然的b组织需要有效地应对变化。所以,我们期望在构建SOA时,能够选择敏捷方法论。

摘要:近年来,SOA的概念被一些国际IT企业大吵特吵,然而企业实施的SOA方案并不能令人满意,敏捷方法的提出令这一问题有所改善。

关键词:SOA,敏捷方法,方案

参考文献

[1]Dirk Krafzig Karl Banke Dirk Slama著。Enterprise SOA中文版:面向服务架构的最佳实战.清华大学出版社,2006

[2]王紫瑶等编著.SOA核心技术及应用.北京:电子工业出版社,2008

[3]Frederick P Brooks著,汪颖译.人月神话.北京:清华大学出版社,2001

敏捷开发的利与弊 篇8

早在上世纪60年代,北约(NATO)就提出了软件危机这一概念。在《人月神话》一书中,软件开发则被喻为让众多史前巨兽痛苦挣扎,却无力摆脱的“焦油坑”。随着需求和应用的日趋深入与复杂化,软件开发的难度和遇到的问题正以几何级数增长,“焦油坑”也由此变得更深、更大。

复杂程度高、开发周期长、结果无保证等等,作为软件开发的通病,激发了人们的无限潜能,并由此产生了软件工程学。但在实际工作过程中,需求变更在整个软件开发的生命周期中仍是一个永恒的话题,也是客户与服务提供方最纠缠不清的地方。改变的导火索源自方方面面,既有可能是一觉醒来后的灵光一现,也有可能是来自客户外部商业环境的改变。我至今还依稀记得最初从事ERP开发时,其中的某个项目排程模块,当团队按客户最初的要求完成并测试顺利通过时,客户的新要求突如其来,180度大转弯完全出于团队预料之外,项目开始时全队苦心经营的开发架构体系就这么被摧毁了,既然是现实,只能勇于接受!诚然,处理得当,这种变化就能协助双方得到一个更优秀的软件,也让客户对团队的快速应变产生好感,否则,如果固守原始的设计稿件,或者永远作为一个新功能要求追加资金,有可能得到一个Case,却失去一个用户。可见无论是业界公认的需求、变更、人员流动,还是各种看起来并不起眼的小事件,都有可能让软件开发流程重新洗牌。其实,一个过程中的再设计,有可能会降低开发的成本。

颠覆传统 适应变化

在传统的软件开发工作中,项目团队分配工作的重点是明确角色的定义,以个人的能力去适应角色,而角色的定义就是为了保证过程的实施,即个人以资源的方式被分配给角色,同时,资源是可以替代的,而角色不可以替代。

然而,传统软件开发的这些方法在敏捷开发方式中被完全颠覆。敏捷开发试图使软件开发工作能够利用人的特点,充分发挥人的创造能力。敏捷开发的目的是建立起一个项目团队全员参与到软件开发中,包括设定软件开发流程的管理人员,只有这样,软件开发流程才有可接受性。同时敏捷开发要求研发人员在技术上独立自主地进行决策,因为他们最了解什么技术是需要和不需要的。再者,敏捷开发特别重视项目团队中的信息交流,有调查显示:“项目失败的原因最终都可追溯到信息没有及时准确地传递到应该接受它的人。”

在土木工程实践中,有比较稳定的需求,同时建设项目的要求也相对固定,所以此类项目通常非常强调施工前的设计规划。只要图纸设计得合理并考虑充分,施工队伍可以完全遵照图纸顺利建造,并且可以很方便地把图纸划分为许多更小的部分交给不同的施工人员分别完成。

然而,在软件开发项目中,这些稳定的因素却很难寻求。软件的设计难处在于软件需求的不稳定,从而导致软件过程的不可预测。但是传统的控制项目模式都是试图对一个软件开发项目在很长的时间跨度内做出详细的计划,然后依计划进行开发。传统方法在不可预测的环境下,很难适应变化,甚至是拒绝变化。而与之相反的敏捷方法则是欢迎变化,目的就是成为适应变化的过程,甚至能允许改变自身来适应变化。

企业管理挑战多多

敏捷开发要求将大项目分解成为很多小项目,这样虽然易于考察、易于管理和易于控制,但同时也带来了项目内部各个小项目的协调问题。对于各个小项目的执行,人员分配和其它资源分配的冲突及进度的冲突是最主要的冲突,而且这些冲突如果解决不彻底,将会对整个大项目带来难以预测的负面结果。

敏捷开发最大的问题还是管理的问题。这和很多软件企业重技术、轻管理的做法是截然相反的,企业的这种心智模式一方面是源自管理人才的缺乏和项目组成员对管理制度的排斥;另一方面则是因为现行规范和管理制度与实际工作中的不合拍。从这一层面而言,敏捷开发对管理水平要求的提高是对软件企业领导者观念的一种挑战。

敏捷方法对需求不确定或常常变更的情形是有效的。但是,没有哪一种开发方法是适用于所有项目开发的。敏捷方法给传统软件开发带来了一种新的思路和开发模式,但也给企业带来了软件研发项目管理开发过程的整合困难。

在敏捷开发中,一个很重要的因素就是团队成员的自律性,换句话说,就是营建一个自管理的团队。虽然敏捷是一个项目管理层的理念,但这个理念决定了项目的每一个参与者,即程序员都需要有较高的素质。事实上,敏捷开发的实施很大程度上是一个自下而上的过程:无论是怎样的敏捷方法,都需要参与者主动领取任务,更重要的是主动交流。因此,有着良好自律性和主动性的程序员将成为项目成功的重要因素。虽然传统的项目也需要优秀的程序员,但不得不说敏捷开发对于每个程序员的要求会更加的高。

敏捷开发现在在欧美已非常普及,在国内也已经流传实践了几年,现在正逐渐进入到越来越多的项目中。虽然敏捷开发既有成功的案例也有失败的案例,但其高效可靠、节省成本的潜在特性决定了敏捷开发的广泛应用性。

但纵观国内整体市场,尚有不少软件企业并未采用敏捷开发,主要还是出于以下几点考虑:要做一个成功的敏捷开发者,需要同时具备码农、架构师、测试工程师和客户经理的能力,公司为培训这样的员工代价颇高;加之不少优秀程序员都是不善于社交、沟通的;并且对一个大型项目而言,每个人只负责其中的一个小功能,一旦某个人休假或者离职,那么顶替上的程序员可能对这块功能的业务不是特了解,当他去和客户沟通的时候就会显得不专业。

总而言之,在实际开发过程中,需要根据实际项目的需要选择合适的开发方法,并尽最大可能发挥人的创造性和潜能,利用不同人的不同特点,充分沟通,这才是在敏捷方法中真正需要学习的。

敏捷测试的方法和实践 篇9

有一次,当开发人员完成当前Sprint 任务的代码之后,测试人员、开发人员和产品经理一起来浏览产品、从头到尾走一遍,产品经理发现了问题,认为需要对功能进行比较大的修改,这时开发人员估计需要两天时间才能完成代码,但测试人员反对这样做,我们本来只有5天测试时间,加上这次新做的功能比较多、开发代码质量不高,验收测试已经很紧张。如果再延迟两天,测试没法完成。产品经理说,你们不是在用敏捷测试方法,应该测得很快,三天应该能完成测试工作啊!

什么是敏捷测试呢?敏捷测试当然不能简单地理解为测得更快,绝对不是比以前用更少时间进行测试,也不是将测试的范围缩小了或将质量降低来减少测试任务。也有人说,只有敏捷开发,没有敏捷测试。下面我们将要讨论一下:

究竟什么是敏捷测试?

敏捷测试有哪些流程改进?

测试人员如何面对敏捷测试的挑战?

在敏捷测试中如何制定相应的自动化测试策略?

什么是敏捷测试

假如将过去传统的测试流程和方法硬塞入敏捷开发流程中,测试工作可能会事倍功半,测试人员可能会天天加班,而不能发挥应有的作用。敏捷测试应该是适应敏捷方法而采用的新的测试流程、方法和实践,对传统的测试流程有所剪裁,有不同的侧重,例如减少测试计划、测试用例设计等工作的比重,增加与产品设计人员、开发人员的交流和协作。在敏捷测试流程中,参与单元测试,关注持续迭代的新功能,针对这些新功能进行足够的验收测试,而对原有功能的回归测试则依赖于自动化测试。由于敏捷方法中迭代周期短,测试人员尽早开始测试,包括及时对需求、开发设计的评审,更重要的是能够及时、持续的对软件产品质量进行反馈。简单地说,敏捷测试就是持续地对软件质量问题进行及时地反馈,如图1所示。

图1 敏捷测试定义的形象描述

敏捷测试流程的优化

在敏捷方法中,需求变化比较快、产品开发周期很短,我们目前采用四周时间,也就是每个月发布一个新版本。开发周期短,功能不断累加,给软件测试带来很大的挑战,软件测试流程要做相应的调整。例如,我们原有的测试规范明确规定,首先要建立项目的主测试计划书,然后再建立每个功能任务的测试计划书,测试计划书有严格的模板,而且需要和产品经理、开发人员讨论,并和测试团队其他人员(包括测试经理)讨论,最终得到大家的认可和签字才能通过,仅测试计划经过“起草、评审和签发”一个完整的周期就需要一个月。在敏捷方法中,不再要求写几十页的测试计划书,而是在每个迭代周期,写出一页纸的测试计划,将测试要点(包括策略、特定方法、重点范围等)列出来就可以了。

在原有测试规范中,要求先用Excel写出测试用例,然后进行讨论、评审,评审通过以后再导入测试用例库(在线管理系统)中。在敏捷测试中,可能不需要测试用例,而是针对Use Case或User Story直接进行验证,并进行探索性测试。而节约出来的时间,用于开发原有功能的自动化测试脚本,为回归测试服务。自动化测试脚本将代替测试用例,成为软件组织的财富。原有测试规范还要求进行两轮回归测试,在敏捷测试中,只能进行一轮回归测试。综合这些考虑,敏捷测试的流程简单有效,如图2所示。

图2 敏捷测试流程简要图

在敏捷测试流程中,如前所述,测试是一个持续的质量反馈过程,测试中发现的问题要及时反馈给产品经理和开发人员,而且某些关键方面也要得到我们足够的关注,主要有:

测试人员不仅要全程参与需求、产品功能设计等讨论,而且要面对面地、充分地讨论(包括带语言、视频的即时通讯),仅仅通过邮件是不够的。

参与代码复审(Code Review),并适当辅助开发人员进行单元测试。

在流程中增加一个环节“产品走查(Product Walk-through)”——测试人员和产品经理、开发人员等在一起,从头到尾将新功能看一遍,可直观、快速地发现问题。

新功能的测试和回归测试策略

测试任务简单地可分为新功能测试和回归测试。在敏捷方法中,针对这两部分的测试建立相应的策略,以提高测试的效率,最大限度地降低质量风险。新功能测试的策略主要有:

不需要测试用例,直接基于用例和对需求的理解来完成新功能的验证。即使要写测试用例,只要保证各个功能点被覆盖,不要过于详细(大颗粒度)。

持续地进行验证,一旦某块新代码完成(Code Drop),就开始验证,而不是等到所有代码完成后才开始测试。这也包括参与到单元测试和集成测试中。

实施端到端(End-to-End)的测试,确保完整的业务流程的实现,同时,也容易发现业务逻辑不够清晰、不够合理等各方面的问题。

阅读代码来发现问题,可以和开发人员工作保持同步,消除测试周期的压力。

基于经验,可以实施更多的探索性测试、组合交互性(Interoperation)测试和用户场景(User Scenario)测试,更有效地发现埋藏较深的缺陷。

回归测试是敏捷测试中需要面对的难点。每次迭代都会增加新的功能,一个产品可能会经过十几次、甚至几十次迭代,回归测试范围在不断增大,而每次迭代周期没变,可能还是一个月。这样验收测试的时间非常有限,所以回归测试很大程度上依赖于自动化测试,因为很难将回归测试控制在非常有限的范围内。当然,还是有些办法可以帮助我们减少回归测试的范围,例如:

通过执行Code Diff 来了解代码变动的所有地方,再做代码关联分析,就可以明确知道要进行哪些地方的回归测试,回归测试范围会大大缩小,

基于风险和操作面分析来减少回归测试的范围,例如回归测试只是保证主要功能点没有问题,而忽视一些细节的问题。

持续测试的过程,只要有时间,就进行测试,包括开发人员、产品设计人员都参与到日常的试用和测试中来。

自动化测试策略

由于开发周期短,需求、设计等方面沟通也需要花费很多时间,没有足够时间开发自动化测试脚本,至少对新功能的测试很难实现自动化测试。这时候,就需要正确的策略来提高自动化测试的效益,如图3所示,并说明如下。

图3 自动化测试的策略

构建一个灵活的、开放的自动化测试框架,如基于关键字驱动的自动化框架,使测试脚本的开发简单易行,脚本维护也方便。

针对稳定的产品特性开发自动化测试脚本,也就是针对前期完成的已有功能开发自动化测试的脚本,而大部分新功能测试采用手工测试

集中精力在单元层次上实现自动化测试,主要由开发人员实施,测试人员提供单元测试框架,并辅助完成一些所需的基础工作。

在产品设计、编程时就很好地考虑了自动化测试的需求,使全面的、自动化的底层测试、接口测试成为可能,尽量避免用户界面(UI)的自动化测试。

良好的IT基础设施,包括自动化构建软件包、自动化版本验证(BVT)、自动化部署、覆盖率自动产生等。

敏捷测试工具

自动化测试依赖于测试工具,所幸的是,目前已有很多敏捷测试工具。由于篇幅所限,这里只是简单地列出一些常用的敏捷测试工具,不再深入讨论了。

单元测试工具:TestNG、xUnit家族(如JUnit、NUnit)、JMock、BizMock等。

功能测试自动化:ThoughtWorks Twist。

Web功能测试(frontend):Selenium IDE/RC、WatiR、WatiN。

Web service测试工具(backend):soapUI。

性能测试:JMeter+BadBoy。

验收测试框架:Fitnesse、Tellurium。

敏捷测试过程管理工具:微软的Visual Studio ,包括TFS 2010、Scrum模板(MS VS Scrum 1.0)、Test Manager 2010、Coded UI Test等。

业务智能(BI)应用的测试框架:Oraylis BI.Quality (+ NUnit)。

其他一些协作工具等,如TestLink、BugZilla、BugFree、Wiki等。

测试人员在敏捷方法中的价值

在敏捷方法中,开发人员的主导作用更明显,系统设计、编程实现、单元测试、重构等看似关键的一些任务都落在开发人员身上,测试人员容易被边缘化。那么,在敏捷方法中,测试人员的价值又如何体现呢?

在需求和功能设计讨论上,测试人员可以站在客户角度来阐述自己的观点,扮演“用户代表”角色,强调用户体验,真正体现测试人员和开发人员的互补作用。

测试人员不仅扮演“用户代表”角色,而且通过需求讨论、代码复审等各种活动及时地提供质量反馈,包括代码质量、接口一致性等,保证在产品构造的整个过程中质量受到足够的关注,以提高质量改进的持续性和可视性。

测试人员应积极参与单元测试,即使不参加单元测试,也应督促开发人员进行单元测试,确保单元测试达到80% 以上覆盖率,确保开发出具有良好可测试性的代码。

在敏捷方法中,往往将一个大的系统开发分解成多个小的子系统(模块或组件),集成测试和端到端(End-to-End)测试显得更为重要,测试人员在这些测试上能发挥更大的作用。

产品发布前,验收测试和回归测试依然不可缺少,这更是测试人员的用武之地。

一个迭代周期结束后,对缺陷根本原因进行分析、总结规律,帮助开发人员建立良好的习惯,预防缺陷,从根本上提高产品质量。

理想情况下,测试人员掌握设计模式、具有很好的编程能力,可以和开发人员进行角色互换,如在当前版本开发中担任测试人员角色,在下一个版本开发中则担任开发人员角色。这样双方对不同角色的工作有着更深刻的认识,消除沟通的障碍,开发的效率和质量会有进一步的提高。

总结

根据上面的讨论和我们的实践,最后针对敏捷测试进行一个简单的总结,就是:

敏捷测试就是持续测试、持续反馈,扮演“用户代表”角色,确保产品满足客户的需求。

敏捷功能测试 = 新特性的手工测试(Use Case验证和探索性测试) + 原有功能的自动化测试 (回归测试)。

敏捷测试人员和开发人员的区别越来越小,理想情况下,敏捷方法中,测试人员和开发人员在不同的迭代周期可以互换。

敏捷测试流程依据不同的团队特点、不同产品的特点而不同,因地制宜,适合才是最好。

作者朱少民,网迅(中国)软件有限公司资深QA总监。中国科技大学软件学院教学指导委员会委员,中国软件测试认证委员会(CSTQB)资深专家。在软件工程 领域颇有建树,先后获得多项科技进步奖、出版十多部著作和高校精品教材,如《全程软件测试》、《软件测试方法和技术》等。

宋爽姐姐的才思优美散文 篇10

凤妹疾速飞,

雷公震天吼;

闪电拉光束,

黑云狂嚎泣。

后记:

昨夜,大风、暴雨、加雷电。

这是宋爽姐姐的一篇文字《暴雨》,怎么样?朋友,你能从这与众不同的文风里看到姐姐的性格了吧!下面是我和姐姐在这篇文字后面的对话,你仔细品读一下,从里面看看姐姐特殊的才情:

我:哈哈!姐姐真会想象!场面真是热闹!还有后记,姐姐,我真是服你的性格,痛快淋漓!从不拖泥带水,优柔寡断,干脆利落,风风火火,豪爽,大气!

宋爽@雪里红梅 :红梅,把姐姐夸得晕乎乎的。场面真的很热闹,风雨加雷电,全都登场;风和雷电把黑云“轰”来了,他们躲家里睡觉去了;只留下黑云在这儿哇哇的哭,哭累了就慢慢的箩面;萝一会儿又嚎哭,风和雷电也不劝也不管了,黑云那叫一个伤心呦!大约过了四五十分钟,黑云也洗吧洗吧睡觉去了。

我@宋爽 哈哈!哈哈!姐姐,哎呀我的姐!你真是一个奇才!

宋爽@雪里红梅 嘿嘿,今天灵感特好。随手拈来就是一段,发现自己灵感来了还能写幽默剧呢。以后改写小品了。

还有,下面是宋爽姐姐和莲之梦姐姐关于文字的`对话,大家请欣赏:

莲之梦:最近感觉视力下降,想下决心和“它”离婚,可又怕寂寞的灵魂无处安放,怎么办?

宋爽 : 妹妹先和“它”分居。“分居”一段时间看看。如果,“寂寞难耐”再来找“它”;如果,自己能“忍受”的了,那就和“它”说拜拜。姐姐相信妹妹这辈子就认准“它”了,“它”是你得亲密情人,知心爱人。

我国制造业发展敏捷物流的关键 篇11

敏捷物流是在供应链一体化的协同商务基础上,为满足目标顾客的准时化需求,综合运用各种敏捷化管理手段和技术,对目标产品、服务和信息从起始点到目标地点,进行快速、高效、成本与效率比最优的物流活动过程。

敏捷物流的过程是敏捷的、高效的,强调反应和运作以敏捷为目标。而敏捷目标是速度、满意度、合作双赢、供应链一体化的集成的统一。速度是基本特征和衡量尺度,满意度是物流的目标和顾客服务水平的尺度,合作双赢是敏捷物流运行的机制和准则,供应链一体化的集成是基础。这些因素共同作用保证敏捷物流的最终实现。

敏捷物流强调过程中的物流管理,物流本来是个过程,其管理的关键也在于对全过程的优化和监控,过程之中的各环节无缝对接,信息传递准确和快捷都是物流管理者要首先保障的问题。

敏捷物流的目标是在整个供应链中的物流活动达到成本与效率比最优,是说敏捷物流是在高效率与低成本、高顾客满意度之间寻找平衡点。它强调找平衡优化,而不是单纯追求一方面的高指标。单求成本最低的物流运作和单求效率最高的物流运作都不是敏捷物流。

可见敏捷物流的特性为:顾客化原则是第一原则;快速响应原则是表现;同步化原则是标准;成本效率原则是核心。

二、敏捷物流对制造业的作用

1、优化的物料仓库库存,降低仓储成本。对于企业的物料仓库,必须备足企业各类生产所需的物料,而大量的物料囤积,既增加了仓库的仓储成本又增大了物料配送的压力。敏捷物流首先从优化物料仓库库存着手,为生产企业提出合理的物料储备量,降低仓储成本及物料配送压力。

2、快速合理化的物料配送,保障企业生产。敏捷物流根据生产计划及物料当前状况为物流配送提出指导,其中包括配送物料内容、数量、目的地,并且敏捷物流系统可根据生产状况分析各生产物料配送的优先级,实现快速合理化的物料配送。自动化的物料仓库可通过敏捷物流系统实现物料配送的自动化,其通过敏捷物流系统所发出的物料配送,自动进行物流装运,将生产物料自动配送到各生产工序点。

3、灵活的产品生产。生产车间能够及时得到其生产所需要的物料,能够满足其灵活的生产,并能及时反馈物料需求信息,通过生产数据采集可对生产线状态进行跟踪。

4、完备的制造执行系统。制造执行系统主要功能包括:详细作业计划、生产调度、质量管理以及为ERP提供计划完工数据和产品档案。

三、制造业发展敏捷物流的障碍

敏捷物流基于一体化供应链,发展敏捷物流存在一定的障碍。Eliyahu M.Coldrarr有一TOC(Theory of Consraints)约束理论:链条如同木桶,一环弱则链也弱,此即瓶颈障碍之理。TOC对敏捷物流有很大的指导意义,即物流平衡;非瓶颈处之资源利用率决定于系统的约束;非瓶颈处作多少优化对于系统而言无甚意义,症结在瓶颈之处;瓶颈控制了系统的产出率和库存。

从制造业供应链的角度分析,发展敏捷物流的障碍有:供应链的多头管理;供应链的不确定因素;物流作业因素;技术制约;信息;人。

四、实现制造业敏捷物流的关键问题

1、JIT采购。JIT是英文Just-In-Time的缩写,即准时生产方式。这是日本在20世纪五六十年代研究和开始实施的生产管理方式,是一种有效利用各种资源、降低成本的准则。其中心思想是寻求、消除在生产过程中形成浪费的一切根源和任何不产生附加价值的活动,实现这一思想的控制方法和原则是:将必要的材料,以正确的数量和完美的质量,在必要的时间,送往必要的地点。因此,准时化采购是准时化生产管理模式的必然要求,也是敏捷物流的必然选择。

2、“零库存”管理。“零库存”是指商品在生产、流通、销售等经营环节中,在提高资本增值率、降低积压风险的前提下,商品以少量的仓库存储形式存在,而大部分则处于周转状态的一种库存方式。“零库存”是一个相对的概念,是以信息化为依托,利用各种管理、销售手段和策略,来达到库存最优化,从而使物流成本最低的一种管理模式。零库存状态下,没有资金占用和仓库占用,是库存管理的理想状态。然而,由于受到不确定供应、不确定需求和生产连续性等诸多因素的制约,企业的库存不可能为零,基于成本和效益最优化的安全库存是企业库存的下限。但是,通过有效的运作和管理,企业可以最大限度地逼近零库存。“零库存”与JIT采购的目的都是使产品成本最低,实现准时化制造。

3、合理化配送。判断配送合理不合理主要看三个因素:安全通达性、时间准确性和成本效率比。配送不合理的表现有:(1)资源筹措不合理;(2)库存决策不合理;(3)价格不合理;(4)配送与直达的决策不合理;(5)不合理积载和不合理运输;(6)配送计划不合理;(7)经营观念不合理。消除配送不合理的方法有:(1)制定合理的配送计划,包括车辆积载、联合配送计划、路线设计、时刻表等;(2)标准化建设;(3)合理化制度,包括配送管理规范,处理程序,与物流其它职能的衔接与协调,合理化的组织、运作、监督和考评等;(4)具体项目方案制定,包括资源筹措、实施要素、订单处出入库管理、运输工具、途径、路线等;(5)合理选择合作伙伴与资源外包管理。

五、制造业实现敏捷物流的主要途径

1、延迟化技术。延迟就是尽量使无差别的产品和服务能统一、规模化地生产,而把顾客化定制等最终产品的加工过程尽量延迟到顾客确定的订单下达之后的物流手段。延迟是一种敏捷物流技术,这等同于物流领域的敏捷制造。延迟策略在生产制造领域的价值已经普遍得到认同。其在物流中的运用也开始显示出重大价值来。

延迟物流策略要求生产企业采取适应订购之决策而不是存货选择来满足顾客的敏捷化、个性化需要。它要求使产品尽可能长时间地处于中间或者在利用状态,从而推迟生产,直到需求到来。这样就使按订单生产且在总量上的经济生产成为可能。

物流延迟之于物流经营来讲就是尽可能延迟物流系列活动的决策时点的经营方式,绝大部分情况是在一个或多个战略地点对全部货品进行预估,而将进一步库存部署延迟到收到顾客的订单,这实际上要求加工能力和输送能力很强且十分精确。物流延迟实际上是以快速的订单反应和输送来替代在当地市场仓库里预估库存的部署。延迟实际上提供了一种减少物流预估风险的经营思路。如将一种产品的制造完成和销售配送延迟到收到顾客的订单后在进行,则不合适的或错误的生产活动和物流活动就能够自动减少和消除。物流的延迟化技术往往与生产制造的延迟化策略一并使用。第三方物流多在接单之后物流程序即被启动,所有努力都用来完成顾客需求,此时已无延迟之必要和可能。

生产延迟可在得到顾客精确订单之前,不生产任何成品,而只生产到合理中间产品的存量,顾客化定制部分留在其后。接到订单后,将标准中间产品、通用件、标准件用柔性生产的方式组合生产,使之在顾客时间窗口内满足要求。这种策略的新颖之处在于柔性生产能够取得对有效顾客需求的敏捷反应而又不丧失效率,可以擺脱对引导物流的销售预测的依赖,从而使生产和销售按照实际的需求来进行。

2、资源外部管理。资源外部管理顾名思义就是将企业的资源或非核心业务外部化,交由其它更专业的企业管理,而自身则专注于发展核心竞争力的一种做法。主要有转移库存所有权的做法。

资源外部管理的内容有向供应链上游转移库存的供应商管理库存VMI(VendorManaged Inventory),库存所有权属于供应商,企业随时可调来使用;向供应链下游转移库存的经销商管理库存(Retailer Managed Inventory)RMI,库存所有权属于分包商、经销商,经销商将库存寄存于企业,可随时来取;在供应链一体化基础上实现采购与供给的对接等。

3、日清日结。“日清日结”方法是日本企业松下集团创造的,在该企业取得了极大的成功。“日清日结”方法有两个内容:日清和日结。日清指岗位人员当日作业过程中任务要清、质量要清、成本要清、效益要清、完成时间要清、达到的标准要清、缘故所得奖惩要清。在同意、规范的统计表格、台帐上记录当天的任务、投入、产出、成本、利润、奖金、回报等。日结有三层含义:一是结果,二是结论,三是了结。“日清日结”方法充分体现了企业生产运作的敏捷与高效,强调反应和运作以敏捷为目标。

CMMI与敏捷方法的融合研究 篇12

本文论述了敏捷方法、CMMI的内容,在实践中这两种方法分别面临的问题,分析了两种方法的管理假设的差别,并从软件开发与过程定义两个维度给出了融合的方法。

1敏捷方法与CMMI简介

敏捷方法是一种轻量级的、既迭代又增量的软件开发方法,它依赖于项目团队的能力、经验与合作,通过持续交付可用的软件为客户带来最大的价值[1]。

CMMI是能力成熟度集成模型,它把业界众多的最佳实践集成在一起,按过程域进行了分类,并进一步归类到特定目标与共性目标,为组织的过程改进提供了不同的改进路线图。在CMMI V1.3版本中增加了对于敏捷方法和产品线管理的描述, 吸收了很多敏捷的实践[2]。

2敏捷方法与CMMI的对比分析

敏捷方法与规范方法都是为了确保项目按期交付、保质交付,目的相同,实现的方法不同[3]。

规范方法的管理假设是通过遵循规范的过程可以降低犯错的概率[3]。为了降低犯错的概率,事先定义了严格的过程,项目组按照文档化的过程实施研发,保留在开发过程中一些文档与记录,质量保证人员通过检查记录与监督过程确保过程的规范性[3]。项目组产生的有些文档与记录未必是对最终用户产生直接价值的。

敏捷方法的管理假设是通过有能力的团队成员的自我管理来减低犯错的概率,开发人员依据自己的经验并在一定的原则指导下,自我决策项目如何做,不需要管理者的过多干预。 即使出了错也能够及时地发现并纠正错误。项目组只需要保留过程中的少量文档即可,不需要质量保证人员进行过程的监督,在每次迭代结束时项目组需要展示本次迭代完成的可执行的程序,以听取相关人员的反馈[3]。

3两种方法在实践中的常见问题

3.1敏捷方法常见的问题

3.1.1实践者没有真正理解敏捷实践背后的道理

采用敏捷方法进行开发和管理的很多软件项目并没有取得预期的效果,失败的主要原因之一就是没有理解敏捷实践背后的道理。比如敏捷方法简化了文档,但是并不意味着不写文档,而是减少了文档,简化了文档的内容,灵活处理了文档的格式,为了弥补简化文档带来的缺点,需要加强面对面的沟通,因此不要仅看到文档的减少,还要看到面对面沟通所起到的补救作用[3]。

3.1.2客户不支持采用敏捷方法

敏捷方法的推广应该始于客户,始于甲方[4]:

1)需要甲方认可质量第一,功能多少与工期第二;

2)需要甲方对需求划分优先级;

3)需要甲方认可分批阶段性交付系统;

4)需要甲方参与阶段性确认或者全权委托代表进行阶段性确认;

5)需要甲方在开发过程中安排熟悉需求、有需求决策权的专家参与项目,与项目组保持实时沟通;

否则,不具备成功的基础,则敏捷的开发管理仍然会失败。

3.1.3在没有保证质量的前提下,实施敏捷

在敏捷方法中,在对需求、进度、质量、成本四个要素进行平衡时,是在固定质量投入的前提下,再去平衡进度、需求和投入。质量的含义包含了内部质量和外部质量,外部质量是用户可以感知的,是对需求的符合性。内部质量是开发人员所感知的,决定了软件的易维护性。内部质量决定了外部质量,敏捷方法是二者并重的,而并非仅仅关注了外部质量,而传统方法往往仅关注了外部质量[5]。

3.1.4没有真正地重视沟通

敏捷方法为什么可以少写文档,因为他通过口头交流的方式替代了文档交流[3]!比如:在策划会议上,项目组成员对用户故事做了沟通和讨论;开发人员做了结对编程;每天执行了站立会议;用户代表或产品负责人在开发过程中做了实时的功能测试等等,这些手段都保证了在文档比较少的前提下,可以保证产品的方向、产品的具体功能不会偏离用户需求。缺少了沟通作为基础,仅仅少写文档不是敏捷方法[6]。

3.2CMMI实施中常见的问题

3.2.1违背了循序渐进的思想

很多企业在实施CMMI时是在很短的时间内通过评估的。违背了“以人为本,以过程为核心,以度量为基础,循序渐进”的思想[5]。有些实践看似简单,实际在执行时却困难重重, 比如单元测试的推广。如果要求每个项目组、每个程序单元测试的语句覆盖率100%往往是不现实的,项目组往往会迫于工期的压力拒绝执行单元测试或者即使执行了单元测试也会仅仅测试了正常路径,而没有测试异常路径。即使在评估之前做到了单元测试,一旦拿到证书,也会放弃执行。

3.2.2重视CMMI的证书,忽略实效

很多地方政府对通过评估的企业进行了补助,很多大项目的招标都需要CMMI的资质,承接国外的订单也需要CMMI的资质,于是CMMI的资质就成了一个市场的准入证。很多公司都急于获得CMMI证书。证书只是过程改进的附属物,而过程改进的实效才是其真正的价值。为了获得证书,从形式上达到CMMI的要求比较容易,而要见到实效,则需要花费比较长的时间,需要花费比较大的精力[7]。

3.2.3机械照搬CMMI模型,没有灵活运用

在CMMI模型的构件中,目标是必须实现的,实践是期望实现的,是可以替换的,子实践、典型文档等是对目标和时间的解释说明。只要能够实现目标,并非一定要照搬模型里的实践和子实践。而很多企业往往忽略了这一点,机械地实现模型里的实践、子实践、典型文档[7]。

3.2.4文档泛滥

CMMI对文档的多少并没有要求,只是要求了应该有哪些基本的内容。企业可以根据自己的实际情况来进行灵活的处理,而很多企业往往是要求项目组编制了大量的文档,这些文档对项目并没有带来实际的效益[7]。

4CMMI与敏捷的融合

CMMI与敏捷可以在两个方向上进行融合:软件开发与管理过程的融合及开发过程管理改进流程的融合[8]。

4.1软件开发与管理过程的融合

根据笔者的研究,规范与敏捷可以在三个层次上进行融合[7]:

1)策略级:在项目整体管理策略中的融合;

2)过程级:在生命周期阶段与过程中的融合;

3)实践级:在每个活动的具体做法中的融合。

4.1.1项目整体管理策略的融合

在进行过程体系定义时按项目类型来确定采用敏捷或者规范的方法。项目类型可以按照项目的规模(大、中、小)和项目特征(开发、维护)等维度来定义。

根据项目特征可以划分为不同的项目类型,比如产品研发类、定制类、维护类等等,根据项目类型和规模来确定选择敏捷或者规范的方法。如表1所示[9]。

4.1.2在项目生命周期阶段与过程中的融合

一个项目的不同阶段、不同的过程可以采用不同的方法[10]。如表2所示。

4.1.3个别活动的具体做法的融合

同一个任务可以采用不同的方法,比如里程碑评审规范方法中监控过程的重要活动,与之对应的,在SCRUM中定义了两个会议:sprint review与sprint retrospective,通过这两个活动可以实现规范方法中里程碑评审的目的[11]。如表3所示。

4.2过程改进流程的融合

在根据CMMI模型定义企业的标准流程、实施过程改进、 推广流程时,可以借鉴敏捷的思想,确定体系的定义策略与总体的改进策略、推广策略。

4.2.1先定义方针,再定义过程

在根据CMMI模型定义企业的标准流程时,借鉴敏捷方法的思想,首先定义流程的原则、流程的方针、核心的活动,然后再定义具体的流程[9]。

比如把笔记本电脑装包的活动,如果按照规范的过程定义方法,可以这样定义过程:

1)把电脑关机或休眠;

2)拔下电源插头;

3)电源线装到背包的外面口袋中;

4)电脑装到背包的内部保护袋中;

5)拉上拉链,完成装包过程。

其实大家都知道如何装包,只是某些场景下(比如急于出门)会忘记把电源装包,定义这个过程的目的也是为了规避这个错误,对所有人都适用,但这个过程过于繁琐。实际上,这个过程定义的关键是隐含一个原则:先装电源,再装电脑!

如果采用敏捷的过程定义方法,其实不是去描述过程,而是定义原则,即只要写一个原则:“先装电源,再装电脑”即可, 其他活动可以由执行者去把握如何处理。

CMMI模型是支持定义过程规则的。成熟度2级的GP2.1要求定义每个过程的方针(policy),上例中“先装电源,再装电脑”即为方针;在成熟度3级中OPD过程域中要求建立组织级的标准过程定义(OSSP),方针是先于OSSP建立的,方针的重要性超过OSSP,要先定方针再定OSSP[2]。

4.2.2关键过程要细化,非关键过程要简化[9]

关键的过程或子过程对项目的输出具有至关重要的影响, 影响项目目标的达成,管好了关键的过程或子过程,就能四两拨千斤。识别关键的过程或子过程,可以参考如下的两个基本原则[9]:

原则一:工程过程的重要性>项目管理过程的重要性>支持类过程的重要性

原则二:频繁发生的过程的重要性>非频繁发生的过程的重要性

不同的企业关键过程的识别可能有区别,因为不同企业的瓶颈问题不同。对于关注产品质量的组织来说,对质量影响比较突出的过程是需求的获取、需求与设计的评审过程、代码评审过程、测试过程等。为了保证这些过程的质量,需要将执行过程的每个活动进行细化。比如如果把同行评审过程识别为关键的过程,那么就需要把评审活动定义得更详细些。

关键过程的细化可以保证这些过程的理论稳定性,从而保证易于建立过程性能基线或过程性能模型。

4.2.3如何将过程敏捷化

在定义过程体系时,可以通过解答如下的问题来发现改进点,使过程更加敏捷[9]:

1)过程的目的是什么?

2)过程的目的是否合理?是否太理想化?

2)为实现过程的目的,做事的最重要的原则是什么?

4)过程的关键活动是什么?

5)过程的交付物是什么?交付物的最简单的表达方式是什么?

6)哪些活动可以简化?简化后对目标的达成有何影响?

7)过程的中间产物是什么?是否是必须的?

8)必须的中间产物的最简单的表达方式是什么?

9)如果减少了中间产物,用什么手段可以规避其负面后果?

10)简化后的过程是否有什么前提条件?

11)如何及时发现精简后的过程的输出缺陷?

5应用效果评价

笔者与国内知名的软件技术与管理咨询公司麦哲思科技 (北京)有限公司进行合作,帮助多家软件公司导入了本文中论述的方法,并取得了良好的效果。北京一家有线电视网络软件开发公司,在比较小的开发团队内融合了敏捷与CMMI的方法,建立了自己的管理体系,并于2013年8月通过CMMI 3级的评估。杭州一家著名的控制软件开发公司,在2013年5月通过CMMI4级评估时,有的项目也是融合了敏捷与CMMI的方法。

6结束语

上一篇:2024年华中科技大学光电实验室调剂信息下一篇:公务员学法用法工作制度

本站热搜