从某牛人那里学来的单子,共享一下,该牛人的Blog在国内是上不去的,嘿嘿。

需要改正的

  • 做错的事情
  • 做的很草率的事情
  • 不该做的事情

我的话:很多事我们只是不去做,因为版本要保持兼容性,等等。其实很多很差的功能还遗留在系统中。当软件变得很庞大,我们不得不花很大的精力使得整个工具系统完备(这是个数学名词,呵呵),也就是是工具系统能够完成用户大部分的需求。如果那些不好的功能妨碍了我们,那就要考虑重构整个系统的工具的设计。

Bugs

  • 这是正确的
  • 找个办法绕过去
  • 这是个新特性

我的话:很多时候,我们对待bugs的态度就是这样。这也是对用户负责任(这么说听起来不对,如果做过长时间的产品发布管理就会明白这个道理)。不过这有个前提,那就是要保证你的软件经过充分测试之后,才发布。如果用户发现了愚蠢的错误,那就是我们开发者的错误了。

回归测试

  • 删除旧的混乱的代码
  • 重新开始开发

我的话:回归测试非常重要,如果没有回归测试,那就不要做上面这两件事情。

代码重构

  • 增加单元测试
  • 按照契约编程
  • 使用敏捷的开发流程管理
  • 使用.NET

我的话:我对.NET持有疑问。如果做行业应用,专业应用,可以使用,而且最好使用,这个可以提高效率。但是,对于CAD平台本身,最好不要用这个技术。实践证明过,嘿嘿。

国际化

  • 过程标准化
  • 本地化开发

我的话:良好的国际化工具很重要。最好做多语言版本的流程和开发分开。将需要做翻译的部分从开发系统中抽出来翻译,然后能够无缝的和发行版本结合起来,这就是这种系统的工作目标了。这需要在CAD软件架构设计之初就考虑到。如果已有架构,那就要考虑重构了。也有一些工具,可以直接翻译编译好的资源,但这个毕竟作用有限。翻译之外,更加重要的是:复查,这个需要有本地的工程师协助,使得符合本地的习惯。中国有中国的行规,翻译的人不一定真正了解。

运行效率

  • 大模型测试
  • 交互操作的效率
  • 多线程
  • 64位

我的话:这些都是金玉良言。很多时候忘了测试的东西。

缺少的功能

  • 知道的功能
  • 不知道的功能

新功能

  • 核心工具
  • API
  • 与行业习惯兼容
  • 生态系统,包括web service,SOA,twitter,youtube等。
  • 专业模块,包括钣金,模型,过程设计,知识管理。
  • 竞争驱动
  • 合同驱动
  • 用户希望功能列表
  • 合作伙伴需求
  • CEO的创意
  • 未来的趋

我的话:这里面既有新功能的来源,也有新功能的方向。

平台

  • 软件
  • 硬件
  • 新的开发工具
  • 更快,更好,更强壮
  • 能在手机上运行么?

我的话:手机是未来的方向,我们要密切注意这个趋势。还有微软的多触点技术,大屏幕显示技术,都是未来的重点方向。

更新

  • 新的建模核心
  • 新的约束引擎
  • 新的文件格式支持

我的话:在一个版本稳定之后,就不要随便增加新工具。如果用户需要,可以提高更新的频率。

集成

  • 自有的软件
  • 其他公司的软件
  • 能够帮助开发的软件