专栏首页博文视点Broadview从软件技术演变到软件项目管理的进步

从软件技术演变到软件项目管理的进步

世界上万事万物,都要经历从低级到高级的演化过程,软件项目管理也不例外。从几十年前的原始的DOS下的编程到高级过程语言编程,再到现在流行的面向对象语言编程,也经历了从低级到高级的变化过程。在这个演变过程中,软件项目管理的实质内容也在不断转变

20世纪90年代,无论是国内还是国外,应用软件技术主体还都处于DOS(个人电脑操作系统)下的编程状态。

那时的编程以代码行为单位,逐字逐句地进行编写,若要做个点击按钮,要写几十行代码,是很正常的事。光调试一个按钮代码,就需要花费几个小时的时间,编写语言主要为汇编、C、Basic等。编写工具跟现在Windows里的写字板一样,几乎全靠程序员个人的能力来解决编写问题。当时开发出来的应用软件主要是二维平面界面,如部分银行至今还在使用的前台服务系统:一个蓝色的或黑色的界面,一条条命令式的提醒功能,一个个跳跃式的屏幕输入功能,以及一个线框式的提示界面。碰到软件问题时,往往只能重启电脑。

在该模式下,软件开发工作量很大。想一想,所有的功能都得一个个字母敲进去,然后编译成可执行的软件功能。一旦编写方向出错,那产生的后果是很严重的!显然,那时的技术关注度很高,先要保证功能能正常实现,对软件系统应用的舒适度等要求,很多时候是奢谈!

在我们很熟悉的微软公司的Windows系列操作系统里至今还保留了一个DOS操作系统二维界面功能,虽然很古老,但是一道非常有用,尤其是IT技术人员,经常要通过它来处理些技术问题。

20世纪90年代后期,以微软Windows图形界面为代表的操作系统正式进入普通用户电脑中,于是面向对象语言逐步发挥了它的优势。如早期的VB,VC,Delphi,Foxbase等,这些开发工具无一例外,都采用了面向对象的开发技术。这使得与按钮类似的功能无须再大量编程,通过工具栏功能道接拿过来使用即可。这样,程序员的注意力就可以集中在具体的业务处理算法上,软件系统开发效率明显提高。开发时,由以代码行为工作量计算单位,开始转向以功能模块为单位进行计算。

由于相关开发技术处于应用起步阶段,从1995年到2005年,这期间的面向对象开发工具,本身也不太成熟,如有些开发工具,光是摆弄软件界面就非常麻烦,甚至要通过界面定位代码来辅助编程。自然,代码开发工具的自动纠错、智能提醒等功能也很弱,编程人员为一个代码错误,往往发愁几天的现象还依然存在。不过,这一阶段软件系统应用功能和界面外观已经大幅改观,至少已经由二维平面界面变成了三维立体界面。但是,还是存在界面功能呆板、操作不方便、外观效果单一等问题。

给我印象比较深的是,从2006年左右起,在个人电脑中运行日常软件开始顺畅起来——在这以前使用个人电脑,要么内存不够,要么硬盘空间不够,要么操作系统莫名出错,要么软件应用系统运行很卡,反正磕磕绊绊的,总有各种问题。而在2006年后,内存等问题加速解决了——包括价格、功能、成熟度等因素,而相应的软件开发工具也日趋成熟,功能也大大的丰富。在软件界面上安放一个按钮很轻松,用鼠标轻轻一拖,就可以摆放到相应位置。像按钮这样的功能,可以做到不需要编写任何代码,即可在界面上按要求设置。几乎同时,互联网应用开始进入成熟期,短短几年,电商网购已经深入到人们的日常生活之中。这一阶段的软件系统应用功能已经朝智能方向发展,如手机里的智能二维码扫描搜索、大数据智能分析应用、智能图像识别、智能语音识别……人们对软件应用系统不再满足于日常功能的操作要求,而是要求有更好的舒适的操作体验。

从上述应用软件及其相关技术的变化过程可以看出,现在开发技术日趋成熟一般应用技术不再是关注重点,更多的是要侧重关注软件使用者的更全面的使用要求。

