【译文】架构师角色

Posted on Wed 28 October 2009 in it

1. 读后感

两年前的我不懂产品,现在的我在学习怎么做产品,希望两年后我可以指导别人做产品。

本文有点儿长,多亏了有Google Translator Toolkit,才坚持下来。后续吸取经验教训:1. 要坚持;2. 尽量挑篇幅短的翻。

拉回来说读后感,通过作者的论述,读者能够了解到架构师的职能、产生过程、如何参与产品过程等信息。对软件工程师职业规划有所帮助,也能为架构师理解自己工作有一点点作用。

2. 翻译

架构师角色--架构师在产品发掘、产品执行中的重要作用

产品经理的工作首先是发现一个有价值(对公司)、简单可用(对用户)并且具有可行性(对开发团队)的产品。如果做不到这一点,产品经理就是在浪费其他团队成员的时间和公司的钱。但是,这并不意味着产品经理必须自己发现这种产品。

一般来说,在产品经理旁边还有其他两个角色。在其他文章中,我曾经写到过用户体验设计师(又名交互设计师)的关键左右。在这篇文章中,我想谈谈如何以及为什么需要在这一过程中包含开发团队。

首先注意术语。当我在本文中说“架构师”时,我指的是软件工程师或系统架构师。我指的不是信息架构师(这是类似于交互设计师,是用户体验团队的一部分)。此外,文中的工程师和开发人员是可以互换的。

说起架构师角色,实际上要包含两方面内容:一是讨论为什么和如何让架构师参与发现过程;二是要阐述在产品的开发中引入这个相对较新角色,对产品有哪几个好处。

2.1. 架构师参与产品发掘的原因

最 常见的错误是,产品经理没有及早的把开发团队加入进来。到了工程师加入的时候,往往已经到了后期,时间紧迫,没有多少可以做的了。有时候,出现这种问题的 原因就是,产品经理认为自己的工作就是定义产品,而开发团队的工作就是构建产品;而有时候,这是因为工程师团队很忙,他们不能释放任何资源及早参与产品发 掘过程。

需要开发团队参与产品发掘过程的两个重要原因:

2.1.1. 为产品提供可行性判断

首先,工程师和架构师最清楚什么是可能的。他们可以帮助找出解决用户的问题的新办法。他们可以提供意见,评估意见,改进的一些设想。对产品发掘过程,他们是绝对必要的因素。

2.1.2. 为产品提供功能开销判断

其次,工程师和架构师,可 以评估出不同的想法和功能的成本和复杂性。他们可以审查原型,并帮助产品经理详细化原有想法。至关重要的是,在产品发掘过程中需要及早提供时间和成本估 算,因为这对产品经理来讲,是最关键的信息,用来决定是否值得我们在最终产品定义中包括某个功能或能力。

这 样做是为了避免常见的问题,例如产品经理又发表了一个伟大的产品,然后把它交到开发团队手中,然后开发团队开始估计成本,结果当然是需要太长的开发时间, 然后开始双方的讨价还价,好的折衷方案和对测试用户体验都为时已晚了;更常见的另外一个可能就是,发现产品经理的主意根本就是不可行的。

在 此期间,需要开发团队投入时间参与产品需求发现,我通常告诉工程师和架构师,他们需要每个星期花费几个小时来讨论一下最新的理念和原型,并提供必要的反 馈。随着产品需求的进展,他们将被要求提供不仅仅是关于成本和范围的初步意见,他们还需要更多的挖掘,并提供估计,公司会基于这些评估来做重要业务权衡。

2.2. 架构师参与产品开发的好处

随着公司产品和开发团队越来越大,尤其是大型消费类互联网站点或消费电子产品,产品开发组织需要有人对全部产品有完整而全面的看法。这些人不能仅仅知道一两 个地方,他们的责任是至少在较高层面上,知道整个产品如何工作,包括架构,线上运行情况(包括系统规模(scale),性能(performance), 和运营(provisioning)),以及关于自动化测试和发布管理等主题。我看到越来越多的企业已经开始建立一个集中的架构团队来培养这些人,我认为 这是一个重要的趋势有几个原因:

2.2.1. 架构师要持续关注系统架构,确保系统持续满足业务需求

大型系统的架构需要持续关 注,以确保系统能够继续满足业务需求。 就网站运营来说,需要关注这样一些因素:可用性(availability),可伸缩性(scalability),性能(performance),可 维护性(maintainability)和国际化(internationalization)。架构师团队一直在寻找系统瓶颈和效率低下的地方,他们 通常针对不同领域提供优先级排序,指导和协助。

2.2.2. 架构师团队对整合公司产品线有重要作用

架构师团队为完成整个的产 品组合路线图(Product Portfolio Roadmap)做出贡献。他们是新技术的倡议人,常会与企业的其他部门讨论珍贵的开发资源。架构师和系统工程师的技术活动,必须优先于其他业务计划,因 为系统工程师和架构师团队非常小,而且需要专注于那些必须做的工作上。

2.2.3. 架构师岗位提供了工程师职业规划的第二条路

架构师提供了工程师职业规划的第二条路。你最好的工程师不必认为他们必须转向管理。职业规划双轨化是很好的,架构师通常作为工程师职业的顶端,为各级组织所重视。

2.2.4. 架构师为新人提供技术指导

架构师为新人提供技术指 导。事实上,大多数产品开发团队是没有内部系统文档的。他们可能写了一些文档,但它可能旧的,反正没有人相信它是精确的。因此,当新入职的工程师开始工作 时,他们一般通过和其他工程师谈话来了解现有系统。而架构师拥有现有系统的知识(活生生的系统文档),他们协助新工程师学习体系结构和代码库。

2.2.5. 架构师要进行代码和设计审查

架构师要参与代码和设计评审(code and design review)要能判断一个通用且高效的技术是否与整体架构兼容,是需要架构师出席代码和设计审查的。这也有助于保持架构师技术的先进性,但最主要的好处是发现和预防代码和结构方面的问题。

//要想做到这一点,也需要为每一条产品线配置一个架构师

2.2.6. 架构师是第三方集成的重要力量?

架构师是第三方集成和业务分析(M&A)的重要力量。

//participate in M&A,这里的M&A缩写的含义还没有搞清楚。

如 果组织很小,你的架构师可能只是资深软件工程师之一。但随着开发团队的扩大,特定的架构团队会更加有用。作为一般规则,架构师队伍一般大约占工程师队伍的 5%。理想情况下,还有来自现场运营的架构师团队人员,特别是在一个巨大而且复杂的运行中的系统,需要为公司增值进行艰难的现场运营考虑时。

无论是从自身工程师提升,或者从外部聘请,架构师都需要赢得团队的信任和尊重。架构师代表了开发团队的意识,当架构师说什么是可行的,团队需要知道这是一个声明。

作为一个产品经理进入了一个新的项目,你的第一个任务就是确定用户体验设计师和工程师或架构师。在整个产品发掘过程中,大家紧密合作,通过共同努力,找到一个有价值,容易使用的和可行的产品。

如果你从来没有机会采用这样合作的方式创建产品规格说明书,我给你打保票,你会更喜欢这个过程,好过于就的模式:编写产品定义文档,并要求工程师进行审查,并提供一个时间表。你会非常欣喜的看到产品质量上的显着改善。

3. 原文

http://www.svpg.com/the-architect-role/


The Architect Role Posted by Marty Cagan on March 17, 2008

Tags: engineering, product development, architect