阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

软件工艺宣言发布最新的简体中文版

  • 2012-09-05
  • 本文字数:2364 字

    阅读完需:约 8 分钟

近日,软件工艺宣言的简体中文版新鲜出炉,这个版本经过和 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 中文站的读者,对于软件工艺宣言的价值,你的意见如何,欢迎加入到讨论中来。

2012-09-05 04:432815
用户头像

发布了 340 篇内容, 共 126.0 次阅读, 收获喜欢 13 次。

关注

评论

发布
暂无评论
发现更多内容

Linux学习方法《Linux一学就会》Centos8软件包的管理与安装

侠盗安全

Linux linux运维 运维工程师 云计算架构师

博文推荐|深入解析 Apache Pulsar 中的事务

Apache Pulsar

大数据 架构 分布式 云原生 Apache Pulsar

大厂算法面试之leetcode精讲10.递归&分治

全栈潇晨

LeetCode 算法面试

Elasticsearch云生态下的开源共生之路

大咖说

云计算 elasticsearch 开源

如何使用 Java 代码给图片增加倒影效果

Jerry Wang

Java API 图片处理 11月日更 Java图片

内存数据库的分布式架构提升之道

鲸品堂

数据库

移动计算云分布式数据缓存服务,实现快速可靠的跨区域多活复制

华为云开发者联盟

可用性 云数据缓存 跨区域多活 无冲突复制数据类型CRDT

百度商业大规模高性能全息日志检索技术揭秘

百度Geek说

软件架构

前端开发之JavaScript优化

@零度

JavaScript 大前端

一文讲透一致性哈希的原理和实现

万俊峰Kevin

微服务 高并发 哈希算法 go-zero Go 语言

react源码解析3.react源码架构

buchila11

源码 React React Hooks react源码

react源码解析4.源码目录结构和调试

buchila11

React React Hooks

一些常用的hive sql函数

编程江湖

大数据 hive Hive SQL

Google I/O 2021 What's new in Android Machine Learning

CatTalk

机器学习 tensorflow android Google

Java开发中常用的消息队列工具 ActiveMQ

编程江湖

Activemq Java 开发

并发编程中,你加的锁未必安全

华为云开发者联盟

线程 高并发 并发 线程安全

大批量更新数据mysql批量更新的四种方法

大数据技术指南

11月日更

直播预告|数以智用——大数据应用探索与实践

智联卓聘

大数据 数据管理 线上沙龙

数仓开发详细剖析

五分钟学大数据

11月日更

万字讲解WiFi为何物

华为云开发者联盟

wifi 物联网 无线通信 传输 无线

处理可能超时的异步操作

编程江湖

大前端

爱奇艺TFServing负载均衡问题研究及改进实践

爱奇艺技术产品团队

java开发之DOS命令学习及运行环境配置安装

@零度

java开发学习 DOS命令学习

PackML从会到不会——状态机(1)

陈的错题集

标准化 PackML

Python量化数据仓库搭建系列2:Python操作数据库

恒生LIGHT云社区

Python 量化

服务API版本控制设计与实践

vivo互联网技术

API 服务器端开发 客户端开发 迭代

如何在P4中管理Unreal Engine 代码

龙智—DevSecOps解决方案

版本控制 游戏开发 版本管理 游戏引擎 虚幻引擎

测试不趁早,“持续测试”搞不好

SoFlu软件机器人

DevOps 敏捷开发 自动化测试

Rainbond通过插件整合SkyWalking,实现APM即插即用

北京好雨科技有限公司

Kubernetes 云原生 全链路追踪

dart系列之:时间你慢点走,我要在dart中抓住你

程序那些事

flutter 架构 dart 程序那些事 11月日更

Perforce用户文章转载:每个游戏从业者都应该学学P4

龙智—DevSecOps解决方案

版本控制 游戏开发 版本管理 perforce 游戏厂商

软件工艺宣言发布最新的简体中文版_语言 & 开发_侯伯薇_InfoQ精选文章