本期IT沙龙讨论商业软件的软件工程。这是还不成文的主题介绍,错误多多,请大家指正。
几乎每一个软件工程师都学过软件工程,但媒体一提起中国软件业就异口同声地说:中国软件企业规模小,普遍处于软件作坊阶段,缺乏竞争力。事实上,到底有多少人真正了解软件工程?
软件开发人员、软件企业领导、学院里的教授、媒体,往往都不同程度地存在对软件工程的误解:
误区一:软件企业的规模代表其竞争力
误区二:软件工程等同于大学教科书上的生命周期法
误区三:将软件工程片面化成单纯的Paper Work
误区四:把文档和代码割裂开
误区五:认为软件作坊是毫不可取,坚决打倒并杜绝的
误区六:只向日本、印度学习甚至照抄其软件工程方法
误区七:中国软件业要发展必须先发展软件蓝领
误区七:不同的企业都要遵循同样的软件工程方法
误区八:通过ISO9000和CMM认证是成为顶尖软件企业的必由之路
误区九:规模大的企业才需要软件工程,软件作坊就不需要
误区十:只注意软件稳定性,忽视软件可用性
我们必须注意到以下事实:
事实一:最先进的技术往往都是小公司发明的,最成功的软件其雏形往往来自软件作坊
事实二:美国是软件行业最发达的国家,印度、日本、中国等全世界其它所有国家全加起来都不及美国
事实三:Microsoft并没有通过CMM认证
事实四:美国几乎没有软件蓝领
事实五:很多主流软件的代码,特别是非核心部分的代码规范度,常常与教科书上的范例 相差甚远,有时甚至还不如我们软件作坊的产品
事实六:即使是最严格的书面文档,也会存在信息失真现象,有时失真还很严重
事实七:产品需求一般都是在不断变化的,需求设计做得再好,也不一定适应交货时的市场需求
事实八:代码即最详细的文档,还有很多软件开发工具可以自动生成文档
为了更好地为市场服务,一个商业公司的软件工程管理应当注意以下原则:
原则一:不同企业,不同产品,不同目标导向,在软件开发中,软件工程的表现形式不 同。如开发产品 vs 承接外包工程,创新的产品 vs 没有技术难度的产品/项目,要针对对不同的情况选用不同的方式
原则二:对商业公司来说,软件工程的目的是开发出适合市场需求的产品,而不一定是开 发出没有BUG的产品
原则三:要更多向美国而不是日本印度学习
原则四:一切取决于最后是否能让用户用得好,而不是是否符合书面文档的要求
原则五:结合企业自身情况,借鉴而不是机械照搬ISO9000、CMM等制定本企业的软件开发管理体系
原则六:无论规模大小(即使少到一个人)都可以贯彻软件工程规范
原则七:经常与用户沟通,而不仅仅局限在需求设计和产品测试阶段,降低信息失真和用户需求变化的风险
文章来源于领测软件测试网 https://www.ltesting.net/