我可能很快就会使用Siebel CRM,并且正在寻找有关使用现代开发实践和企业最佳实践的建议。
具体来说,我想在以下方面提供建议:
我们应该如何设置版本控制(特别是Subversion)?我们的存储库应采用哪种结构?我们应该如何处理分支和标签?
我们如何进行代码审查?我们如何看待通过Siebel Tools进行的配置更改,这些更改不一定具有任何“代码”?我们希望审查这些变更,以确保质量和知识转移,以及遵守变更管理政策。
哪种变更管理可以与Siebel一起使用?当我们进行新的部署时,我们如何验证只有更改日志中列出的内容才被更改?
我们如何自动测试应用程序?使用Siebel甚至可以进行单元测试吗?我看到了另一个建议将QTP用于Web测试的问题,但是还有其他可行的选择吗?
在我们的Siebel开发工作中,我们还能做些其他事情来实施持续集成实践吗?
您对命名约定和传统上属于“编码样式”准则的其他内容有什么建议?
我们应该如何区分开发角色和Siebel管理员角色?我们的构建/测试/部署周期应该是什么样的?
为此,我不太可能获得任何新的昂贵工具,但是如果有一款付费工具能够提供真正的ROI,请随时提及。
如果您还有其他建议,但我的问题之一未特别解决,请随时添加。
最佳答案
我们应该如何设置版本控制(特别是Subversion)?
使用Siebel工具文档中提供的指南。但是请注意,Siebel并不是从SVN中的文件生成的,因此它仅可用作存档工具;您无法管理代码或无法通过SVN进行构建。
我们的存储库应采用哪种结构?我们应该如何处理分支和标签?
Siebel开发代码不是在SVN中构建或管理的,因此这是一件毫无用处的事情。只需记下构建SRF并导出回购并与SVN中的标签或分支匹配的日期即可。
我们如何进行代码审查?我们如何看待通过Siebel Tools进行的配置更改,这些更改不一定具有任何“代码”?我们希望审查这些变更,以确保质量和知识转移,以及遵守变更管理政策。
使用Siebel工具执行此操作。它具有一个内置的“检查”工具来检查明显的错误(所有开发人员都应在签入之前使用此工具)和一个差异工具(您将需要检查同一对象的旧版本-您可以将其拖出SVN如果你想)。我通常每天一次使检查工具自动化,并查看输出日志,并每天5次从Siebel服务器自动进行构建,并在编译期间查找错误。可以通过SVN和标准的diff工具进行比较,但是Siebel对象在SVN中存储为类似XML的文件,因此有时很难读取。
哪种变更管理可以与Siebel一起使用?当我们进行新的部署时,我们如何验证只有更改日志中列出的内容才被更改?
?
我们如何自动测试应用程序?使用Siebel甚至可以进行单元测试吗?我看到了另一个建议将QTP用于Web测试的问题,但是还有其他可行的选择吗?
QTP是标准的处理方式-在Oracle网站上查看他们可能推荐的其他供应商。您也可以尝试Sikuli。
在我们的Siebel开发工作中,我们还能做些其他事情来实施持续集成实践吗?
并不是的。
您对命名约定和传统上属于“编码样式”准则的其他内容有什么建议?
查看Siebel书架的相应部分以获取当前的命名准则,并始终使用这些准则。
我们应该如何区分开发角色和Siebel管理员角色?
不明白你的意思。
我们的构建/测试/部署周期应该是什么样的?
每晚构建一次新的SRF,并从Dev导出新的Repo。一旦所有开发工作都已签到并完成单元测试,请使用下一个SRF和Repo并进入测试环境。此时,在常规软件开发中,您需要分支SVN并继续在主干上进行开发,但是Siebel有所不同,因为您无法从SVN进行构建,并且无法轻松地将大量文件从SVN还原到构建环境中,因此,最好在开发人员(并暂停主线开发人员的开发,直到完成)或测试环境中进行测试的热修复,并在开发环境中进行丑陋的反向移植(实际上,这是大多数人所做的)。每晚一次构建一个新的SRF并从Test导出一个新的Repo,一旦情况良好,请为您的生产版本获取一份副本。
尝试坚持不超过4周的周期(用于设计/原型的周期为1周;用于开发/原型的周期为1周;用于测试/测试的周期为1周;用于错误修复和部署的周期为1周)-超过此周期,规划的开销将变得越来越大大。
简化生活的提示:避免在业务服务中使用eScript(否则它将变得难以管理);使用所有Siebel内置工具,而不是自己动手;尝试避免任何汇总功能(这似乎总是一个好主意,但始终会破坏性能);将屏幕和视图的数量保持在最低限度;当您应该构建报告时,不要构建视图;始终确保EIM表与您进行的模式扩展匹配-即使您现在不使用EIM;尝试构建集成对象以匹配您的逻辑模式-它们始终是有用的(对于Web服务,XML发布),事后要做的工作很艰辛;与运行时事件相比,更喜欢工作流策略;永远不要添加没有索引的新排序或搜索规范;不要通过引用链接到LOV表;总是打补丁;如果供应商没有说您可以做某事,那就永远不要做。