[唠叨]写给程序员



  人远比技术重要。你开发软件是为了供别人使用,没有人使用的软件只是没有意义的数据的集合而已。许多在软件方面很有成就的行家在他们事业的初期却表现平平,因为他们将主要精力都集中在技术上。对于用户来说,如果你设计的软件很难使用或者不能满足他们的需求,后台用再好的技术也于事无补。多花点时间到软件需求和设计一个使用户能很容易理解的界面上。

  谦虚是必须的品格。你不可能知道一切,你甚至要很努力才能获得足够用的知识。软件开发是一项复杂而艰巨的工作,因为软件开发所用到的工具和技术是在不断更新的。而且,一个人也不可能了解软件开发的所有过程。在日常生活中你每天接触到的新鲜事物可能不会太多。但是对于从事软件开发的人来说,每天可以学习很多新东西(如果愿意的话)。

  需求其实很少改变,改变的是你对需求的理解。“分析是一门科学,设计是一门艺术”。在众多的“正确”分析中只存在一个最“正确”分析可以完全满足解决某个具体问题的需要。分析需要一丝不苟、精确的完成,而设计的时候反而可以发挥创造力和想象力。如果需求经常改动,很可能是你没有作好需求分析,并不是需求真的改变了。你可以抱怨用户不能告诉你他们想得到什么,但是不要忘记,收集需求信息是你工作。你可以说是新来的开发人员把事情搞得一团糟,但是,你应该确定在工程的第一天就告诉他们应该做什么和怎样去做。如果你觉得公司不让你与用户充分接触,那只能说明公司的管理层并不是真正支持你的项目。你可以抱怨公司有关软件工程的管理制度不合理,但你必须了解大多同行公司是怎么做的。你可以借口说你们的竞争对手的成功是因为他们有了一个新的理念,但是为什么你没先想到呢?需求真正改变的情况很少,但是没有做好需求分析工作的理由却很多。如果需求真的变了,那么请接受变化,因为这个世界上唯一不变的是变化。

  性能仅仅是很多设计因素之一。关注软件设计中的一个重要因素--性能,这好象也是用户最关心的事情。一个性能不佳的软件将不可避免被重写。但是你的设计还必须具有可靠性,可用性,便携性和可扩展性。你应该在工程开始就应该定义并区分好这些因素,以便在工作中恰当使用。性能可以是,也可以不是优先级最高的因素,要给每个设计因素应有的考虑。

  走近路需要更长的时间。在软件开发中没有捷径可以走。缩短你的在需求分析上花的时间,结果只能是开发出来的软件不能满足用户的需求,必须被重写。在软件建模上每节省一周,在将来的编码阶段可能会多花几周时间,因为你在全面思考之前就动手写程序。你为了节省一天的测试时间而漏掉了一个bug,在将来的维护阶段,可能需要花几周甚至几个月的时间去修复。与其如此,还不如重新安排一下项目计划。避免走捷径,只做一次但要做对。

  带工具的傻瓜还是傻瓜。你给我CAD/CAM工具,请我设计一座桥。但是,如果那座桥建成的话,我肯定不想当第一个从桥上过的人,因为我对建筑一窍不通。

  技术会变,基本原理不会变。如果有人说“使用某种开发语言、某个工具或某某技术,我们就不需要再做需求分析,建模,编码或测试”。不要相信,这只说明他还缺乏经验。

  以上具有普适性,可以尝试将“程序员”换成“各种专业人员”。

 进一步交流: 扣扣,是用来扣的    

上一篇: [共勉]“体制”是什么?
下一篇: [恶搞]赤壁
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: 技术 业务
相关日志:
评论: 3 | 引用: 0 | 查看次数: -
匿名_222.71.200.122
回复回复匿名_222.71.200.122[2008-10-21 03:57 PM | | | del]
很好
Jason
回复回复Jason[2008-07-10 08:29 PM | | | del]
言之有理
匿名_218.80.240.218
回复回复匿名_218.80.240.218[2008-07-10 06:48 PM | | | del]
呵呵 ~~学习、继续向老大学习~~
发表评论
昵 称:
邮 箱: 支持Gravatar头像.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.