领导力大挑战
在实施Scrum项目的过程中,Scrum Master的角色是相当关键的,因为他是团队的推动者。本文围绕什么是仆人式领导、仆人式领导的起源、如何将领导力传达给团队、Scrum Master作为仆人式领导者的角色展开叙述,同时重点阐述仆人式领导者应有的基本内外特征。
该内容已经被标记书签!
标记书签错误,请重试!
作者 张凯峰 发布于 2012年1月21日
持续集成的理念在我们国内已经深入人心,很多软件企业已经自发或者在持续集成教练的带领下,为自己的项目和产品搭建起日趋成熟的持续集成平台,改进团队软件开发过程和协作,提高系统质量,为软件上线和发布提供保障,增强信心。
在2011年,持续集成领域所涉及的理论和实践也开始发生变化,尤其作为行业内事实上的实践指导标准——Martin Fowler的持续集成论文发布了第二个版本。ThoughtWorks高级咨询师肖鹏为此撰写了《持续集成理论和实践的新进展》,其中值得关注是对持续集成成熟度模型的阐述,为指导和建设持续集成能力建立了可以参照的标杆。
在2011年InfoQ推出的持续集成专题内容中,最为重要的就是来自百度的也是《持续交付》的作者乔梁撰写的持续集成专栏。他通过角色扮演和故事推进,用多篇幅内容详细描述了持续集成实践的方方面面,内容涉及分支策略、依赖管理、自动化部署等八个方面,而且还未结束。
尽管Thoughtworks的首席科学家Martion folwer 为“持续集成 ”下了定义,但由于自身背景与经历的不同,每个人对其都有不同的理解。从狭义上讲,持续集成可以认为是一种基于某种或者某些变化对软件系统进行的经常性的 构建活动(注:这里的构建活动不仅指编译打包工作,还包含各类自动化测试、部署及发布活动)。然而,它忽视了一点,即:任何实践中都应该包含“与人的交 互”这一因素。因此,从广意上讲,持续集成应该是软件开发团队在上述活动的约束下所采用的整个开发流程及活动。它强调开发团队与持续集成系统之间的互动性。我们既见过持续集成做得非常成功的团队,也见过效果不佳的持续集成,甚至失败的案例。
那么,到底如何从持续集成中得到最大的收益呢?这要从持续集成所涉及的诸多方面进行分析,并根据团队具体情况(比如团队规模、人员组成以及是否为分 布式团队 等)及所开发软件自身的特点(是企业应用软件,还是中间件?是嵌入式软件,还是互联网产品等)制定实践策略与实现步骤。本专栏将与大家共同探讨与持续集 成、持续部署及持续交付相关的方法、工具与经验。作者本人在Thoughtworks公司曾参与的一款持续集成与发布管理产品Go的交付和对外咨询服务为 专栏提供了很有素材。
持续集成中的一个实践是自动化测试,包括自动化单元测试、功能测试、集成测试等等。Ranjan D Sakalley在他的《测试自动化和持续交付》一文中重点阐述了他认为自动化测试在持续集成中的重要性,
软件测试和验证是细致活也是辛苦活,需要模仿最终用户尝试各种用法和输入场景、比较并断言所期望的行为。而这些细致的辛苦活是可以让计算机程序去做的。自 动化测试套件中那些可编程部分对于大规模软件交付是非常有帮助的。在我做过的大部分项目里,有些测试是可以自动化的,也有些不能。不过,只要有自动化测试 套件,我的团队都将倚重于它,而将精力集中在那些没有自动化的功能测试。而且,自动化测试还让我们能够满足客户快速变化的需求,并使我们达到了一个更高的层次,使得每次构建(即使只是微小变动)都是经过测试和验证的稳定版本。正如Jez有关持续交付的文章中所言,自动测试“让交付团队超越了基本的持续集成”并走上持续交付的康庄大道。实际上,我觉得自动化测试是非常重要的,如果你要实践持续交付,就必须在自动化测试上进行投入。
国内著名的Maven技术专家许晓斌在他的Maven实战专栏中,描述了完全由Maven驱动持续集成的可行性,用经验证明用得好自己工具箱里称手的工具,胜过一切理论。
持续集成是敏捷最重要的实践之一,但如何在基于Maven的环境下实践持续集成却鲜有文章详述,本文介绍了一些该主题的最佳实践,包括架设私有仓库、使用正确的集成命令、利用Profile等技术处理分阶段构建等等。
张凯峰 InfoQ中文站编辑,有多年软件开发和测试经验,热衷参与技术社区与技术传播。
在实施Scrum项目的过程中,Scrum Master的角色是相当关键的,因为他是团队的推动者。本文围绕什么是仆人式领导、仆人式领导的起源、如何将领导力传达给团队、Scrum Master作为仆人式领导者的角色展开叙述,同时重点阐述仆人式领导者应有的基本内外特征。
论道WP第三篇专栏,以应用程序栏的使用为中心,包括了软键盘带来的问题、应用程序栏介绍、如何绑定应用程序栏的属性等几个方面的具体话题,为开发者顺利使用应用程序栏开发提供了具体指导。
在多线程并发编程中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概念的推广,分布式架构在企业应用中开始呈现出不同的风貌,然而殊途同归,这些分布式架构的目标仍然是希望回到建造巴别塔的时代,系统之间的交流不再为不同语言与平台的隔阂而产生障碍。
4 条回复
关注此讨论 回复