观辰软件
服务支持/知识库/栏目:软件选型/软件工程与信息化成功之道

软件工程与信息化成功之道

作者:观辰软件发布时间:2010-09-23编辑:admin更新时间:2010-09-23 17:19

有人认为:软件是很容易获得的,即便没有现成的,随便找几个会编程的人讲讲需求也就能很快写出来。这是因忽视了专业性而产生的一个认识误区!在我们多年的行业工作中,遇到过许多有心上软件的企业用户,出于各方面因素的考虑尝试自行招聘技术人员或委托个人性质程序员(如在校学生)进行信息系统的设计和开发维护工作,但他们的努力无一不以失败而告终!

传统行业企业为导入信息化应用而招聘的具有IT行业从业经验的人士,一般属于之前参与(而非主导)过一些需求分析项目实施IT项目销售工作经历的非技术类人才。他们思维开阔,了解软件项目实施流程及方式方法,具有一定的行业化沟通能力,能够轻车熟路地撰写理论性较强的软件项目规划文档,但不具备技术工作能力和经验——因为不懂或没有真正经历和理解软件工程技术开发工作的专业深度,所以他们会对这方面的难度和风险判断不足,以为只要有会编程的人就可以做开发。

这类人士适合出任甲方项目经理、代表企业与软件供应商进行沟通谈判及配合项目实施工作,但不宜委以开发管理的重任。也许他们认为自己可以在原有工作经验基础上做出更多贡献,比如提出一套需求方案,再招聘一批程序员组成“开发队伍”(或委托一两个会写程序的大学生)、在自己的主持下快速低成本地开发出公司所需的软件系统。看来顺理成章的想法其实是注定要失败的——你如何能将一幢大厦的设计与建造工程交给一个环境工程公司、装潢公司或房屋中介商?虽然他们都“一直在做房地产项目”、的确具备丰富的行业经验

软件工程成功必须依靠的开发团队构成

一个完整的软件技术团队,由这么几个关键角色构成:系统架构师系统分析师代码工程师(程序员)需求/测试工程师实施工程师(实施顾问)。研发、实施并维护一套大型商用系统软件,上述各种人才缺一不可,却很难通过招聘配置到位。

1、系统架构师

美国软件工程架构专家G.Booch讲过一个著名的比喻:“开发一个复杂的软件系统和编写一个简单程序大不一样。其间的差别,如同建造一座大厦和搭一个狗窝的差别。”如果要建造大厦,或者说,要构建复杂的信息系统,就需要先进的架构体系设计

系统架构师负责软件系统的整体和局部结构规划设计及技术实现,其工作成果直接决定软件系统的技术可靠性、稳定性、功能性能、可用性及可扩展性,其作用如同建筑设计师要为整幢大厦的力学结构、功能布局、安全指标、使用效能、建设周期与投资成本总体负责。系统分析师则是在整体架构基础上负责局部结构的精细化设计与技术实现工作。

任何专业级的企业应用软件系统,都需经过5年以上持续发展(设计开发→优化修改→重构→再设计开发→再优化修改→再重构……)才有可能具备成熟可靠的架构体系。以观辰自身为例,一开始我们并没有所谓的系统架构师(虽然我们有人曾经在业内知名软件企业从事相关工作)——但在数年研发工作中,历经无数次的自我否定和推倒重来,产品技术系统最终趋于成熟并开始获得客户应用,技术总监也在经年累月的技术知识积淀和开发工作经验积累中成长为业界独一无二的智能软件系统架构师。系统架构师是企业无法通过高薪招聘就能得到的稀缺行业人才。一家持续成功的软件企业一定拥有一套成熟的软件技术产品及其由创始团队成员成长起来的系统架构师。

2、代码工程师(程序员)

代码工程师(程序员)和测试工程师在软件工程中的作用基本等同于大厦工程中的建筑工人。

拥有三年项目型软件公司开发经验的程序员通过招聘录用进入观辰后基本不能直接发挥作用,还必须接受长达一年的强化技术培养,才具备初步的系统技术知识和开发思维方式,才能以正式代码工程师(程序员)的身份参与观辰智能软件平台产品的外围控件开发与测试工作。

