1

反思软件开发:人为因素(下)

 2 years ago
source link: https://ourai.ws/posts/human-factors-in-software-production-part-2/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

反思软件开发:人为因素(下)

欧雷 发表于 大约 9 小时之前

0 条评论

标签:软件工程前端开发前端工程

在《反思软件开发:人为因素(上)》中,我简单阐述了个人的局限性以及组织该有的意识形态中的主要方面。正所谓「思想决定行为」,组织在运作时成员的实际行为受那篇文章所述意识形态影响。

既然要一起做「大事」,既然要合作,就避免不了分工协作和沟通交流。这部分基本是个人修养,组织中每个人的修养都提升一点点,综合起来的叠加效果是不容小觑的。

下面以软件生产为例来聊聊我的相关观点——

在之前写的《反思软件开发:软件生产》中有提到软件生产中会有的一些分工,我们每个人都会承担其中的一个或多个。

身处其位,要先搞清楚职责边界和所需资质,达到相关资质指标并在边界内尽职尽责,能够给出自己所处环节体现专业性的解决方案或建议。

不是光做好自己这一摊子事儿就可以了,还需要熟悉上下游环节甚至是整条链路的相关内容,这样有助于大家劲儿往一处使,对齐并共享背景知识/上下文,减少沟通交流中的摩擦,把握事情走向,让自己做出更接地气更能解决问题的决策。

把与自己沟通交流的对象当人看,要有最起码的尊重。每个人都有自己的立场和情绪,立场可以表达,但情绪要克制,以解决问题为导向,理性地交流、讨论。

当立场有冲突时,先不要急着认为对方愚蠢且无知,不妨试着把自己看成如此,以「降低身段」替代「抢占高位」,尽可能地了解对方立场的形成原因,尝试去理解,向着符合共同利益或组织利益的方向促进共识。

虽不能把别人当白痴,但可以当作小白来看待,尤其是跨工种交流时——对自己来说理所当然的事情,在他人看来很可能是陌生的,不明所以的。交流时尽量用通俗易懂的语言和符合直觉的符号——遵循惯例和最佳实践,避免生造概念,新瓶装旧酒。

就拿编程来说,有的人犯懒或者炫技,就会写出一些让人摸不着头脑的代码——

编程语言是程序员之间交流的另一种语言,关键字就是语言中的特定动词,变量/常量是名词或形容词,函数调用就是一句话,整个文件就是一篇文章。

合格的代码就是正常人的语文水平,看的过程不需要太多思考,靠直觉就懂其中含义。优雅的代码就是文笔优美的文章,不仅容易看懂,还舒服,并且能学到些什么。差的代码就像语文没学好或者精神错乱的人写出的,很容易让人摸不着头脑。

无论是写代码还是写文章,需考虑下读者的阅读体验。

欧雷的想法

综上所述,影响沟通协作流畅度的主要有两点,一个是思想态度,另一个就是信息差。关于后者,在《现实世界中的交流》中有更为深入的探讨。

虽然要「以人为本」,虽然要尊重个人的意志与需求,但放任自流组织迟早完蛋——任何事物都会朝着混乱的方向去发展,放到有自我意识的人身上,这种现象只会加剧;自然界中有自己保持秩序的规律,人类组织中需靠管理去维护秩序。

我认为,「管理」是为了系统正常运转、熵减而进行资源调控,在「组织」这个语境中主要就是对人调控,这里的「人」既是普通员工又是管理者。因此,一个组织中不仅有上对下的管理,又会有下对上的投诉。

管理者手里的权力代表责任,权力越大责任也就越大。权力是把双刃剑,虽说可以随时斩向下级,但不到万不得已最好不用,否则容易反向伤到自己。鉴于此,一般情况下管理者会利用各种指标工具去控制下级以满足自己的利益。

上面的表达方式看似在贬,实则是个中立的表述,具体如何需看管理者使用指标工具的实际意图和度。做事要看成果,但也得看方法;要有套路,更得有良知。那些只抓绩效、指标的管理者不是合格的管理者,身在其位,不具其德。

最理想的管理,应该能够激发出下级的热情,唤起风雨同舟的使命感、成就感,让他们觉得工作不只是维持生存、生活的手段,同时也是自我实现的方式,最终达到自组织、自管理的效果;最理想的组织形态,是基于共同愿景的去中心化或弱中心化组织。

法学中有「应然」与「实然」,即「应该的、理想中的样子」与「实际的、现实中的样子」——在上文和 上篇文章中所阐述的内容都算是「应然」,这就来大致说说「实然」是什么。

人是自私的,做事会优先满足自己的利益,这里面有由基因遗传来的为了生存的动物本能成分,由人所构成的组织亦是如此。

然而,组织架构就是人为地、公开地划分出多个利益集团,就像人员分工难以分出十分明确的职责边界一样,部门、小组之间也会出现职责内容重叠的部分,从而引起利益冲突。

「坦率」是个难能可贵的品质,一个人很难做到真正的纯粹,他背负的越多越难纯粹,为了私人或所背负的利益费尽心机寻找借口,初心、真理什么的都靠边儿站!

就拿技术选型这种事来说,什么「从部门乃至公司的技术长远发展角度着想」、「为了提高程序性能与提升团队效率和成员水平」的都是政治正确的掩护,实际重点考虑的是满足自己的利益,只要选的东西不是破绽百出,就能想到千百种理由让它落实——两个旗鼓相当的相反观点的持有者,没什么方法能够说服对方,除非一方用权势去压制另一方。

实际情况就是,无论是个人与个人之间,个人与组织之间,还是组织与组织之间,通常优先考虑的是己方利益而非共同利益或(更高层面的)组织利益,相互之间产生摩擦,降低整体运转效率,熵增。

提效的核心是组织自上而下遵照「以人为本」和「合作共赢」的思想去行动,形成相应的组织文化,单从方法论、工具层面去提效只是隔靴搔痒,治标不治本,很容易遇到瓶颈。


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK