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

2023-10-07 01:38

本文主要是介绍成功的软件开发者需要掌握人际技能的3个原因,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文来源于我在InfoQ中文站原创的文章,原文地址是:http://www.infoq.com/cn/news/2014/02/human-skills-useful-for-dev


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

你不必成为专家

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

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

这篇关于成功的软件开发者需要掌握人际技能的3个原因的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/155232

相关文章

Java.lang.InterruptedException被中止异常的原因及解决方案

《Java.lang.InterruptedException被中止异常的原因及解决方案》Java.lang.InterruptedException是线程被中断时抛出的异常,用于协作停止执行,常见于... 目录报错问题报错原因解决方法Java.lang.InterruptedException 是 Jav

解决1093 - You can‘t specify target table报错问题及原因分析

《解决1093-Youcan‘tspecifytargettable报错问题及原因分析》MySQL1093错误因UPDATE/DELETE语句的FROM子句直接引用目标表或嵌套子查询导致,... 目录报js错原因分析具体原因解决办法方法一:使用临时表方法二:使用JOIN方法三:使用EXISTS示例总结报错原

全面掌握 SQL 中的 DATEDIFF函数及用法最佳实践

《全面掌握SQL中的DATEDIFF函数及用法最佳实践》本文解析DATEDIFF在不同数据库中的差异,强调其边界计算原理,探讨应用场景及陷阱,推荐根据需求选择TIMESTAMPDIFF或inte... 目录1. 核心概念:DATEDIFF 究竟在计算什么?2. 主流数据库中的 DATEDIFF 实现2.1

SpringSecurity显示用户账号已被锁定的原因及解决方案

《SpringSecurity显示用户账号已被锁定的原因及解决方案》SpringSecurity中用户账号被锁定问题源于UserDetails接口方法返回值错误,解决方案是修正isAccountNon... 目录SpringSecurity显示用户账号已被锁定的解决方案1.问题出现前的工作2.问题出现原因各

Qt 设置软件版本信息的实现

《Qt设置软件版本信息的实现》本文介绍了Qt项目中设置版本信息的三种常用方法,包括.pro文件和version.rc配置、CMakeLists.txt与version.h.in结合,具有一定的参考... 目录在运行程序期间设置版本信息可以参考VS在 QT 中设置软件版本信息的几种方法方法一:通过 .pro

javax.net.ssl.SSLHandshakeException:异常原因及解决方案

《javax.net.ssl.SSLHandshakeException:异常原因及解决方案》javax.net.ssl.SSLHandshakeException是一个SSL握手异常,通常在建立SS... 目录报错原因在程序中绕过服务器的安全验证注意点最后多说一句报错原因一般出现这种问题是因为目标服务器

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

安装centos8设置基础软件仓库时出错的解决方案

《安装centos8设置基础软件仓库时出错的解决方案》:本文主要介绍安装centos8设置基础软件仓库时出错的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录安装Centos8设置基础软件仓库时出错版本 8版本 8.2.200android4版本 javas

IDEA中Maven Dependencies出现红色波浪线的原因及解决方法

《IDEA中MavenDependencies出现红色波浪线的原因及解决方法》在使用IntelliJIDEA开发Java项目时,尤其是基于Maven的项目,您可能会遇到MavenDependenci... 目录一、问题概述二、解决步骤2.1 检查 Maven 配置2.2 更新 Maven 项目2.3 清理本

Java空指针异常NullPointerException的原因与解决方案

《Java空指针异常NullPointerException的原因与解决方案》在Java开发中,NullPointerException(空指针异常)是最常见的运行时异常之一,通常发生在程序尝试访问或... 目录一、空指针异常产生的原因1. 变量未初始化2. 对象引用被显式置为null3. 方法返回null