论道WP(三):应用程序栏
作者通过具体翔实的例子介绍了Winodws Phone 7中应用程序栏的使用方式。
该内容已经被标记书签!
标记书签错误,请重试!

作者 鲍央舟 发布于 2012年1月6日
章显洲,阿里巴巴B2B项目经理,一直在.Com硝烟弥漫的战场上扑腾奔跑,敏捷方法实践者,业余敏捷教练,《精益软件开发艺术》、《微软的秘密》、《软件架构师应该知道的97件事》中文译者。在2011QCon杭州大会上的演讲主题为“吸纳敏捷方法——提升互联网开发的竞争优势”,演讲主要从互联网系统的产品特性、产品研发团队的结构特性、导入和实施敏捷开发中的Bad Smell与重构方法、团队构建和关键实施策略等方面,与参会者分享了他本人的思考和探索。
演讲结束后,章显洲接受了InfoQ中文站的专访。
InfoQ:你好,章显洲,感谢接受Qcon的文字采访。能否先介绍一下你自己和你在Qcon杭州的演讲。
章显洲:大家好,我是章显洲,来自阿里巴巴B2B公司,在公司主要从事系统分析和项目管理的工作,忙碌之余也在公司内进行一些敏捷实践培训和团队引导方面的工作。前些年利用业余时间翻译了几本书:《精益软件开发艺术》、《微软的秘密》、《软件架构师应该知道的97件事》。技术翻译是我个人修炼的一种方法。同时我也认为个体要积极贡献于社区的成长,而技术翻译是一种不错的途径。今年我仍然会向社区贡献两本敏捷相关的书籍,一本是David J. Anderson的《看板》,另外一本是Robert C. Martin的《The Clean Coder》,分别是和“变革管理与持续改善”和“软件技艺”主题相关。
我这次在QCon杭州上的演讲是关于吸纳敏捷方法,将之和互联网系统开发运维结合起来的一个学习进阶模型。
在来阿里巴巴之前,我有近五年的企业软件开发和系统设计经历,近6年来一直在互联网领域进行业务系统分析、项目管理、团队辅导等方面的工作。这两个领域背景中,我都曾在其中实践过敏捷开发方法,感觉其中虽有不小差异,但我也发现其中有很多共同的疑惑、误区、问题和有效实践。越是往下的接近低层的要素,就越是有相似之处。我这次讲的内容是比较低层的,关于个体、团队、组织转向或者说实践敏捷方法的学习进阶模型。
当然,因为近些年来,互联网软件开发已经是软件开发的主流,我自身这六年来也主要在互联网开发领域工作,所以我在演讲的第一部分主要阐述的还是大型互联网系统的特性、互联网系统开发和运营所面临的挑战,以及为了迎接挑战并获得竞争优势,互联网研发团队所需要具备的核心能力。
我很简单的将这种能力分为“硬”能力和“软”能力。“硬”能力主要是指各项技术能力,这些硬能力当然很重要。但是“软”能力,也就是组织学习能力,我认为是更重要的。而要在软件开发组织和互联网公司中成功导入敏捷方法,并真正从中获得竞争优势,组织学习能力我觉得是根本性的。组织学习能力强,更有可能成功掌握和应用敏捷方法,将之作为自身一种锐利的武器。而存在机能障碍的组织,则往往因学习能力低下,对市场竞争和环境变化感到力不从心。
我在第二部分,简单说明了在剧烈变化环境下竞争的互联网行业中可能存在的最为典型的两种组织机能障碍,也可以说是两种典型的反模式,一是“过多层次型官僚结构”,一是“精密流程主义”。这种过程和组织结构设计,无视复杂软件开发和互联网商业竞争的特征,其典型的思维方式是把软件开发和工厂生产产品进行类比,把“人”作为生产流水线上的“机器”看待,期图以⼀种设计“精密”的流程来消除“人件(Peopleware)”因素。
对这种反模式的重构方向,便是“开放、扁平型的自组织结构”和“持续改善、演化发展的协作过程”改造。当然,这是一个比较复杂的过程,但我认为这也正是互联网本身的核心精神所在。
在这个复杂过程中,无论是个体、团队级别还整个组织级别,我认为都无法超越“守、破、离”的三个阶段。这是一个三层进阶模式。“守、破、离”是日本合气道的修习心法,更早的历史可以推到日本能剧的传授方法,但是细心之下,我们可以发现一条脉络,禅修在日本文化中具有一种普泛性的启迪意义。
我因个人爱好,平时闲暇时间对中国禅宗等也偶有涉猎,偶然一次机会,接触到宋朝廓庵禅师的《十牛图颂》,忽然感觉找到一种更为精细化的学习进阶模式。当然,“禅”这个东西比较深奥,我也并未曾深入体证。但是我感觉《十牛图颂》对我们思考学习和掌握技艺还是很有启发意义的。
这次QCon大会在杭州召开,杭州自古以来出了不少著名的禅僧,在《五灯会元》中常常可见其高风,可以说杭州这个地方和“禅”是很有渊源也很有缘份的,而且今年也恰逢《敏捷宣言》发布十周年,我就借《十牛图颂》这个引子,分享了下我在个人学习以及在团队辅导中体会到的一种更为精细化的学习进阶模式,也截取出了一些案例情境,作为对各个不同进阶阶段的附例。
演讲最后给出的是下面这样一幅“敏捷修炼空间”,其实也是一个简单的三维坐标系,X轴就是《十牛图颂》中描述的10层进阶;Y轴是各项敏捷实践,或曰各项敏捷“功夫”;Z轴是敏捷修炼的主体,可以简单划分为个体、团队、组织三个截面。
当然,正如我在结尾处给出的发生在卡耐基音乐厅的一场对话中所揭示的,对于掌握敏捷方法并从中获得竞争优势而言,持续实践不断反思体悟,是最重要最根本的。而如《十牛图颂》最后一偈“入廛垂手”所传递的,学习者、实践者要回到整个社区中。以组织或社区共同学习修炼的方式,是最为快速、高效、深刻的。反观敏捷十年发展,自“雪鸟聚会“以来,也正是这种社区的巨大力量,在推动着软件开发和敏捷方法的发展演化。
InfoQ:你在演讲中说到了“十牛图”,非常新颖,能否给我们介绍一下你是如何使用“十牛图”帮助团队不断改进的?
章:《十牛图颂》来自我国宋朝时期,可以说是已经颇有历史的了。但是,确实仍然对我们现在学习技艺进行各项修炼都颇有启迪意义。我在这次演讲中使用《十牛图颂》,一方面可以说是想让我的演讲显得有趣味些,另一方面,我也想传递一种比“守破离”三阶模式更为细腻因而也更容易供实践者参照的学习进阶地图。
有一个很有趣的结构会涌现,在对这个模型本身进行学习和应用时,也需要遵循它自身所揭示的。这是一个很美的结构。在帮助团队改进时,要注意的一个要点是尽可能避免提及《十牛图》或者说“禅”这样容易招致团队成员误会的玄虚名词。而是要突破这些文字相,把握其中不断提升的10层境界的要义,来帮助团队明白我们当前在掌握某项技术或实践的过程中所处的位置。但是,如果是要辅导敏捷教练或团队引导者,不妨可以直接以这个故事作为譬喻,来帮助辅导对象更直观理解这个进阶模型。也就是说,“入”是为了理解学习,“出”才便于应用。不可拘泥。
InfoQ:你认为在团队不断改进的过程中,敏捷教练扮演了一个什么样的角色?
章:敏捷教练在团队持续改进的过程中,我认为扮演的主要是一个引导者的角色。他可以以引导的方式,向团队成员适机引介一些切合的技术、实践,或者引导团队进行深入的思考和自我诊断剖析,从而引导团队自身自组织的涌现出改善行为,并成为一种团队意识和习惯。这时可以说他已经成功完成了引导者的职责。
敏捷教练本身要能够掌握Kent Beck所提及的“欣赏式探询”技术,并引导团队学习和掌握“欣赏式探询”。这样的团队变得开放、乐观、善于学习和应用更有效的技术,成为真正的具备持续改善文化的团队。
InfoQ:敏捷教练如何保持自己的不断提升?
章:我认为敏捷教练应该首先了解这项工作的特性、对自身特质的要求。具备开放、好奇、乐观等心态我觉得很重要。另外,阅读、实践修炼、自我辅导、参加社区、实际辅导团队、多观察各种不同环境的团队和通过案例学习等,都是能够保持自身不断提升的途径。还是那句话,“Practice,Practice,Practice”。
InfoQ:在团队建设的过程中,如何获得外部信任,以支持团队更好地改善?
章:外部信任,可以认为是一种社会资本。在团队建设中,敏捷教练要帮助团队理清:团队要交付的核心业务价值是什么?客户是谁?Sponsors是哪些人?和团队互动协作的上下游是哪些组织或个人?每一方的关注焦点是什么?我们的职责和使命是什么?
一般而言,作为软件开发团队,持续、稳定地交付高质量的软件,具备快速响应能力,能够获得很好的外部信任。所以,敏捷教练要引导团队建立流畅的协作结构,建立稳定的开发节奏和持续交付的流,关注质量,关注解决团队的障碍和瓶颈,保持一定的团队产能裕量用于思考、学习和改善,这时像站立晨会、回顾会、看板、持续集成等便可以助力。简而言之,引导团队在认知上具备系统全局观,在表现上体现专业能力,能够更好的获得外部信任。
欢迎大家与章显洲交流。可以通过电子邮箱myagileway@gmail.com联系。也可以关注其新浪微博:@章显洲-Arthur 。
给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。
在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它为重量级锁,但是随着Java SE1.6对Synchronized进行了各种优化之后,有些情况下它并不那么重了,本文详细介绍了Java SE1.6中对于锁的性能优化,以及锁的存储结构及升级过程。
本次分享将首先介绍现代富文本编辑器的组成和实现,然后结合UEditor的开发过程,与参会者分享UEditor在设计和实现的过程中,所涉及到的核心功能的细节实现。
本次演讲视频录制于百度技术沙龙。
我们所开发的应用程序大多都需要提供一个图形用户界面(GUI)。关于GUI应用的架构设计,已经有了Form & Control、MVC,、MVP、 Passive View等多种模式。模式可以帮助我们建立优雅的架构,但前提是弄清楚模式的应用场景。弄清楚GUI应用面临的设计上的问题,有助于我们正确的挑选设计方案。
MongoDB是一种非常易用的NoSQL方案,Brian C. Dilley在这篇文章里介绍了MongoDB的优劣势,并介绍了MJORM项目。MJORM用于MongoDB,是一个没有注解的Java ORM库。
随着网络基础设施的逐步成熟,从RPC进化到Web Service,并在业界开始普遍推行SOA,再到后来的RESTful平台以及云计算中的PaaS与SaaS概念的推广,分布式架构在企业应用中开始呈现出不同的风貌,然而殊途同归,这些分布式架构的目标仍然是希望回到建造巴别塔的时代,系统之间的交流不再为不同语言与平台的隔阂而产生障碍。
精益软件开发方法因其对市场和交付的重视和在各种场景下体现出的适应能力正在获得广泛的关注。特别是在精益创业(Lean Startup)渐渐兴起和技术日新月异的今天,其"极端"的思想也变得越来越必要和可行。 InfoQ就此主题对他做了深入的采访。
没有回复
关注此讨论 回复