《软件工艺师:专业、务实、自豪》一2.6 因转型不佳而表现出的问题

2.6 因转型不佳而表现出的问题

许多敏捷项目正源源不断地产出低劣代码。
几年之间,许多公司和团队都加入了迈向敏捷开发的转型行列。有些公司已经改头换面了。虽说有的公司仍然要坐在会议室里开一个小时会,但原先某些坐着开会的公司,现在已经改为开站会(stand-up meeting)了。燃尽图(burn-down chart)、迭代计划表(iteration backlog)、发行计划表(release backlog),都成了新的项目管理工具。用户用例变成了用户故事。项目经理也成了Scrum主管(Scrum master)。事实却是,对这些公司来说,敏捷两个字只不过是贴在旧工作方式上的新标签罢了。不过,有些变化还是比较明显的。看看转型之前与转型之后的工作照,你就会发现一些大的区别。现在的办公室是开放式的,员工之间的隔间(cubicle)没有了,好几个人围着一台电脑工作,到处都是白板。某些公司甚至整个墙面都是白板,上面布满了各色记事贴。这就是很多公司对敏捷的理解。白板上记事贴的数量成了衡量敏捷程度的指标。他们以为记事贴越多,就说明公司越敏捷。有的公司还采用各种颜色和尺寸的记事贴来表示不同事项,他们把这种公司视作非常成熟的敏捷公司。每个人都在来回挪移那些彩色纸片(有些纸片移动地相当慢,有些稍快一点,还有的根本就不动),并感到相当充实和自在。只要老板同意,每位团队成员都可以做自己想做的事,直到有一天,也许是几个月过后,也许是一年过后,沉浸在记事贴墙面中的团队和公司会突然醒悟过来,发现有一大堆令人头疼的困难正摆在他们面前,这就是向敏捷转型不佳所产生的不良反应(Agile hangover)。
他们发现转型完毕之后,仍然不能迅速交付足够好的软件。实际上,很多公司和团队依然没能解决那些转型前就已经有的问题。他们仍然需要花很长时间来部署软件产品。仍然积累了很多尚未解决的技术问题(technical debt,也称技术债务),一开始就采用敏捷来开发的项目竟然也是这样。开发者没有积极地运用敏捷开发方式。公司里仍然需要专门的质量控制(Quality Assurance,QA)团队。许多公司甚至在每轮迭代过后,还有一段可能持续数天或数周的测试期。修改这样的应用程序仍然十分困难。代码库一团糟,耽误了工作进度。bug列表也没有比运用敏捷开发方式之前更短。他们还是会写出那种没人看得懂也没人敢去修改的程序来。他们排除故障的主要方式,依然是调试程序并分析日志(log)。有些程序写出来才几年,管理者就不打算再用它了,因为那些程序既难于修改,又阻碍业务发展。
新的应用程序虽然采用敏捷开发方式构建,却与转型前的程序一样糟糕,依然设计得很差,依然非常复杂,而且依然有很多bug。要发展业务,就需要迅速地应对变化,而这些程序和它们的开发团队却做得不够,没能“拥抱变化”。开发者的工作流程确实比原来好了,他们之间也确实开始频繁交流了,然而他们所做的技术工作实际上和从前并没有什么区别。老问题依然摆在那里:技术水平停滞不前、士气低落、积极性不高、技术问题堆积成山、技术专长不够突出、发行流程不够可靠、系统不够稳定、bug发现不够及时、测试不够可靠、测试开销太大、“开发——调试——部署”周期不够高效、产品构建时间太长、对需求理解得不够透彻等等。看到这种情况之后,公司很诧异:到底哪出了问题?当初我们要的可不是这种效果啊!公司当初之所以要改变整个流程并采用敏捷开发,主要就是想通过软件获得更高的投资回报。

时间: 2024-10-17 09:27:16

《软件工艺师:专业、务实、自豪》一2.6 因转型不佳而表现出的问题的相关文章

《软件工艺师:专业、务实、自豪》一导读

前 言 那是20世纪90年代中期,我的职业生涯刚刚开始两年,巴西圣保罗有家大型国际公司宣布要一次招纳60名开发者.选拔过程分四个阶段,共需数周时间.第一阶段是三小时技术测试:第二阶段是两周的公司专有技术培训,培训结束后考试:第三阶段是一整天团队互动:第四阶段是最终一轮面试.该公司在一家大报纸上刊登了这一消息,大约有900名开发者应聘.那时我正在一家小软件公司上班,工作非常开心,但我觉得自己已经准备好干一番大事.因为第一阶段安排在周六,所以我决定去试试.不到300名开发者进入第二阶段,我也在其中.

《软件工艺师:专业、务实、自豪》一3.7.6 《软件工艺宣言》及讲解

3.7.6 <软件工艺宣言>及讲解 我们是有理想的软件工艺师,立志践行软件工艺并帮助他人学习软件工艺,以提升软件开发的专业水准.在此过程中,我们形成如下理念:不仅要开发出可行的软件,还要做工精良.不仅要应对变化,还要持续提升软件价值.不仅要注重个体与交互,还要打造专业的社团.不仅要注重客户协作,还要培养高效的伙伴关系.也就是说,在追求左侧价值的同时,我们也认为右侧那些价值是不容忽视的.软件工艺的实质就体现在宣言里"提升专业水准"这一表述之中.有一群经验丰富且才华卓越的开发者

