工欲善其事必先利其器。要提高多团队的开发效率,而且还是在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. 求 1~n 之间素数的个数

    求1到n之间素数的个数 1. 筛选法 筛选掉偶数,然后比如对于 3,而言,筛选掉其整数倍数:(也即合数一定是某数的整数倍,比如 27 = 3*9) int n = 100000000; bool fl ...

  2. Android之assets资源目录的各种操作

    第一种方法:       String path = file:///android_asset/文件名; 第二种方法:         InputStream abpath = getClass() ...

  3. UWP 和 WPF 对比

    原文:UWP 和 WPF 对比 本文告诉大家 UWP 和 WPF 的不同. 如果在遇到技术选择或者想和小伙伴吹的时候可以让他以为自己很厉害,那么请继续看. 如果在看这文章还不知道什么是 UWP 和 W ...

  4. Swift语言高速入门

    Swift语言高速入门(首部同步新版官方API文档和语法的Swift图书,确保代码可编译,作者专家在线答疑,图书勘误实时跟进) 极客学院 编著   ISBN 978-7-121-24328-8 201 ...

  5. python 整数中1出现的次数

    把整数转换为字符串 用count计数 # -*- coding:utf- -*- class Solution: def NumberOf1Between1AndN_Solution(self, n) ...

  6. 理解c#

    首先在介绍c#的时候我们要先理解什么是.NET,.NET就是微软的用来实验XML,Web Services,SOA(面向服务的体系结构service-oriented architecture)和敏捷 ...

  7. [C++学习笔记14]动态创建对象(定义静态方法实现在map查找具体类名对应的创建函数,并返回函数指针,map真是一个万能类)good

    [C++学习笔记14]动态创建对象   C#/Java中的反射机制 动态获取类型信息(方法与属性) 动态创建对象 动态调用对象的方法 动态操作对象的属性 前提:需要给每个类添加元数据 动态创建对象 实 ...

  8. IEditableObject的一个通用实现

    原文:IEditableObject的一个通用实现 IeditableObject是一个通用接口,用于支持对象编辑.当我们在界面上选择一个条目,然后对其进行编辑的时候,接下来会有两种操作,一个是保持编 ...

  9. SecureCRT 专题

    SecureCRT在同一窗口打开多个标签:选中“在标签页中打开”即可 SecureCRT同时向多个tab窗口发送相同的命令 Step by step: 作为管理N台服务器,而又要执行相同命令又不想用脚 ...

  10. 如何诊断rac环境sysdate 返回的时间错误

    最近处理了若干rac环境访问sysdate错误的时间返回.而这个问题通常是一个数据库链接是由现在Listener创建的情况下.并且.大部分情况下都是和时区设置相关的.在这篇文章中我们会针对怎样诊断这样 ...