【译文】热闹驱动开发
软件开发团队关于软件架构或技术栈的决策,很多并不是基于扎实的研究和对期望效果的认真思考,而是不准确的意见、社交媒体的信息,或者就些是“热门”玩意。这种做派的危害我见过不少,称它为“热闹驱动开发(Hype Driven Development,HDD)”。我赞成的是更专业的做法,称之为“脚踏实地的软件工程”。下面一起看看HDD的来龙去脉,想想我们能怎么改进。
新技术带来新希望
团队把最新最热的技术应用到项目里,这样的景象你见过吗?有人是因为读到了相关的博客,有人是看到Twitter上的潮流,还有人是刚刚在技术大会上听到了关于某门技术的精彩演讲。不久,团队就开始采用这种亮眼的新技术(或者软件架构设计范式),结果他们并不能更快(就像之前说的那样)开发出更优秀的产品,反而身陷囹圄。开发的速度降下来了,信心受挫了,后续版本的交付也出问题了。有些团队甚至干脆专心修bug,而不是开发新功能。他们“只需要多花几天”就能把事情搞定。
热闹驱动开发
热闹驱动开发有很多流派,也有很多渠道介入大家的项目:
Reddit驱动开发——在选择技术、架构、设计时,团队和个人的决策依据是知名博主的文章,或者reddit, hackernews, blogs, twitter, facebook, Github或者其它社交媒体上的热点。
技术会议驱动开发——仔细观察观察,参会回来的家伙们有什么表现。他们备受演讲的鼓舞。这是双刃剑。他们没有足够的研究,就开始使用最新最热的类库/框架/架构范式,而这可能是通往地狱的高速公路。
嗓门驱动开发——有人整天谈论新框架/类库/技术,他自己却没有经验,但是反复念经终于让团队决定采纳它。
Gem/类库/插件驱动开发——在RoR社区里特别流行这种情况,有时候我会发现一个gemfile太长,只有程序启动时的装载时间比它更长。这种流派源自下面的观念:Rails里的每个问题都应当有个gem来解决。有时候只要自己动手写几行代码就能解决,但是我们还是一个劲地添加类库/插件/gem/框架。
我还希望提到热闹驱动开发的一个常见流派,StackOverflow 驱动开发——开发人员从StackOverflow(总之就是互联网上)拷贝代码,而没有真正弄懂它们。
HDD就是开发团队自掘坟墓
凑热闹的问题是:它很容易导致错误决策。无论是糟糕的架构决策,还是糟糕的技术栈决策,给团队的影响都常常持续数月甚至数年。最糟的是它们会造成软件工程上千疮百孔的局面,只能推倒重来。但推倒重来几乎没有成功案例。
一切罪恶的根源似乎都是社交媒体——新观点传播得太快,还没来得及经过检验。大家还来不及细想有哪些利弊,就已经传播开去。