《软件工艺师:专业、务实、自豪》一3.6 软件开发是手艺、生意、工程、科学,还是艺术

3.6 软件开发是手艺.生意.工程.科学,还是艺术 刚参与软件工艺活动时,笔者记得自己总在讨论什么是软件开发.一开始笔者觉得它是门艺术,过了好些年,又感觉它像是一门手艺.但笔者认识的许多人,包括自己所崇敬的一些人在内,却根本不赞同这种看法.有人觉得软件开发是生意,也有人认为它是工程.但很少有人把软件开发当成科学.无论是把软件开发看作艺术.手艺.生意.工程,还是把它看成科学,主张不同的开发者都觉得自己的理由非常充分.只要去听一听这些支持各自论点的理由,你就会发现,其中许多理由都能说得通,虽然某些理

《软件工艺师:专业、务实、自豪》一3.7.2 软件工艺概念走向全球

3.7.2 软件工艺概念走向全球 2009年2月26日,首次国际性的软件工艺大会在伦敦举办.2009年5月,也是在伦敦,Adewale Oshineye为渴望成为软件工艺师的开发者举办了一场研讨会,而Enrique Comba Riepenhausen则开始编写并传阅一本名叫<The Wandering Book>的书,这本书会由一位软件工艺师传给另一位,收集当时大家对软件工艺活动的整体看法和构想.世界各地的软件工艺师把自己对该职业的理解写到书中,并把书寄给另一位软件工艺师.在写下自己的想法时

《软件工艺师:专业、务实、自豪》一3.7 软件工艺的历史

3.7 软件工艺的历史 早在1992年,Jack W.Reeves就提出,软件开发更像手艺而非工程.虽说如此,但笔者依然认为软件工艺的真正发端是Andy Hunt与Dave Thomas在1999年写的<The Pragmatic Programmer:From Journeyman to Master>.2001年,Pete McBreen出版了<Software Craftsmanship:The New Imperative>,这本书中的大部分理念后来都体现在了软件工艺活动之

《软件工艺师:专业、务实、自豪》一3.5 不要拘泥于定义

3.5 不要拘泥于定义 笔者更喜欢把软件工艺当成一种理念或思路,可以用来概括笔者所推崇的每一种具体做法.其实,包括笔者在内的许多开发者都可以说自己正在做着软件工艺所提倡的很多事情,例如认真对待自己的工作,力求上进,保持专业水准,通过帮助客户达成目标使客户满意,向其他开发者学习,分享自己的心得,以及帮助经验较少的开发者等. 只要你也看重上面这些事就好,即便不使用这个称谓,笔者也依然觉得你是软件工艺师.有些人不喜欢贴上这样的标签,甚至并不赞同软件工艺所采用的这套比喻.但是没关系,重要之处在于,我们身

《软件工艺师:专业、务实、自豪》一3.2 维基百科对软件工艺的定义

3.2 维基百科对软件工艺的定义 (软件工艺)"是一种强调软件开发者自身编码技能的软件开发方式.软件开发者发现主流软件业有诸多弊病,如过于关注经济事务而疏于培养开发者的责任心等,于是,他们通过软件工艺来扭转这种局面."笔者不喜欢这个定义.它非常呆板,而且没有抓住软件工艺师(software craftsman)这一身份对于软件开发者的真正意义.

《软件工艺师:专业、务实、自豪》一3.7.5 《软件工艺宣言》的制定过程

3.7.5 <软件工艺宣言>的制定过程 为了使软件工艺峰会不像2002年的软件学徒峰会那样虎头蛇尾,Micah Martin觉得这次应该有一些成果才对.他想要得到一些可以落在纸面上的东西,也就是说,他在这次峰会上的主要目标是编订某种形式的文档.与会者讨论了很多问题,其中包括软件工艺师和软件学徒的含义.他们也讨论了这份决议文是否尚无先例,到底应不应该产生这样一份决议文,若是应该,那这份文件又是针对谁而写,其中需要写哪些内容.大家都把各自的想法画在了白板上面,虽然收集到不少好点子,但白板上面的内容

《软件工艺师:专业、务实、自豪》一3.7.3 软件工艺师交换计划

3.7.3 软件工艺师交换计划 2009年4月,8th Light公司和Obtiva公司在芝加哥试着交换了一批软件工艺师.<芝加哥论坛报>在2009年6月15日报道了这一消息,提到了这次交换行动的许多重要细节.这可以说是两家公司相互致敬的行为,它们都可以借此从对方身上学到很多技术能力.在听到这个行动之后,有些人觉得很不可思议,实际上这恰恰说明,这两家公司看问题的角度和许多人不同.交换计划是由Corey Haines构想出来的,他也为这次计划的组织出了力,他说:"我并不觉得这是两家公司