万事万物都经历着从低级到高级的演变过程,软件项目管理也不例外。从几十年前的dos编程到现代的面向对象编程,软件项目管理的本质内容也在不断变化。
在20世纪90年代,无论是国内还是国外,软件技术主要依赖于DOS操作系统下的编程。
当时的编程是以代码行作为单位进行的,需要逐字逐句地编写。例如,一个简单的点击按钮可能需要几十行代码,调试一个按钮的代码可能需要几个小时。常用的编程语言包括汇编、C和Basic等。编程工具类似于现在的Windows写字板,主要依靠程序员个人的能力。开发出的应用软件通常是二维平面界面,如一些银行至今使用的前台服务系统,具有蓝色或黑色界面、命令式提醒功能、跳跃式屏幕输入功能和线框式提示界面。遇到软件问题时,往往只能重启电脑。
在这种模式下,软件开发工作量巨大。所有的功能都需要一个个字母输入,然后编译成可执行的软件功能。一旦编写方向出错,后果将非常严重。因此,那时的技术关注度非常高,首先要保证功能正常实现,对软件系统应用的舒适度等要求,很多时候是奢望。
在微软的Windows系列操作系统中,至今仍保留了DOS操作系统的二维界面功能,虽然古老,但对IT技术人员来说非常有用,经常用于处理技术问题。
20世纪90年代末,随着微软Windows图形界面的普及,面向对象语言开始发挥优势。早期的VB、VC、Delphi、Foxbase等开发工具都采用了面向对象技术,使得类似按钮的功能无需大量编程,通过工具栏即可直接使用。这样,程序员可以将注意力集中在具体的业务处理算法上,软件系统开发效率显著提高。开发工作量从以代码行为单位转变为以功能模块为单位计算。
然而,从1995年到2005年,面向对象开发工具仍处于起步阶段,本身不够成熟。例如,有些开发工具的界面操作非常麻烦,甚至需要通过界面定位代码来辅助编程。代码开发工具的自动纠错和智能提醒功能也较弱,编程人员常常为一个代码错误苦恼几天。尽管如此,这一阶段的软件系统应用功能和界面外观已有很大改进,至少从二维平面界面转变为三维立体界面,但仍存在界面功能呆板、操作不便、外观效果单一等问题。
从2006年左右开始,个人电脑运行日常软件变得更加顺畅。此前,个人电脑常因内存不足、硬盘空间不足、操作系统错误或软件运行卡顿等问题而磕磕绊绊。2006年后,内存等问题得到加速解决,包括价格、功能和成熟度等因素,相应的软件开发工具也日趋成熟,功能大大丰富。在软件界面上放置一个按钮变得非常简单,只需用鼠标拖动即可。像按钮这样的功能,可以在不编写任何代码的情况下,在界面上按要求设置。与此同时,互联网应用开始进入成熟期,电商网购迅速融入人们的日常生活。这一阶段的软件系统应用功能朝着智能方向发展,如手机中的智能二维码扫描搜索、大数据智能分析应用、智能图像识别和智能语音识别等。人们对软件应用系统不再满足于日常功能操作,而是要求更舒适的操作体验。
从上述应用软件及其相关技术的变化过程可以看出,现今的开发技术日趋成熟,应用技术不再是关注重点,更多的是要侧重关注软件使用者的全面需求。
关于对软件使用者的关注,让我想起了2013年的一次有趣经历。
那年,我首次在京东网购商品。注册完成并选择好商品后,我尝试支付,但花了半小时也没能成功支付。这让我感到非常惊讶,作为一名拥有20多年IT经验的专业人士,竟然搞不定在线支付,真是不可思议。
其支付界面如图所示:
原来,我选择的是用购物卡进行在线支付。支付界面要求先输入卡号,然后选择卡号,再输入密码并确认,最后提交订单确认。这个过程存在两个问题:一是输入确认过程有些拖泥带水;二是输入过程中容易出现卡号和密码输入错误。作为一名普通消费者,输入信息后自然希望得到正确的提示,包括错误提示。然而,在输入错误时,部分操作步骤没有给出友好及时的提醒(更不用说感知式的智能提示了),这让我反复尝试了半小时才慢慢明白过来。这次购物体验非常糟糕,几乎让我放弃在京东购物。由此可见,好的软件系统必须深入考虑使用者的良好体验,才能做得更好,而不仅仅是简单地堆叠几个软件功能。
由此可见,枪也好,软件系统也好,首先它们都有逐步成熟的过程;其次,必须为人的使用而精益求精。越到后期,越要注重人本身的使用体验要求,而不仅仅局限于功能或技术本身!