近日,软件工艺宣言的简体中文版新鲜出炉,这个版本经过和 8th Light(软件工艺宣言网站的维护公司)的沟通,会发布到软件工艺宣言网站上。其形式类似于大家所熟悉的敏捷宣言。针对该宣言,大家在微博及新闻组上展开了讨论。
软件工艺宣言的主要内容是:
不仅要让软件工作,更要精益求精。
不仅可以响应变化,更要稳步增加价值。
不仅要有个体与交互,更要形成专业人员的社区。
不仅要与客户合作,更要建立卓有成效的伙伴关系。
也就是说,左项固然值得追求,右项同样不可或缺。
微博上的讨论主要集中在软件工艺本身对程序员的意义:
Thinker 姜志辉: 写软件,写好的软件,写精益求精的软件。这是每一个程序员必须具有的职业素养。第一,要提高自己的编程技能;第二,要养成良好的习惯;第三,要树立正确的价值观。三者缺一不可。
章乐焱: 若认为软件是手工艺品,那就师傅带徒弟熟能生巧;若想参照制造业,貌似他们的设计只出蓝图象我们的 SRS,而制造业的工艺科干得活到是象我们的设计,按排工序确保实现可行性,设计工装卡具降低制造难度保证加工质量。
姚若舟: 如同敏捷宣言一样,软件工艺宣言只是一些价值观。如同敏捷一样,没有也无法给出一个软件工艺的定义的。你说谁干得好谁牛叉,你又如何定义“干得好”呢?的确被 @King 费事 说中了。
JacksonZhang_ 张博超: 程序员应当有一颗匠心,提高对代码的审美能力,不断创造更美的代码。
敏友汇: 做事看人,如果自己有要求,有上进心,就会不断的学习,不断的追求进步,不断的向前,价值观只是一个总结,一个愿景,大家同意这样的说法吗?
王宇( @King 费事)在新闻组中对软件工艺宣言的价值提出了质疑:
这东西的价值在什么地方?聚集软件工匠?使他们找到方向?表示工匠们的先进性?
整个东西,不停重复精益求精,其他主要对应敏捷宣言。
与其这样,我愿意花钱到广告公司打个巨型的“我保证会把我的工作做得更好”字样,到工厂和工地找人签字去。岂不更有轰动效应?
这东西感觉把我们的底线拉得很低很低,唉。
感觉和 Kent 前一段时间整的东西有点类似
拉大旗作虎皮,这样的东西我发现越来越难以和别人走近。反而显得我们格格不入。自己爽什么都不能解决,客户爽才是最重要的。
姚若舟( @姚若舟)对王宇的评论做出回应,并说明了翻译和传播它的意义所在:
王宇的“酒后真言”说的挺好的,那我也来谈谈我对这个宣言的看法。
这个宣言和敏捷宣言,对于我个人来说,是一些可以认同的价值观,奋斗的方向和鞭策自己的动力。这些价值对我来说已经足够了。如果说拿着这些宣言去忽悠客户(不管是项目客户还是咨询客户),那完全是没有任何意义的。创造客户价值永远是真正重要的东西,这些宣言以及衍生出来的方法论都不过是创造价值的手段罢了。
翻译和传播这些宣言和方法论,我认为可以让更多的人意识到创造更高价值和改善的方法是存在的,让有意愿改进的人找到方向。我希望看到越来越多的开发者可以朝着这个方法去努力,因为看到过太多不专业的代码和软件了。不过现实是残酷的,就算所有开发者都签名,又如何?身体力行,结合实际去做,持续改善,才是关键。
最后我想说的是,在“码农”越来越多的今天,作为开发者,需不需要想一下自己的专业价值在哪里呢?如果每天只是在那里制造垃圾代码,对代码和技术没有任何追求而只是应付的话,那么每天 8 小时每周 40 小时的工作,无疑就是在浪费生命了!我们的确需要和团队拉近距离,但是那不应该是对现状无条件的妥协,抓住关键的痛点去改善才是应该做的。而且我一直觉得,团队应该做到 business value 和 technical excellence 这两方面同时进行改善,而不是忽略任何一个。说的有点重了,但是不吐不快。
王宇接着说出了自己的想法,认为更应该注重客户,才能够更好地体现出程序员的价值:
我所谓的客户,不光项目客户或者咨询客户算客户。在此时,你在阅读这封邮件的时候,你也是我的客户。之前的邮件可能让大家不爽,大家可能非常轻易的就辨别出来了。之前邮件中的“让客户爽”可以解释为站在客户的立场提供更高的价值。上一封邮件我有如下推论,所以我认为当头一棒是一种比较好的方式:
1、一般用来鞭策自己的一般也称为信念,信念应该跨场景成立。精益求精这词虽然适用广泛,但非常容易被误用或者存在理解偏差甚至在某些场景无法适用。误用的例子:过度设计。理解偏差的例子:站在开发者的角度思考问题而不是系统化思考。无法适用的例子:技术探索、实验室代码、职责划分之后的业务隔离。
2、局部优化的导向味道 大于 系统性思考的味道。说不定哪天就能再顺着这个宣言再写出针对某些方面的考虑,当然这些方面很重要。你会发现太多太多的方面,你会问自己哪个是我所坚信的?前面的忘得差不多了,就最后签的还记得,那就它吧。在这种场景下,创建者可能都没有想到。另一方面,我一般不希望别人看到某些内容就意味这是我们追求的信念,有些时候是危险的。有的时候创建者有时候都没有意识到自己的东西会给别人带来误导的结果。(参见附件,测试宣言) 这可能就是尽信书不如无书的道理吧。写某些东西确实是名可名,非常名。但追求卓越的态度应该有,追求匠艺的追求没有错。每日精进(但我们不能把我们所有的好习惯或者精神都写下来让大家签字,尽管我也赞同工匠的心态整个社会都缺)
3、Do the right thing 的重要性始终要高于 Do things right。换句话说 Business 的高度永远高于 Technical 的高度,技术是业务的保证者。比如,大猩猩玻璃是 iPhone 触摸和防划的保证。如果提供别的特性,不能得到终端认可或者辅助某种价值使得终端认可,这种东西一般可以称为浪费。
大家应该发现我邮件里有很多假设,Joseph 的邮件里也有很多。比如,我这里有三个“应该”,Joseph 邮件里面也有三个。这些假设很危险,尤其咱们坚定不移的相信的时候。
各位 InfoQ 中文站的读者,对于软件工艺宣言的价值,你的意见如何,欢迎加入到讨论中来。
评论