【AICon】探索八个行业创新案例,教你在教育、金融、医疗、法律等领域实践大模型技术! >>> 了解详情
写点什么

成功的软件开发者需要掌握人际技能的 3 个原因

  • 2014-02-05
  • 本文字数:1995 字

    阅读完需:约 7 分钟

Petri Kainulainen 是位资深的软件开发者,拥有多年的软件开发经历。他热衷于软件开发与持续改进,擅长使用 Spring 框架进行软件开发,同时也是 Spring Data 一书的作者。近日,Petri 撰写了一篇文章,谈到了对于软件开发者来说,掌握人际技能重要性的 3 个原因。文中谈到除了软件开发本身的技能外,要想在职业生涯中取得更大的成就,良好的人际技能是必不可少的重要因素,文中的观点对于广大软件行业从业者来说颇具实际意义,希望能给各位读者带来一些启示。

有很多人认为要想成为一名优秀的软件开发者只需掌握相关技术即可,毕竟软件开发者每天的大部分时间都用来设计软件和编写代码。从这个角度来看,显然技术本身是非常重要的。

不过,如果你以编写软件为生,那就需要与其他人协作,这包括团队中的成员、其他同事以及客户。值得注意的是,这些人对你的期望是各不相同的。

在我刚开始学习软件工程时,我并没有认识到这一点。我只是觉得可能犯了个小错误而已,但实际上这个问题很有可能毁掉你的声誉和职业生涯。在我开始从事第一份编程工作时,我认识到人际技能对于每个软件开发者来说都是至关重要的。

那么,到底什么是人际技能呢?术语人际技能的一个定义如下所示:

人际技能指的是与其他人高效协作以实现特定目标的能力。

下面就来看看为何说人际技能对于软件开发者来说是至关重要的。

1. 良好的人际技能有助于你更好地理解客户

客户与软件开发者生活在不同的世界中。不过他们有着共同的目标,那就是一同来解决客户的问题。

问题在于客户的很多问题对于软件开发者来说是不可见的。比如说,客户可能受到老板和其他利益干系人的压力,这会对客户的沟通交流造成影响。

软件开发者并不一定能够理解这一点。相反,他们会抱怨客户,觉得:

我们的客户一直在抱怨进度慢。他根本就不知道我们其实已经非常努力了,做什么事情都需要时间啊。

当然了,客户也有可能就是个不讲道理之人。不过,我认为在绝大多数情况下,客户都处于巨大的压力之下,这才会导致他的言谈和行为有些异常。

如果你能理解客户的行为是由某些你看不见的因素所驱使,那么你就应该以一种高效的方式对此作出反馈。

光是抱怨客户是解决不了任何问题的,也没法帮助你更好地了解客户的情况,从而避免产生冲突。事实上,抱怨常常会对你与客户之间的关系造成更不好的影响。这么做绝对是一场灾难。

2. 人际技能有助于更好地表达出自己的观点

如果你在一个团队中工作,那么你需要理解清楚两件事:

  • 每个人都有一个“隐蔽”的日程安排来指导他们的行为。
  • 能够激发你的事情未必会对团队的其他成员起作用。

这意味着要想传播你的观点,你首先要搞清楚团队的其他成员在想什么,什么才能激发他们。这是因为:

  • 如果搞清楚到底是什么指导着团队成员的行为,那么你就能以一种对其他成员有意义的方式来表达出自己的观点。
  • 如果理解了到底是什么激发着团队成员,那么你就能以一种吸引人且具有激发力的方式来表达出自己的观点。

每次我听到有人抱怨他们的团队成员对新事物没有兴趣时,我都认为这个人在以一种错误的方式表达着自己的观点。如果他自己能学习一些新的技术,那至少他的一些想法就能通过自身表达出来。

3. 人际技能有助于创建出更好的 APIs

在我开始以编写软件为生时,软件开发者经常会嘲弄用户界面设计师。我们那时都认为这些用户界面设计师存在的唯一目的就是用他们那可笑的想法来折磨我们。现在看看,那时的想法可真是幼稚至极。

时至今日,我认为用户体验设计是软件项目中最为重要的环节之一。毕竟,我们编写的软件是给人用的。确保软件能够提供优秀的用户体验是非常有意义的事情。

不过,这与APIs 有什么关系呢?

实际上关系很大。API 开发常被认为是一个技术工作。虽然API 的实现是个技术工作,不过API 的设计却并非如此。光是理解用户的需要还不够,因为很有可能实现了一个能够满足需求,但却没法使用的API。因此,用户体验设计也是API 开发的一个重要组成部分

