木匠的微型博客 Charlie Twitter

    follow me on Twitter

    Tuesday, March 23, 2010

    木匠的由来 about mujiang

    为什么鄙人自称为"木匠"?

    如果您读过 Code Complete(代码大全), 关于软件开发有许多形象的比喻,

    * 软件书写: 像写信,坐下来,拿只笔,就开始书写了.错了,草纸扔进废纸篓,再写.
    * 软件农场: 播种,收获. 种的多,收得多.
    * 软件牡蛎农场: 外界条件适合,软件就会像牡蛎一样逐渐增大(accretion).
    * 软件建造-盖房子: 需要仔细周详的设计和计划.

    鄙人和Code Complete的作者一样,非常认同软件构造这个比喻. 谁来盖房子呢,当然是建筑工人,还有木匠.

    -- 软件架构师和土木工程的建筑师一样(都是architect),是一个项目的设计首脑,通常由技术部门的高手担任,有很崇高的地位. 因为架构师的工作影响深远,他们往往牵制连连. 工程人员对他们的设计有意见,项目经理对他们的设计有意见,营业部门对他们的设计有意见,客户对他们的设计有意见,层层经理对他们的设计有意见,财政部门对他们的设计也有意见。

    -- "我们架构师要为技术负责,我们出席会议,同主要利害关系人(stakeholders)开会一同决定,讨论技术方案的利弊,辅导他们做决定."

    -- "我们必须考虑每个决定可能造成的各种影响,得听听大家的意见,每个决定需要多方考量,我们只能努力争取利害关系人的信任,辅导他们做正确的决定"

    -- "要争权和要服务是非常不同的心态,不是几句话能改变的。一个人要有相当的智慧,信心和耐心才能从争权的心态里走出来"

    “无权决定,有权负责”, 这个就是软件系统架构师的作用. 冷酷却现实.