工欲善其事必先利其器。要提高多团队的开发效率,而且还是在SAP HANA平台上,建议大家还是本着“慢就是快”的原则,不要急功近利,在没有准备好团队开发的架构时就匆忙开始功能的开发。匆忙功能开发就算了,估计还存在没想清楚做什么,为什么要做上来就开发的团队,那是更要不得。

今天就和大家分享一下在SAP HANA上开发时的一些准备工作的方法。

方法一:基本无代码控制的手工作坊式的开发

利用SAP HANA自身带的HANA Repository, 所有的团队成员在同一个HANA Instance上开发。每个想测试自己的代码有没有问题,必须要先Active他的代码,然后才能查看他开发的结果。

这个方法好处是大家公用一个HANA Instance,对硬件资源要求比较小。

坏处也是显而易见的,1. 代码混乱不堪,最终除了能在这个HANA Instance运行起来,基本没有办法部署到别HANA Instance上。2. 基本上无法做代码审查。

特别是在有团队成员不遵守代码开发规则,随心所欲的去开发,那这个项目就准备去死吧。因为大家都在一个Instance上开发,有些active生成出来的表。后来其他团队成员把源文件移动到其他package下重新active,而原来生成的表还在这个Instance上。别人的代码中引用这个表,在这个开发的Instance你怎么运行都没有问题,但是你想把你的代码部署别的环境那就是遍地问题咯。查找修复问题是痛苦的。如果这个项目前期持续集成没做起来的话,兄弟你可以考虑收拾收拾走人了。

这种模式下,所有开发人员必须遵守游戏规则,不然基本就是死路一条,No zuo no die。

方法二:启用SAP HANA的change recording的功能

每次修改代码,active时都会要求把代码改动放到一个change list中

每个change list都可以添加contributor。每个contributor都approved这个change list,最终才能release change

只有release的change list才能被transport。

这个方法看起来很不错了。基本上有代码的版本控制,代码审查。似乎蛮完美的。的确普通小项目这样做做没问题。

问题在于你是一个多团队的产品开发,你得调和大家的口味。项目的UI部分它和HANA本身关系比较小,很多时候UI团队的人会使用其他的SCM工具比如GIT、P4、SVN等。这时候你想部署环境做个build出来怎么办?先去帮UI的build的一下,然后帮UI的部分部署到开发机上,接着在开发机到处delivery unit。

因为你的产品代码在两个完全不同的repository上,所以你的产品打包将会让你“爽死”。

方法三:使用市面上成熟SCM,比如使用GIT来做SCM

这是使用GIT的情况下的Landscape

这种情况下,又有两种办法去实现。

  1. 每个开发人员一个HANA Instance,所有冲突问题全解决。Pull、push代码,清理自己instance的环境,重新active自己项目,自己的新开发环境就完全好了。
  2. 利用regi maven的插件,使rootpackage可配置化,这样就可以使用一个HANA Instance。

以上的实现都是基于本地的HANA Instance,不是HANA Cloud。

基于SAP HANA平台的多团队产品研发的更多相关文章

  1. “多团队大规模”开发模式 - 基于SAP HANA平台的多团队产品研发

    应用SAP HANA “官方”开发模式的伙伴们在转到“多团队大规模”开发模式时会遇到各式各样的心理不适应的状况,各种纠结.比如GIT Repository和HANA Repository冲突什么的. ...

  2. SAP HANA开发中常见问题- 基于SAP HANA平台的多团队产品研发

    大家都知道SAP HANA项目打包成Delivery Unit(缩写为DU).依照"官方"的开发模式,特别是整个团队仅仅使用一个HANA Instance进行项目开发,因为HANA ...

  3. SAP HANA 开发模式 - 基于SAP HANA平台的多团队产品研发

    “基本”开发模式 Windows: Unix/Linux: 在基本模式下我们可以通过regi来进行激活我们的object.Regi是一个类git功能的,方便和HANA repository交互的一个命 ...

  4. 【公众号系列】SAP HANA 平台的优势

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[公众号系列]SAP HANA 平台的优势   ...

  5. 小团队产品研发管理V0.0.1

    序言 之前做研发的时候非常鄙视管理,觉得管理的那些人就知道搞政治,后来做了开发主管,以及到部门经理之后,管的人多了发现管理真是门大学问,真的应该每个人都要学习一些基本管理知识,特别是刚入社会的打工人. ...

  6. 企业数字化转型与SAP云平台

    我们生活在一个数字化时代.信息领域里发展迅猛的数字技术和成本不断降低的硬件设备,正以前所未有的方式改变着我们工作和生活的方式. Digital Mesh 美国一家著名的从事信息技术研究和提供咨询服务的 ...

  7. 如何在云端部署SAP HANA实战, Azure 上的 SAP HANA(大型实例)概述和体系结构

    什么是 Azure 上的 SAP HANA(大型实例)? Azure 上的 SAP HANA(大型实例)是一种针对 Azure 的独特解决方案. 除了提供 Azure 虚拟机以用于部署和运行 SAP ...

  8. 基于微软开发平台构建和使用私有NuGet托管库

    本篇blog包含使用TFS2017,VS2017等平台和工具搭建和使用NuGet库等基本过程,为团体提供更加自动化和高效的研发活动支持. 作为以产品线或者以专属业务为扩展的项目类型的软件研发团体,都会 ...

  9. 【HANA系列】SAP HANA SQL/MDX及TCP/IP端口介绍

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA SQL/MDX ...

随机推荐

  1. 【心情】2016ICPC青岛站打铁记

    Day0 下午到的青岛; 然后就在下面这两个地方转了很久:一直找不到公交站台 路上还看到了一个类似堡垒的东西:感觉屌屌的. 然后在落日的余晖下:我们找到了公交站台; 路上不知道他们在讨论什么:GPS什 ...

  2. java 读取项目外面配置文件的方法

    public static void loadProps(String propertiesUrl) { props = new Properties(); InputStream in = null ...

  3. MySQL中 MySQL X.X Command Line Client 一闪而过

    问题介绍:我安装完MySQL(我安装的是5.5)后,使用MySQL 5.5 Command Line Client,每次点击,总是一闪而过. 从网上我查了下,都是暂时的解决的方法,不能够解决使点击 M ...

  4. jQuery怎么选择两个class属性

    Jquery选择多个Class属性: $('.className1,.className2,.className4,.className5')

  5. winform - FixedDialog

    可以设置form的属性: 窗口样式: MaximizeBox  :  false       去掉 方法 按钮 MinimizeBox  :  false       去掉 缩小到任务栏 的按钮 禁止 ...

  6. 《modern operating system》 chapter 5 Input and output 注意事项

    Input / Output It should also provide an interface between the devices and the rest of the system th ...

  7. prototype __proto__ Function

    我们创建的每个函数都有一个prototype属性,这个属性是一个指针,指向一个对象.(注意:是函数才有prototype属性) 而__proto__属性每一个对象都有. 在js中如果A对象是由B函数构 ...

  8. Matlab Tricks(十五) —— 圆的正确画法

    使用参数方程, phi = 0:0.01:2*pi; x = cos(phi); y = sin(phi); axis equal plot(x, y) 根据参数方程,显然,圆心在 (0, 0),半径 ...

  9. adb删除系统软件

    ZTE V970Android OS 4.1.2OS version: LeWa_13.04.03系统内存划分很小,才500M. 幸好开发者设置里面有一项:ROOT 授权管理adb root // 没 ...

  10. Method for browsing internet of things and apparatus using the same

    A method for browsing Internet of things (IoT) and an apparatus using the same are provided. In the ...