至于许多刚从学校毕业、有“北大青鸟”或“威训教育”培训证书的所谓“软件工程师”,若以成熟商用软件开发技术标准来衡量,他们真的还没入门!观辰偶尔面试由上述培训机构择优推荐的毕业学员,当我们问及观辰日常研发工作中的一些常用技术理念和方法时,90%的问题对方连概念都没听说过!

3、实施工程师

资深软件实施顾问是当前企业管理软件行业的紧缺人才,其工作任务是基于成熟管理软件系统为客户做个性化实施工作,相当于一幢大厦建成后负责其内部装修的技术人员。

成熟的软件供应商最核心的技术竞争力就在其所拥有的完整、成熟的人力资源组合,是在经年累月的工作努力中因各种机缘巧合而逐渐涤荡、沉淀的成果。每一个成功的团队都有自己的故事,有故事的团队很稳定、拆不散。好比一艘巨轮,开动它并达到一定的速度需要巨大的能耗和很长的加速时间,但要让行进中的它停下来同样不容易。所以,产品及技术的隔代领先性能与成熟度才真实反映软件供应商的综合实力及其人才团队稳定性,公司规模和品牌知名度往往只是假象

自行开发应用软件系统的风险——陷入IT黑洞

脱离一套成熟的通用平台而直接从底层架构开始设计开发软件系统,这从来就不是一条坦途:因不具备完整的开发技术人力资源条件,从事开发项目的代码工程师根本就缺乏系统架构设计能力,对企业管理信息化应用理解的广度和深度也有限,技术与应用结合的经验更不足。如果没有多年的管理软件应用开发实践和遍布各行各业的大批用户、渠道的实际应用经验反馈,是不可能做出成熟应用的软件。特别是开发周期短、需求分析简单局部的项目,采用项目方式,看似费用低廉开发周期短,实则存在着巨大的风险,主要体现为以下几方面:

1、软件工程本身的复杂性导致任何开发项目都不可能一蹴而就完成并具备应用成熟度——重构式的迭代开发是项目走向成熟的必然过程。无论做之前沟通形成了一套当时感觉多么无懈可击的应用和开发方案,当进入开发阶段中,以及系统交付后,因缺乏技术经验和应用理解而未能考虑到的太多问题,以及因缺乏必要的测试优化和重构工作而必然存在的成熟度缺陷,就会在实际系统运行中层出不穷地暴露出来,这对用户来讲,风险太大。

2、任何软件系统不经长期迭代式开发完善,系统在稳定性、可靠性等技术指标方面均无法达到商用标准。举个例子:表面功能是做到了,可数据安全性却是脆弱的(权限控制机制漏洞百出);数据量一大,或者并发用户数一上去,系统速度就变得奇慢无比,甚至登录系统都成问题……我们很难想象一个缺乏系统架构设计、临时开发的、没有经历完整软件工程发展周期的系统,如何能供数十成百上千客户端的高强度接入使用。

3、低成本、短周期的项目开发之所以能做到低成本和短周期,是因为它的项目设计和开发模式只着眼于当前——只求通过最直接快速的硬编码开发方式在用户界面上实现出用户提出的当前的功能需求,而丝毫不考虑(成本与技术实现上也不可能考虑)项目交付后用户应用需求变化(这是必然会产生的需求)所带来的应用扩展问题,软件往往随时空发展而很快不能适应用户在组织结构、业务流程方面的需求变化。为实现新需求而开发的新项目又与原系统互为信息孤岛,这就一定会带来使用过程中的诸多困扰。

成功有方法、失败有原因——正确聚焦企业的工作资源

装备美制武器的以色列空军战力超出美国空军20%,其以人为中心的杰出军事训练和综合地勤管理工作功不可没。犹太人有能力把美国武器使用到极致,但没有能力自行研发同等性能的核心装备——技术领域自己做出来的可能性没有,但可以花钱买现成的,反倒省事,所以他们自身军事力量发展的重心和工作资源都聚焦到以人为中心的军事训练和综合管理工作上。

将工作资源聚焦于适合自己且必须由自己做的部分并外包自己不擅长的其它重要领域,是现代社会专业化分工协作的准则,也是所有复杂系统工程项目的成功之路

企业导入信息化战略,项目工作涉及的主要方面包括:

