位置:编程技术网 > 产品设计 > 正文 >

软件架构师是什么?他们应该写代码吗?

2019年07月17日 11:57来源:未知手机版

95yin,chu,静海二手房网

作者:Ahmad Nassri 文章来源:Medium

这几年来,我发现自己常常做着“软件架构师”的工作,这让我意识到,公司很少了解软件团队的真正需求,反而倾向于依赖所谓“软件架构师”来解决问题。

随之而来的,就是因交付前产品不符合商业预期、而导致的产品架构大规模修改,但这甚至不会影响产品交付日期。毕竟,软件架构师的责任正如其名:建立宏大而优美的软件架构。软件架构师并不需要对架构实现过程负责,他们也并不想参与代码编写工作。

我记得有一回,我在团队中作为开发者,着手实现一个大型、复杂的架构。我是在开发已开始后加入团队的,并没有参与架构设计,所以没过多久,我对整个架构的设计就产生了一系列疑问,比如软件架构师打算用 MySQL 作为数据库,配合一套复杂的前端缓存程序、一些自制的库和函数,完成软件的国际化和本土化。

产品是个简单的应用程序,作用是将译文字符串用多种目标语言展示,我认为软件架构师明显杀鸡用牛刀了。

团队讨论这个问题时,我建议我们用免费轻量的现成替代品,比如 gettext,它支持几乎所有系统和主流编程语言。不幸的是,我的建议被否决了,因为软件架构师的话是神圣不可侵犯的。我意识到:

这位软件架构师没有听过 gettext,也没有任何兴趣去了解它。

他喜欢用“自己的方式”解决问题,就算其他方案更简单,他也不喜欢改变。开发成本、产品效率什么的,统统与他无关。

如果他要去写代码,实现自己的架构设计,他肯定会意识到这个方案将问题复杂化了,坚持这么做会浪费非常多时间,然后也许会考虑修改架构。

一个不写代码的软件架构师,对于软件开发团队、产品甚至公司,会有什么影响?

安东尼·兰斯沃斯(Anthony Langsworth)在著名的《软件架构师是否应该写代码?》一文中对此进行了精辟的分析,文章开头提到了一些软件架构师的反面形象典型:

不写代码的软件架构师,有时被称为“PPT 架构师”、“宇航员架构师”、“象牙塔架构师”,他们有特殊的说服技巧,能让不懂技术的股东们觉得他们很厉害,同时把真正困难而待解决的问题交给开发者,这个现象屡见不鲜。(编注:这些名称指不写代码的软件架构师指不接地气,“特殊的说服技巧”原文为?archibabble and talkitechture,分别取前后两端为 talkybabble,“夸夸其谈的架构师”之意)

这文章同步到 LinkedIn 后也遭到了热议,人们对于“软件架构师是否应该写代码”这一问题有许多不同意见,部分意见很有意思,但很难令人信服。然而这些讨论中全都忽视了一个重要前提:具体情境。

准确的说,如果想要对“软件架构师是否应该写代码”得出确切结论,必须讨论这些前提:

项目属于哪个行业?银行、科技、电信、广播……?

公司规模多大?

有现成开发团队吗?还是正在打造开发团队?

开发团队规模如何?

预期产出是什么?(应用程序、服务还是创新?)

咱们一个个来看——

行业

软件本身和行业无关,难道不是这样?

我为不少互联网公司服务过,它们所属行业包括在线发布、广告和社交媒体,这些行业相似且相关,这让我了解了这些行业中的先进技术、行业间有何联系、一些变化会造成什么影响以及跨行业的创新情况。

如果对当前工作行业的相关行业不能深入了解,软件架构师就不能成为这个行业的专家。我会花上一定时间了解相关行业,尝试新的东西:比如去化工行业的公司考察后,我就能思考,如果到时候需要为他们设计软件,会遇到什么问题。

但我十年的网页和移动程序开发经验有什么用呢?在设计化学流程模拟器架构时,我怎么样才能比那些有过化学行业开发经验的人做得更好?此外,化工公司大多甚至不需要软件架构师b,而是需要有计算机科学背景的化学家、化学工程师,他们更适合做这类软件开发的领头人。

本文地址:http://www.reviewcode.cn/chanpinsheji/57778.html 转载请注明出处!

今日热点资讯