1.1 软件开发让人爱恨交加
第一台计算机诞生的同时,软件的发展也开始了。到目前为止,软件已经经历了程序设计阶段(20世纪50年代初期至60年代中期,软件的生产主要是个体手工劳动的生产方式)、程序系统阶段(20世纪60年代中期到70年代末期,作坊式生产方式)、软件工程阶段(始于20世纪70年代中期,以软件的产品化、系列化、工程化、标准化为特征)。
最近20多年,随着互联网、物联网的蓬勃兴起,计算机软件的发展十分惊人。①在体系结构方面,计算机软件经历了从主机结构到文件服务器结构、从客户机/服务器(C/S)结构到基于Internet的浏览器/服务器(B/S)结构等变化。②在编码语言方面,计算机软件经历了从机器代码到汇编代码、从高级程序语言到人工智能语言等变化。③在开发工具方面,计算机软件经历了从分离的开发工具到集成的可视化开发系统、从简单的命令行调试器到方便的多功能调试器等变化。
软件给人类带来了极大的便利,软件开发模式也在不断创新,同时,人们在软件开发和维护过程中,也遇到了一系列严重问题,例如,怎样满足对软件的日益增长的需求、如何维护数量不断膨胀的已有软件等。软件开发计划不能按时进行、开发成本失去控制、软件质量得不到保证、交付的软件产品不符合用户的实际需要、软件的可维护性和迭代性差等问题,使人们常常感叹软件危机从来没有走远。
造成以上状况的原因有很多,但软件开发者和使用者不是同一个人,开发人员不使用,而使用者又不会开发,也是无法忽略的原因之一。
软件使用者由于没有软件工程学概念或系统工程思想,往往就事论事,缺乏总体考虑。另外,因企业信息化程度和计算机应用水平低,也会导致使用者无法准确描述需求;因此,与开发人员沟通时,经常类似于鸡同鸭讲,软件使用者对业务描述得支离破碎,软件开发者对业务逻辑的理解与实际也不是很吻合。这往往成为很多商业化管理软件不好用的重要根源。
软件终究是一种工具,尤其是各类管理软件,如进销存管理、客户管理、人事管理等软件,其本质就是帮助人完成某项工作的工具。现在人们普遍认为优秀的软件除了功能正确、性能优良,还应该容易看懂、容易使用、容易修改和扩充。能做到这一点的最佳人选,显然不是专业开发团队,而是千千万万奋战在一线的管理人员。他们精业务、懂管理,如果还能自己编写管理软件,则管理才华无疑会得到更大的绽放。
那么,问题来了,管理软件用什么来编写呢?是不是一定要学习C语言、Java或简单易学、近几年火爆得一塌糊涂的Python?
只要是代码编程,其学习难度都足以令大部分人望而却步,或者最终虎头蛇尾。一门语言的掌握,从来都不是很容易的。
好在我们现在已经处于21世纪,科技的进步、方法的创新,令一切皆有可能。不学编码,同样可以快速开发出管理软件。