1、硬件系统(服务器、网络设备、客户机…)

2、软件系统(应用软件平台、操作系统、数据库……)

3、项目管理(需求调研、供应商选择、方案研讨、商务沟通、安装调试、系统实施、人员培训、应用测试、系统部署、项目文档……)

硬件因有现成标准化产品,可以直接买来用,因此不必为此操心太多,可以把项目工作95%的关注点和精力放在相对麻烦的软件环节上。

最具技术复杂度的软件系统产品若由成熟的软件供应商提供,则企业又可省去很大一部分的麻烦,将自身70%以上的关注点和工作精力放到自己必须参与的项目管理环节中去。

这就是正确的方法!

试想如果美国不卖战机给以色列,那后者的飞行员就上不了天,再杰出的军事训练与战略战术能力都无法施展。以色列能自行研发战机吗?虽然它有先进的科技和人才,但它只是个小国,重化工业的配套加工资源有限,研发一些雷达设备还行,做大型战机则远远不够。

试想企业不买现成的服务器和电脑硬件而是招聘技术人员试图自行设计开发生产这些设备,情况会怎样?首先,真正具备硬件研发技术的工程师不会来,来了也搞不出产品,因为你缺乏他那个行业所必须的先期投入和积累,没有那个基础!

软件有个“软”字,它更灵活:是通过人写代码来生成,这是它与硬件的区别,所以感觉门槛低:会写代码似乎就能做软件,就好似能识字就能写文章——你我身边几乎每个人都能写字造句表情达意,但能写出上乘商务文档甚至大作名篇的方家能有几人?中国IT市场上,人们的观念向来重硬轻软:愿意花大价钱买硬件,却认为软件制作容易而希望免费或低价获取,其实免费或低价能获得的软件仅仅相当于文字作品里的小学生作文水准。能做和能做好的区别其实很大世间万物大道相通:没有任何专业级别的事情是可以由非专业人士通过我们原本以为的简单处理方法就能获得成功!行业内有这么一种观点:信息化项目能否成功,70%取决于项目管理(需求调研沟通、人事组织协调、系统部署调试、软件实施、人员使用培训等)的能力,软件产品本身只占30%的重要性——是的,如果由成熟的软件供应商为客户提供专业的软件产品,那么项目能否成功甚至100%取决于项目管理工作的能力;但如果客户选择自行或委托非专业人士设计开发软件,那么最后的信息化项目目标能否达成先不谈,我们首先能判定的是:信息化项目管理工作本身能否开展起来就已经100%取决于能否开发出一套可用于项目实施的软件系统了。

系列:企业管理软件

  1. 观辰软件产品品质
  2. 什么是业务基础软件平台
  3. 智能平台软件业务的全方位优势
  4. 观辰平台的创新网页多窗口技术
  5. 不要迷恋源代码!
  6. 站上巨人的肩膀别惦记其双脚
  7. 用好企业管理软件,重在长期坚持
  8. 能远程搞定所有服务的企业管理软件才是中小企业的正确选择
  9. 观辰第五代通用管理软件产品线(CBS12协同商务套件)上市简报
  10. 企业规范化财务核算费用科目的实际运用
  11. 选软件是一个技术活
  12. 小企业大发展-企业管理软件的运用
  13. 企业管理软件是什么?企业管理软件的概念
  14. 企业管理软件管什么?企业管理软件的作用
  15. 企业管理软件有哪些?介绍常见的企业管理软件
  16. 观辰应用软件与智能平台
  17. 软件工程与信息化成功之道
  18. 软件创新与持续学习
  19. 软件开发行业阵营划分(观辰是业界唯一智能平台软件提供商)
  20. GBRA广义商务关系应用——观辰应用软件方法论
  21. 业务无关才能无招胜有招
 

观辰智能软件平台

智能软件平台.jpg

零代码配置高度灵活所见即所得简洁易用部署维护方便等是观辰智能软件平台相对于其它平台类软件的显著优势。无论从设计理念、实际生产效率以及后期维护便捷性及成本来讲,观辰智能软件平台都明显优于目前业界的其它软件平台类产品。

咨询热线

028-64279137
观辰软件 版权所有 © 2003-2015