关于对软件使用者的关注,让我想起了一件非常有意思的事。

2013年,我第一次上京东网购商品。当我在网站注册完毕,选择好需要购买的商品,去支付时,竟然花了半个小时也支付不成功!这让我非常惊讶!好歹我也是个有20多年经验的IT专业人士,竟然搞不定在线支付,简值太不可思议了!

其支付界面如图

原来,我第一次在该网站购物选择的是用购物卡进行在线支付,该支付界面首先要求输入卡号,然后选择卡号,再输入密码并确认,最后是提交订单确认。上述动作存在两个问题:一是输入确认过程有些拖泥带水;二是输入过程避免不了会发生卡号、密码输入出错的问题。作为一名普通消费者,依次输入完信息后,自然希望给予正确的提示,包括出错提示。可惜部分操作步骤,在输入有误时没有给出友好的、及时的提醒(更不要说感知式的智能提示了),害得我反复尝试了半个小时,才慢慢明白过来。这次购物让我体验很糟糕,差点儿放弃在其上购物了。由此可见,好的软件系统必定需要深入考虑使用者的良好体验,才能把软件做得更好,而不是简单地堆叠几个软件功能。

由此可见,枪也好,软件系统也好,首先它们都有逐步成熟的过程;其次,必须为人的使用,而精益求精。越到后期,越要注重人本身的使用体验要求,而不仅仅局限于功能或技术本身!

本文分享自微信公众号 - 博文视点Broadview(bvbooks)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-03-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 数据分析师必学第一课:构建完整的指标体系

    掌握理论知识和编程知识可以被看作入职数据分析师的“敲门砖”。掌握了这些知识,表示候选人对于成为数据分析师有了良好的准备,可以说“万事俱备,欠东风”,而“东风”就...

    博文视点Broadview
  • 产品的细节能决定成败吗?

    在MVP阶段,既然是最简可行产品,是否不需要关注细节呢?不是的。在这个阶段一样要关注细节,但一定要注意是与验证产品想法直接相关的细节,这类细节打磨得越好,对产品...

    博文视点Broadview
  • 语音打断功能——深入语音识别技术,设计语音用户界面(VUI)

    语音打断功能常用于交互式语音应答(IVR)系统,从而用户可以随时中断系统。当系统检测到任意语音时,它都会立即停止播放当前的提示并开始收听用户说话,如下面的示例所...

    博文视点Broadview
  • 分享 | 8条数据清洗经验,收藏备用!

    文 | Philip Guo 来自Chaoslog 平时习惯了在某些特定的数据集合上做实验,简单的tokenization、预处理等步骤就足够了。但是在数据...

    CDA数据分析师
  • 数据清洗经验

    平时习惯了在某些特定的数据集合上做实验,简单的tokenization、预处理等步骤就足够了。但是在数据越来越大的年代,数据清洗越来越重要,也越来越复杂。看到P...

    用户1332428
  • 2019年末逆向复习系列之努比亚Cookie生成逆向分析

    这篇文章是《2019年末逆向复习系列》的第二篇:《努比亚Cookie生成逆向分析》

    云爬虫技术研究笔记
  • bamtools分割bam文件

    bam文件可以按照染色体或者tag分割,bam文件的分割可以使用bamtools. 用法:

    生信编程日常
  • 方便的回归测试——diffy平台

    前段时间,公司运维又双叒叕在迁移机房,带来的又是大量的回归测试,虽然负责的项目case还算健全,但是被迁移机房仍然存在大量的历史接口,有些甚至不知道是什么业务在...

    用户5521279
  • 同样都是「加」,好像我们不一样...

    在我们来表示「加」这个概念的时候,一般我们会用两种方式:a = a + b或者是 a += b 。在很多人的概念里这两个其实就是一种,不分彼此,比如之前我就是这...

    Rocky0429
  • 分布式 | Jump Consistent Hash 原理解析(下篇)

    之前爱可生开源社区公众号发表了《dble 沿用 jumpstringhash,移除 Mycat 一致性 hash 原因解析》。

    爱可生开源社区

扫码关注云+社区

领取腾讯云代金券