软件开发需要常识
2008-10-16 21:19
330 查看
为什么软件开发这么困难?设想的和开发出来的不一致,工作量估算不准,还有很多隐藏的质量问题等等......
是因为需求定义不够明确?是因为设计文档不够精确么?的确,从需求到产品,有太多的细节需要考虑,有太多的变数,而需求和设计文档并不能面面俱到。
但是,你并不能要求建筑设计师把每一块砖都考虑到了。因为,建筑的很多环节已经形成了固有的约定,有了习惯的做法。所以,对于这些已经成熟的做法,你没有必
要多加描述,大家就会知道怎么做。并不是说下面的环节就很简单,只是说比较成熟,每个环节都有自己详细的规范,而相关的从业人员都有受过训练。所以,当建
筑师说这里要按一扇门,那里要挖一个下水道的时候,大家就知道怎么去做了。如果对门是怎么形状,如何安装,门锁是怎样的的都要一一描述的话,那么像鸟巢这
样的设计,谁能做啊?
软件产业发展的时间还比较短,还在不断的变化,对很多东西我们还没有形成共识,没有统一的概念。所以,当我们说要做某个东西的时候,我们还需要很费劲的把相关的细节描述了,还不能保证最后做出来是否就是我们想要的。我们需要建立更多的常识,以避免认识上的误差和降低沟通的成本。
DSL(领
域特定语言)就是这样的一个尝试,针对每个行业的软件应用,都建立专用的建模语言。因为每个领域都有其专有概念,特定的领域知识,使用特定的建模语言就可
以很准确且简洁的表达。随着行业应用的深入,大家就自然会达成共识(常识),形成标准,每个行业的软件应用应该是怎么模样大家都会知道得清楚,软件开发的结果就变得可预期,质量就有保证了。
生活中,我们也需要按照常识和惯例去做事,个人各司其职,才能有条不紊。
是因为需求定义不够明确?是因为设计文档不够精确么?的确,从需求到产品,有太多的细节需要考虑,有太多的变数,而需求和设计文档并不能面面俱到。
但是,你并不能要求建筑设计师把每一块砖都考虑到了。因为,建筑的很多环节已经形成了固有的约定,有了习惯的做法。所以,对于这些已经成熟的做法,你没有必
要多加描述,大家就会知道怎么做。并不是说下面的环节就很简单,只是说比较成熟,每个环节都有自己详细的规范,而相关的从业人员都有受过训练。所以,当建
筑师说这里要按一扇门,那里要挖一个下水道的时候,大家就知道怎么去做了。如果对门是怎么形状,如何安装,门锁是怎样的的都要一一描述的话,那么像鸟巢这
样的设计,谁能做啊?
软件产业发展的时间还比较短,还在不断的变化,对很多东西我们还没有形成共识,没有统一的概念。所以,当我们说要做某个东西的时候,我们还需要很费劲的把相关的细节描述了,还不能保证最后做出来是否就是我们想要的。我们需要建立更多的常识,以避免认识上的误差和降低沟通的成本。
DSL(领
域特定语言)就是这样的一个尝试,针对每个行业的软件应用,都建立专用的建模语言。因为每个领域都有其专有概念,特定的领域知识,使用特定的建模语言就可
以很准确且简洁的表达。随着行业应用的深入,大家就自然会达成共识(常识),形成标准,每个行业的软件应用应该是怎么模样大家都会知道得清楚,软件开发的结果就变得可预期,质量就有保证了。
生活中,我们也需要按照常识和惯例去做事,个人各司其职,才能有条不紊。
相关文章推荐
- 嵌入式软件开发需要学习的书
- Aitit aop之道 艾龙著 需要整合zop资料包东西 第1章 AOP的产生 1.1 软件开发方法的演进 1.2 AOP产生的前奏——把系统看做一批关注点
- 软件开发需要编写的那些文档
- 软件开发与业务中最需要工作流
- 一键Bat启动开发时所需要的软件
- 需要大量设计的软件如何进行敏捷开发
- 软件开发人员需要的不仅是技术,也不是文档,也不是管理,而是……
- 软件开发中需要克服的坏习惯
- 软件开发需要的十三类文档
- Android软件开发需要学什么
- 软件开发中需要克服的8个坏习惯
- 浅谈安卓手机软件开发UI设计师需要掌握的技能
- 个人开发软件也需要版本控制,谁有没有轻量级的版本控制推荐?
- 软件开发需要掌握的知识
- 软件团队建设和开发管理及十种需要掌握的关键技术
- 软件开发项目管理需要注意什么
- Android软件开发需要学什么
- 企业级软件开发需要什么样的框架?
- 开始软件开发生涯时你需要知道的几件事
- 软件开发需要重视对异常的处理