`
tuti
  • 浏览: 63131 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

你做不做?做什么啊——软件工程(旧文留念)

阅读更多

           曾泛泛地看过本叫《代码大全》的书,其他都没记住,只记得讲到一个类比的问题,即“软件的研发”和哪种人们比较熟知的事务有可比性,以便不熟悉软件研发的人(各级管理层,客户等)能够得到个大致合适概念。很多人都把“软件研发”类比成“房屋的建筑”,我也很同意这个类比。
          在上海有很多在建的高楼大厦,路过那些工地,我常常会想:即便是100万行规模的软件研发,难道就比造一幢10来层的楼难度更大吗? 虽然也有劣质的楼房,但我武断地认为,豆腐渣的软件系统要比豆腐渣的楼多得多。我常自问这是为什么。

        我不知道,是否有刚入行2年的建筑工去主持厂房的设计建造。 但我知道常有刚入行2年1年甚至几个月的人在担当软件项目的负责人。
        我不知道,是否有心急的建筑商看不得设备的闲置,而在没有设计图纸的情况,就让施工队开始建筑“商务楼DEMO”。 但我常看见,管理精英们看不得资源的闲置,而在无研发设计的情况下,驱动研发团队先做个“商务软件DEMO”出来。
        我不知道,是否常会有客户需要把3年的盖楼工程期,压缩到1年(新闻联播中到是常有)。但我常听到管理人员心急如焚地需要把3个月的研发时间,压缩到1个月。


       昨晚在看《非程式员》第9期, 有“交互设计之父”之称的Alan Cooper的访谈里面有段对话(翻译稿):
         smilemac: 例如市场压力、预算、管理水平等等,这些都可能造成项目时间限制,许 多产品是他们之间相互妥协的结果。
         alancooper: “...市场压力,预算...”,任何的都是管理者掩饰他对程式不了解的借口。
       看似偏激,但我觉得说得是一语中的。现实这东西就是个样子,无论您如何臆想他,或忽视他,现实始终还在那里。而真正要面对现实是很不容易的,因为现实总是残酷的。而比现实更残酷的是,管理层往往都很激情洋溢地盘算着商业计划,他们信奉的是“跳一下才能完成的计划才是好计划”,至于您原来能达到哪里他却并不清楚。而研发人员几乎都是天生的乐观主义者,对于他们来说没有“Mission Impossible”。任务越是困难越含糊不清,越能激发他们克服困难的热情和所谓的创造自由度。这有点象我们这些单身汉在灯光昏暗的酒吧里看到一位线条突兀,衣着似露未露的性感MM,所激发得某种生理反应。而当一个相信电脑能算命的客户+ 激情洋溢的管理人员+ 一个(群)乐观向上的研发人员,基本上大概一幕悲剧的演员就全齐了,然后大家一起想象着项目会自然出落得丽质天成,结果多半是“为什么受伤的总是我"。
抱怨了半天,又要提到软件工程了。现在有这样一种情况,
       每次项目挫折总结的时候,上上下下都会说“这是因为没有执行软件工程的原因”。
这时候“软件工程”就象是个大垃圾袋,任何令人讨厌的东西都能够往里扔。至于什么是软件工程,很多数人只怕只有个模糊的概念。多半自己也分不清“软件工程” 和“幸福生活”之间有什么区别。不少人站出来说:“软件工程就是要把研发中的一切文档化可交流可维护,而不要搞心口相传。” “要出一些什么样的文档呢?” 有不少人沉默了,仍然有一些勇敢的人站出来列出一串文档名列表,或拿出“CMM”或“RUP”的文档模板来。“那怎么才能填写好这些文档,并使这些文档的资料足以做为进一步研发的基石呢?"。“...”一片寂静。角落里有几个声音说到“找个咨询公司来做方案,或找个行业专家”。也许有人有这样的好运气,但对大多数项目来说,这几乎是要老鼠给猫去挂个铃铛,把一个问题偷换成另一个问题。
        为什么一幢幢楼能建起来,而一个个软件项目在泥潭中挣扎下去。我只能说和建筑和其他产业相比,软件研发几乎没有工程。因为在如此短暂产业的时间里,还没有足够多的失败和教训来让大家摸索出一条被广为接受的工程方法来。请注意,总结出一是回事情,被大家知道是一回事,而被大家采纳执行就是完全不同的别的事情了。到幼儿园走一圈,我们可能知道健康的孩子是什么样,但我们却不知道怎么才能生出并养育个健康的孩子来。知道目的地,和知道如何到达目的地,也是完全不同的两件事情,虽然他们之间有关系。说到这里,突然想起那些信誓旦旦要在多久时间里,通过CMM X 级的老总们,即便他们生过孩子,只怕由于工作繁忙也没养过孩子。
       出路何在呢?只有去试验、去试错,土法上马。代价是什么?代价就是痛苦和失败。软件工程方面的试验是困难的。一个人一台机器1、2个小时就能够试出一个 API的使用来,而4、5个人1、2个月也未见得,试出一个工程方法的优劣来。而在一个新软件工程方面的导入在初期,引起研发混乱度的增加也是很常见的,谁也无法确保某个别人行之有效的方法就一定适合您的项目团队。况且,也很少有哪个老板愿意给您个项目试着玩。难归难,日子还要过。有前辈说了:痛苦的经历是改善流程的源动力。
这里我推荐两本书,管不管用就看各人的造化了。
1.《软件需求》机械工业,书很薄,有操作性。薄书就能说清的事,为什么要去看厚书呢?
2.《软件创新之路》电子工业 . 程式写多的人应该看看。想以MS为模仿对象的人也该看看。

也许我们知道未来是怎么样,但不知道怎么样能活到未来。


后话:
1.可能是2002年写的篇东西,很多观点有了变化,只是找个地方挂一下。
2.这些年来,对于软件开发的“隐喻”的思考,又有很多的新发展。“建筑”已经不是最恰当的隐喻了。

 

分享到:
评论
3 楼 0701 2008-07-25  
<div class='quote_title'>hyhongyong 写道</div>
<div class='quote_div'>alancooper: “...市场压力,预算...”,任何的都是管理者掩饰他对程式不了解的借口。 事情的另一面是:对程式了解的人员,对市场、管理。。。。。。不明白。</div>
<p><br/>照你这么说,做管理的一定不懂技术?做开发一定不懂管理?做管理的一定要对开发很精通?</p>
<p>真不知道你是怎么想的,大家去拜读下这位兄弟的文章吧 <a href='http://hyhongyong.iteye.com/blog/forum?only_topic=true'>http://hyhongyong.iteye.com/blog/forum?only_topic=true</a> :)</p>
2 楼 hyhongyong 2008-07-24  
alancooper: “...市场压力,预算...”,任何的都是管理者掩饰他对程式不了解的借口。

事情的另一面是:对程式了解的人员,对市场、管理。。。。。。不明白。
1 楼 xiaojunking 2008-07-08  
说的很实在...
凡事都会由不成熟慢慢走向成熟,有个过程的...

相关推荐

    单片机——嵌入式——留念——failed

    单片机——嵌入式——留念——failed 单片机——嵌入式——留念——failed单片机——嵌入式——留念——failed单片机——嵌入式——留念——failed

    毕业留念音乐相册软件

    本软件,是我们毕业制作,内置三首音乐,喜欢的可以下载后自己修改为自己的!

    主题之四——浪漫.doc

    在迎宾区,特别设计了一面特色背景墙,供宾客与新人合影留念。背景墙装饰需精心设计,摆放鲜花和小礼品作为摆设,并配有婚礼主题文字,用纱布等材料增添柔和氛围。楼梯扶手装饰以纱和绢花,一楼入口处设有气球拱门,...

    [留念贴] C#开发技术期末大作业——星月之痕-附件资源

    [留念贴] C#开发技术期末大作业——星月之痕-附件资源

    软件项目工程监理手册

    软件项目工程监理手册知识点 软件项目工程监理手册是指在软件信息过程中,对企业、开发方、监理方的要求,管理整个项目的过程的指导手册。以下是软件项目工程监理手册的相关知识点: 第一章 总则 1.1 目的:软件...

    主题区域活动——在农场里.doc

    【主题区域活动——在农场里】是一次针对中四班幼儿设计的教育活动,旨在通过模拟农场环境,激发孩子们对自然生物和环境的兴趣,提升他们的观察力、创造力和动手能力。活动围绕以下几个主要方面展开: 1. **生物...

    大学主持人大赛策划书——范文..doc

    【大学主持人大赛策划书——范文】 大学主持人大赛是一场旨在培养和挖掘具有全面素质的主持人才的活动,尤其针对新生群体,旨在为他们提供一个展示自我、锻炼能力的舞台,同时也丰富校园文化生活,增强学生社团的...

    让梦想起飞——学生活动策划ppt模板.pptx

    - 整理活动照片、视频等资料,制作成册留念。 - 反馈给校方,为今后举办类似活动提供参考。 综上所述,“让梦想起飞”学生活动是一次旨在激发学生潜能、培养团队精神的主题班会活动。通过对活动策划的详细规划与...

    PRD:旅行攻略产品需求文档——旅行僧.docx

    - **产品口号**:“旅行不只是拍照留念,更要分享”,强调旅行体验的分享与交流。 - **产品目标**:打造一个旅行百科全书,提供精准的旅行目的地推荐,详尽的旅行准备指南,以及一个供用户分享旅游经验的社交环境...

    Fraps实用专业的游戏视频录制及游戏帧数测试软件.rar

    今天小杰就给您介绍一款实用的游戏视频录制软件——Fraps。Fraps也是一款专业的游戏帧数测试工具,好多玩游戏的同学应该对Fraps并不陌生,继上次发布3.2.7版修正了录制的卡顿问题之后,最新的3.2.8也就来到了我们的...

    九年级数学一元二次方程——握手问题、传染病问题-增长率问题练习题汇总(有答案).doc

    "九年级数学一元二次方程——握手问题、传染病问题-增长率问题练习题汇总(有答案)" 握手问题 在mathematics中,握手问题是一个经典的计数问题。它是指在一个聚会中,每两个人都要握一次手,问总共握了多少次手。这...

    用VC++编写实现的毕业留念相册

    【标题】"用VC++编写实现的毕业留念相册"揭示了这个项目的核心是使用Microsoft Visual C++(简称VC++...开发者不仅需要扎实的编程技能,还需要对用户体验有深刻的理解,以创建出既实用又有情感共鸣的毕业留念相册软件。

    绘声绘影毕业留念模板文件.zip

    《绘声绘影毕业留念模板文件》是一个包含多种元素的资源包,旨在帮助用户利用绘声绘影软件创作毕业季的视频电子相册。这个压缩包中的内容丰富多样,涵盖了背景音乐、图片素材、MP3音频文件、字体以及模板文件,为...

    毕业留念光盘的制作与设计

    毕业留念光盘的制作与设计普通本科生毕业论文(设计)任务书

    (中小学教育)中班半日活动——《我长大了》.docx

    每个孩子带来自己的旧照片或者小时候用过的物品,通过讲述这些物品背后的故事,孩子们不仅锻炼了语言表达能力,更通过交流了解到同龄人的成长经历,从而增强了对成长概念的理解和认同。 接下来的环节是“看看现在的...

    幼儿园教案2021-主题区域活动——在农场里.doc

    3. 评价阶段:教师带领幼儿参观已搭建好的农场,拍照留念,表扬表现优秀的幼儿,鼓励他们在活动中积极思考、细致操作。 4. 游戏结束后,幼儿与教师一起整理和收拾玩具,养成良好的收放习惯,活动结束。 【活动价值...

    基于Web的高校图书馆毕业留念系统设计与实现.pdf

    为了提升用户体验,系统对于每项功能的响应时间都有严格要求,即用户操作的反馈时间不应多于10秒钟。这意味着系统在后端逻辑处理、数据库查询和页面渲染上都需要进行精心设计和优化。 ### 开发与实现过程 #### ...

    网络艺术CS全站系统留念版

    《网络艺术CS全站系统留念版》是一个集文章、下载和新闻板块于一体的综合性网站系统。这个系统的设计和实现充分体现了互联网艺术与技术的融合,为用户提供了一个全面且功能丰富的在线平台。源代码的开放性使得这个...

    【大学毕业留念祝福的话】.docx

    【大学毕业留念祝福的话】.docx

Global site tag (gtag.js) - Google Analytics