那这与人际技能又有什么关系呢?

Wikipedia 是这样定义术语用户体验的:

用户体验(UX)涉及到使用特定产品、系统或设备的用户行为、态度与情绪。用户体验包括人机交互与产品所有权的实际、经验、情感等方面因素。除此之外,它还包含个人对系统的感知和认识,比如说功能性、易用性以及效率等。用户体验是动态性的,因为它常常会随着时间的流逝由于使用环境和系统变化等因素而发生变化。

换句话说,如果想要创建出具有优秀用户体验的 API,你需要:

  • 实现一个提供了全部所需功能的 API。
  • 理解开发者使用 API 的方式。

拥有良好的人际技能能够帮助你实现第 2 个目标。

你不必成为专家

软件开发并不是一项孤立的活动。相反,它是一项团队活动,软件开发者需要与客户、团队的其他成员以及同事相互协作。要想成为一名优秀的软件开发者,你不必非得是外向型人格,不过你要能理解其他人并与之很好地沟通与交流。

除此之外,你也不必成为一名人类行为学的专家,不过在这方面了解得越多,你获得的收益也会越大。

2014-02-05 11:571854
用户头像

发布了 88 篇内容, 共 258.5 次阅读, 收获喜欢 8 次。

关注

评论

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

MySQL事务的隔离级别以及脏读、幻读和不可重复读

海风极客

MySQL 事务 11月月更

【Dubbo源码】SPI机制源码解析

石臻臻的杂货铺

dubbo 11月月更

指标体系搭建中需要规避的问题

穿过生命散发芬芳

指标体系 11月月更

面试官:说说Event Loop事件循环、微任务、宏任务

loveX001

JavaScript

JVM Sandbox入门教程与原理浅谈

Zhendong

Java JVM

浅谈MVC、MVP、MVVM框架模式

海风极客

mvc MVP MVVM 11月月更 框架模式

湖仓一体电商项目(九):业务实现之编写写入DIM层业务代码

Lansonli

湖仓一体电商项目 11月月更

精益创业者的用户体验设计

产品海豚湾

产品经理 产品设计 精益思想 用户体验 11月月更

从0开始,让你的Spring Boot项目跑在Linux服务器

海风极客

spring Linux 服务器 11月月更

2022-11-14:rust语言,请使用过程宏给结构体AAA生成结构体AAABuilder和创建AAABuilder实例的方法。 宏使用如下: #[derive(Builder)] pub stru

福大大架构师每日一题

rust 福大大 过程宏

初始Java诊断工具-Arthas

石臻臻的杂货铺

Java Arthas 11月月更

算法题学习---删除链表的倒数第n个节点

桑榆

算法题 11月月更

透视用户需求深挖服务潜力:2022中国商业查询行业洞察

易观分析

商业 查询

SpringBoot3正式版将于11月24日发布:都有哪些新特性?

艾小仙

Java spring-boot spring、

IO原理(一):从BIO到NIO

苏格拉格拉

Linux io nio 多路复用

基础逻辑门

智趣匠

Verilog 11月月更 Xilinx

Linux中传输文件如何做到又快又安全?同学,scp命令了解一下!

wljslmz

Linux 运维 scp 11月月更

倒计时3天!银行APP用户体验外滩峰会嘉宾阵容抢先看!

易观分析

App 银行

python小知识-单元测试

AIWeker

Python python小知识 11月月更

ISO 8601持续时间格式

HoneyMoose

深入浅出学习透析Nginx服务器的基本原理和配置指南「初级实践篇 」

洛神灬殇

nginx 正向代理与反向代理 11月日更 nginx 开源版 开发指南

mysql的高可用方案以及优缺点

想要飞的猪

构建高质量的持续交付体系

老张

软件工程 持续交付

OWASP API安全漏洞类型

阿泽🧸

11月月更 OWASP API

湖仓一体电商项目(十一):编写写入DWS层业务代码

Lansonli

湖仓一体电商项目 11月月更

自制操作系统日记(5):跳转到C语言执行

操作系统

前端面试如何回答,这些题目或许可以给你一些提示

loveX001

JavaScript

Thymeleaf入门教程

Studying_swz

前端 thymeleaf 11月月更

湖仓一体电商项目(十):业务实现之编写写入DWD层业务代码

Lansonli

湖仓一体 11月月更

一年前端面试打怪升级之路

loveX001

JavaScript

这些js原型及原型链面试题你能做对几道

loveX001

JavaScript

成功的软件开发者需要掌握人际技能的3个原因_语言 & 开发_张龙_InfoQ精选文章