IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 编码之道(三):编码的困境,失衡的价值 -> 正文阅读

[开发测试]编码之道(三):编码的困境,失衡的价值

学习一个现代编程语言,简单!

用学会的语言,编码出能运行的代码,容易!!

一个团队,用代码去打造一个高质量易于维护的产品,突然就变难了!!!

这究竟是为什么?

本周,继续阐述自己对编码之道的分析与理解,这是第三篇,本系列其它文章为:

  1. 编码之道(一):程序员的"圣经"
  2. 编码之道(二):软件的价值

编码之困

写出可运行的代码,这个基本上没有程序员做不到。那一群人,把自己写的代码结合起来,构建成一个高质量的产品,却突然一下子变的很难了。

原因在于:

编码是一个人的事,而项目或产品则是一群人的事情

在数学上的等式是:1+1=2

而团队合作我们期望的是:1+1>2

但实际上一群人的工作实际情况是:1+1<2

一群人编码这个事究竟有多难,从我们行业中一些非常著名的书上就可以得知了

  • 《人件》:这本书用整本书在告诉我们,成功的关键最重要的是人,而不是语言,技术或框架
  • 《敏捷整洁之道》:为什么会有敏捷软件开发的理念出现,这本书中就告诉了我们答案,因为软件开发实在问题太多了,太差了,一群优秀的程序员跑到雪鸟镇上去讨论怎么办才好,于是诞生了敏捷软件开发的理念
  • 《软件开发的本质论》:一本有点像哲学,又有点像思考的书,一步一步引导我们思考如何才能把编码这件事做好

类似的书挺多的,总之

所以,我也提出一点我的看法吧,我认为,导致编码出现困境的一个最主要的原因在于:

对业务价值与技术价值的认知与重视程度出现了偏差与失衡

以技术为维度来分类

编码并不单纯是技术上的事,这个想必所有程序员都是承认的。

在编码的世界是,如果以技术这个维度来区分人群,很明显有两个人群:

  • 技术人员:这类人群是懂技术,负责用技术实现功能的人群,诸如开发人员,架构师等就属于这一类人群。
  • 非技术人员:这类人群并不太懂技术,如管理者,产品或客户等

如我上一篇文章所讲,软件的价值是由业务价值与技术价值构成。

那以此继续推论,如果编码能保障业务价值与技术价值,那当然软件的价值,也就是质量就会有所保证了。

但现在可能大多是:

对业务价值的重视与保障程度远胜于对技术价值的重视与保障

在上面所说的两个人群中,很显然非技术人员天然的站在业务价值一边,并且是软件干系方中有重要影响力或决策者,而更可惜的是,连很多技术人员都没有意识到技术价值的重要性,有意无意的也在伤害技术价值。

应该保持平衡的天平,失去了平衡。

失衡的价值

这源于几个原因

业务价值是可见的,技术价值是不可见的

我们更容易看到可见的东西,对于看不到的东西,理所当然的会忽略或不去考虑它。对于编码也是同样的道理,软件的功能,需求,用例,这些是实实在在可见的东西。

有决策能力的人更关心的是这些可见的功能是否如期完成,完成的功能是否与期望一致,至于背后的技术是怎么回事,所谓的维护性,灵活性,健壮性等,有多少非技术人员能"看见"这些东西。

估计只有我们技术人员能知道有这些东西的存在,对于我们,它们才有可能是『可见的』

业务价值是可衡量的,技术价值难以衡量

软件在业务上的质量,其实相对容易衡量,比如测试工作,测试提的BUG,几乎可以说绝大部分是对软件业务价值实现质量的测试。

功能点完成时间如何,完成程度如何,与需求或原型是否一致,这些是实实在在可以通过数据衡量与评判的。

而技术价值则完成不同,首先不说技术价值种类繁多,性能,可维护性,代码风格,单元测试,架构的灵活性,服务的健壮性等等众多维度的价值点。

而很多技术价值点压根没法衡量,比如,对于非技术人员来说,怎么去理解可维护性,什么样的数据或标准能证明可维护性是好的?

甚至可能有相当一部分技术人员都没法说出个评价标准。

业务价值是当下,技术价值是未来

技术人员非常容易听到的一句话可能是,以后再花时间来优化,先实现功能再说。

而大家都知道,事实是:以后等于永久,可能永远没有优化的那一天,因为新的功能或需求变更会源源不断的进来。

背后的一个事实就是: 业务价值是当下,当下是最重要的,而技术价值这种看不见摸不着的东西影响的更多不是当下,而是未来。

不好的技术,也能支撑当下的功能正常运行,它影响的可能是未来,因为会导致可维护性越来越差,但它毕竟是未来,而不是当下。

当下永远比未来更紧急,不是吗?

未来看似就意味着,还有更多的时间,但其实我们都知道,在技术价值上,并不是这么一回事,所以有个专业的词来描述这个现象:技术债务

程序员的使命

所以,呼之欲出的一个问题是,谁能保障技术价值?

当然就是我们程序员了。

所以,做为程序员,我们在职业上的最高的使命是什么,我的定义就是:

维护软件的业务价值与技术价值

而这其中,尤其以技术价值更为重要,因为它是容易被忽略,被轻视的价值。我们不可能期望那些不从事技术的参与方,能理解并主动积极的去保障技术价值,但我们有责任尽我们的能力与手段,尽量去保障技术价值。

但程序员也要切记:过犹不及

我们中一些人员,过于看中技术,反而去轻视业务价值,这其实也是一种不好的现象。

就象我说的,如同天平一样,业务价值与技术价值在天平的两端,维系他们的平衡,才是上上之策。

编码的道与术

做为程序员,想要维系技术价值,首先要掌握的能力就是:把代码写好

但是把代码写好这件事,并没有想像中的容易。

我认为要写好代码的第一件事就是:理解编码中的道与编码中的术,只有很好的理解它,才有可能真正成为一个杰出的程序员,写出好的代码。

那究竟什么是编码的道,什么是编码的术?

下一篇,我们继续聊,编码之道(四):编码有术,术中有道

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-09-12 20:45:08  更:2021-09-12 20:45:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 0:41:49-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码