随想录——软件开发不能是加工作坊

发表于:2012-4-16 11:19

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:feixiaoxing(CSDNblog    来源:51Testing软件测试网采编

  前一段时间看了一本《走出软件作坊》,心情很沉重。不管你是否承认,书中描述的情况在现在的国内IT企业中确实存在,可能涉及的范围还很广。联想到自己目前处于的行业,心中不免唏嘘不已。类似的事件,类似的方法,每天都在上演着。无休止的版本修改,无休止的测试,无休止的开发需求,人员的流失和更替,心中除了累还是累。现在的IT早已经不是10年前的香饽饽行业,大家都在经受着挑战和煎熬。现在的IT行业分布很广,IT信息化公司、网站公司、通信公司、嵌入式产品公司、芯片公司、网游公司、ERP公司,这些公司由于所处行业的上下游位置不同,公司的境遇差别很大。特别辛苦的是那些本身技术门槛比较低,缺少技术壁垒的公司,员工在承受着低福利的同时还要承受着与之不匹配的工作强度。这就是我们的生活现状。我们的IT开发非要这样不可吗?

  一般认为,IT项目开发的过程都是按照需求分析、软件设计与实现、集成测试与系统测试、后期维护这几个步骤进行的。我们应该好好反思一下,这几个步骤有没有提高和改进的空间。

  (1)加强需求分析

  从商业的角度来说,交易的出发点就是为了满足客户的需求。只有精准地满足了客户的需求,我们才能更好地交付产品,实现双赢。当然,完成这一切的前提就是需要我们能够准确把握客户的需求。对很多公司来说,需求分析都是由销售来说,这是十分不靠谱的一个举动。因为,我们知道,销售人员的目标就是完成更多的签单,所以很多时候他会毫无原则地接受客户的一切要求。至于这些要求客户是不是真实需要,或者说这些需求本身技术能不能实现,那就超过了他本身的理解范围了。很多销售的理解范围其实就是入职时培训的那一些内容,至于技术细节或者产品性能方面的东西,那真是无能为力了。作为优秀的需求分析师,他不仅仅可以准确把握客户的需求,甚至在某种程度上可以影响客户的需求。这种例子虽然不多,但是也不鲜见。无原则的接单,不仅浪费了开发的资源,从大了说,也会影响公司的诚信水平,甚至危害公司的发展。

  (2)抽象公共平台

  现在的服务器系统平台很多,windows可以,linux可以,unix也可以。因此,很多情况你不知道自己的服务端程序最终跑在哪一个操作系统上。所以,你要做的就是做一个抽象的公共平台。在这个平台上面,你可以忽视具体的细节,因为你使用的函数都是平台的函数,你使用的数据类型都是平台的数据类型,所以不管什么操作系统,你的服务器程序都可以准确无误地运行。为了做到这些,你可能在构造平台的时候需要对很多函数重新进行封装,比如,

  a)内存申请、释放

  b)socket创建、接受、发送、释放

  c)信号量操作

  d)文件创建、打开、读、写、关操作

  e)定时器

  f)消息发送和接受

  g)延时函数

  h)线程创建、优先级设置、属性设置、属性获取等等

  (3)构建自己的软件库

  软件作为一个工程来说,事实上它也是由很多的子模块组成的。这里面的模块很多,比如说基本算法模块、数据库访问模块、图形模块、解析模块、日志模块、解压缩模块、pic读取模块。对于很多项目来讲,很多模块的功能都是可以复用的,那么如何把这些模块抽取出来就是我们需要完成的一个工作了。最最理想的情况就是,我们所有的软件都是由各个模块按照搭积木的方式组成的,如果我们需要对应的功能,那么打开对应的编译宏就可以了;反之,如果不需要这个功能了,那么关闭对应的宏即可。这方面,我们可以看一下linux代码。它上面的很多代码都是以模块存在的,那么多cpu、那么多fs、那么多chip都可以在上面运行,这说明linux整个系统的设计是非常开放和健壮的。

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号