可能是长期在外边做项目出差久了,人都快不会玩了;今天是周末,外边天气太热,还是懒得出去,吹吹空调,写写文章,总结总结,为后来者做点贡献.
  刚一气呵成了,写了个小知识点的总结,对于同行来说,没什么玩意.是啊,但是没什么玩意也要总结,相信总有不会的人,不熟悉的人.现在下面就写点项目上的东西,希望与同行共享.
一.小论软件行业:
  目前软件行业主要趋势是大公司做产品,做平台,小公司做定制,当然还有一些做外包,老外的钱相对来说是要好赚一些.对于大公司而言,产品,平台形成之后,努力的去拿与产品,平台能关联起来的项目,尽量节省开发成本,尽量复用.一个产品的复用性越高,成本也相对来说越低.小公司实力不够,大项目拿不了,也就做做小项目,在能复用的前提下去定制一些东西.当前,由于软件行业不景气,利润低,软件公司生存周期也短.很多公司都在努力的寻找自己的生存之路,同时,相应的IT人士待遇也大不如前几年火了,其因素很多,不排除中国人多,每年有大批的理工科类的毕业生,廉价的劳动力.
  一个企业级应用软件项目拿下来后,无庸质疑,需要一个团队来面对,不是某一个人,或两三个人能搞定的;作为参与过企业级应用软件项目的一分子,对于企业级应用软件开发整个过程有一定的熟悉与体会.从面上来讲,软件开发的流程大家都熟悉.主要是从项目招标中标后,调研->需求分析->概要设计->详细设计->编码->测试->实施->维护;项目中标前面的一个阶段是售前和市场人员活动的阶段,暂时不在谈论的主题范围之内(笔者也曾经搞了一段时间的售前,这一块也略知一二,下次有机会专门列个主题讨论).
二.企业级应用软件的开发:
  对于软件开发来说,相信很多人都了解CMM,这里不就这个展开说了,提这个目的就是想说一下规范性的东西,大型的软件开发是一个大型的工程,总体的规划设计与进度把控毫不逊色于房地产商开发一个居民小区.
  上面提到的软件开发流程,现在就一一来聊聊:
  调研和需求分析阶段,做过这两个阶段的人,肯定有一些体会与认识的.不同的项目,面向的对象不同,调研的方式与内容也不同.需求的内容亦不一致.凡事是仁者见仁,智者见智.下面就电子政务行业的信息化的建设来聊聊,调研阶段直接面向客户,直接面向与项目相关联的政府部门的各委办局,项目的调研阶段量大而且锻炼人,量大是因为项目涉及到的单位多,锻炼人主要是从个人的综合能力角度来说的,面对不同的级别的人,不同水平的计算机软件方面的人,交流能力,演讲能力与专业综合能力都需要跟上.交流能力基本要求是,目的明确,谈吐清楚,思维清晰;演讲能力则是体现你的个人水平,及公司的形象,讲的好不好很能说明问题(在这里我想说一下的是,尤其对于刚参加工作不久的人,不要却场,不要怕,自己先做足准备工作,大胆放开去讲,越是拘谨,效果反而越是不好).综合能力不光是局限于你在开发系统中会写某一块的代码,需要涉及到整个系统的规划设计,网络,后期的实现方式,当然这个需要一定工作经验才会慢慢具备的.需求分析是基于调研阶段后的,结合标书中内容与实际调研阶段的内容,制定出相应的需求分析报告,在这个过程中需要的是抽象能力与对需求的控制能力.
  概要设计,详细设计,编码及测试;对于这四个阶段,是非常重要的,概要设计和详细设计基于需求分析报告和标书,当然这两块是根据不同的需求而不同的.概要设计和详细设计直接面向的是整个系统的构建,先提出功能模型,建模,随后数据库的设计,模块的设计,以及编码中的设计模式,可扩展性的接口等等,考虑的问题是比较多,也是整个项目开发成败的关键,这一块一般由经验丰富的架构师来搞;详细设计完后是编码和测试了,编码的分工是根据程序员不同水平而制定,一要控制质量,二要控制进度,对于整个软件系统的开发一般都是分为三层,数据层,逻辑层和表象层,数据层主要是封装与数据库交互的一些类,不同的数据库,提供的交互的实现方式略有不同,当然这一块不是什么难事.对于数据层,主要是供逻辑层和表象层与数据库交互的调用,逻辑层提供一些类,方法,接口,实现特定的逻辑功能;表象层的东西主要是展现于客户面前的功能界面,根据客户认可的界面模型来实现,当然这个也很容易.至于测试阶段,规范的公司有专门的测试部门负责测试,如微软,IBM等等比较著名的大型IT公司.不规范的公司随便由测试人员搞几个例子走走,实现概定的功能即完事,其实这是毫不负责任的做法,完全不考虑系统整体的优化性和并发性.
  实施与维护阶段,当然这两个是最无聊,最没前途的阶段.不想多说.
  本文讲的是面上的一些东西;具体每个阶段涉到具体的建设方式根据不同项目来定,不能一概而论.