sap研发过程精要.docx
《sap研发过程精要.docx》由会员分享,可在线阅读,更多相关《sap研发过程精要.docx(11页珍藏版)》请在冰豆网上搜索。
![sap研发过程精要.docx](https://file1.bdocx.com/fileroot1/2023-2/8/aee73fb9-00c4-4653-b3c1-a72e9c4df487/aee73fb9-00c4-4653-b3c1-a72e9c4df4871.gif)
sap研发过程精要
SAP研发管理精要
企业管理本身流程错综复杂,用软件把这些错综复杂的关系梳理成一个智能、顺畅的“有机体”,又需要各种逻辑运算和数据处理。
不仅如此,面临几十个行业各不相同的需求和成百上千个企业各具特色的企业“个性”,同时又要组织遍布于全球各地几千人的开发队伍,SAP如何驾驭管理软件开发这一浩大的工程?
1972年,德国,曼海姆的IBM公司。
任职销售顾问的HassoPlattner在等待着公司对自己建议的回复。
他的建议就是开发财务软件包,用现成的软件包取代昂贵的定制应用。
当IBM公司回绝了他的建议之后,他和4名做软件工程师的同事离开了IBM,白手起家创办SAP软件公司。
而今,每天早上,世界500强中80%的公司都会进入由SAP公司提供的管理和协同商务平台,进行高效率的工作。
一向好斗、性格倔强、勇于接受挑战的SAP联合主席兼首席执行官Plattner在经历了SAP的诸多风浪之后,当他看到SAP在软件市场低迷的情况下,
2001年第三季度仍旧实现了赢利预期,前三个月的收入达到50亿欧元,收入增长率为23%,高兴地评论道:
“虽然近来软件市场,特别是美国市场有巨大的变化,客户纷纷推迟软件的购买计划,但对于现在最有效的解决方案,企业还是愿意投资的。
越来越多的企业转向SAP,因为他们相信SAP能给他们带来更高的投资回报率、更优秀的功能和便捷的集成。
”
这家总部位于德国沃尔多夫市,号称“全球最大的企业管理解决方案供应商、全球第三大独立软件供应商、全球领先的协同电子商务解决方案供应商”的软件巨人目前在全球的120多个国家和地区拥有1.65多万家客户,向全球提供基于“五大支柱”战略的产品,这就是mySAPSCM(供应链管理)、mySAPPLM(产品生命周期管理)、mySAPCRM(客户关系管理)、SAPPortals的EnterprisePortals(企业门户)和SAPMarkets的Exchanges(交易集市)。
而你是否知道,在全球,SAP拥有员工2.5万多名,在总部,SAP的开发人员有5000多名,而SAP的开发实验室和开发中心更是遍布全球多个角落:
德国慕尼黑,美国硅谷,法国,加拿大,中国,印度,澳大利亚,日本……如何调度这只由几千人组成的开发大军?
如何将几千人隐于无形的智慧聚合起来打造商业智能方案,而这方案又凝聚着来自世界顶尖企业先进的管理实践和管理理念?
董美婷,目前是SAP中国公司北方区咨询顾问经理,在负责整个咨询队伍的同时,还负责协同商务解决方案中心。
1997年6月加入SAP的她,有机会亲身体会了SAP研发的精髓。
刚开始加入SAP的她,担任技术顾问;1998年初,SAP中国公司成立开发中心,她担任开发中心的负责人;2000年,SAP投资1000万美元,组织30多个研发人员,建立了SAP中国协同商务解决方案中心,她被任命为负责人。
在此之前的9年时间里,董经历过中科院软件所和中国惠普两个单位。
董美婷以一个典型的中国开发者体验着SAP博大精深的管理软件研发过程,同时,以SAP中国公司技术总监芮祥麟为核心的研发队伍也逐渐被纳入到SAP全球研发计划中。
在咖啡厅、足球赛中工作
在SAP德国的办公室里,研发人员通常是4个人一组坐在一间20平方米左右的房间,他们使用那些租来的具备最高性能的设备,利用SAP自主开发或者第三方提供的开发管理工具,遵循着SAP研发“机器”特有的“程序”编程序、抓bug。
通常,他们会在宽带上浏览公司的公共平台或者互联网,以获得某一部分现成的可复制的文档,或者在自认为合适的时间学习e-learning课程(例如语言、项目管理等)。
而在公司里,咖啡厅可以供他们悠闲地坐下闲聊,SAP认为无论你聊什么,总会对工作有所帮助的,比如加深了了解和沟通。
而如果你觉得工作累了,设在公司内部的健身中心、网球场都可以免费使用。
每到周末大家可以开车到风光旖旎的小镇,在山顶的足球场上踢足球,附近的居民们会赶来加油、呐喊,足球赛会使很多平日里不认识或不熟悉的同事熟悉起来,他们在工作时需要协助或者讨论或者启发,这样他们会很容易地知道找谁合适。
而每一个月他们都会参加一项叫做团队建设的活动,大家集体出去,或者爬山,或者滑雪,总之是大家可以一起参与而又需要相互协作和沟通的活动。
SAP中国的员工每个月同样也会去参加团队建设的活动,而董美婷所带领的30多名研发员工也会在月中及时地聚在一起,讨论一个阶段以来在某些项目上的得失。
严谨的德国人对于写软件有着比打造精美工艺品更细腻的心思。
有时,一个字段会讨论上两个星期。
如果需要,随时会有一个非正式会议在咖啡厅开始。
对于产品经理的需求,他们会逐字逐句地推敲,以确定这是否就是客户工作所需要的。
值得一提的是,每天,SAP全球的开发人员都在使用着SAP独有的开发语言ABAP——高级商业应用语言展开工作。
SAP认为做管理软件并不需要追求技术的时髦,SAP看重的是:
满足需要,在功能、流程、速度、稳定性上的表现要优先于其他。
基于这种语言的技术平台还可以使SAP的产品与各种系统无缝连接。
管理软件“流水线”
通常,新产品或新版本的诞生,需要走过六道“工序”,这就是产品规划阶段(ProductPlanning)、需求形成阶段(Specification)、设计阶段(Design)、实现阶段(Implementation)、测试阶段(Test)和技术支持阶段(Maintenance)。
事实上,这六道工序并不像一般硬件产品的流水线那样,这六个阶段或者交叉,或者平行,总之构成了一个复杂的统筹项目。
由于SAP提供的各种解决方案要面对不同用户千差万别的功能需求,在项目开始之前,需要进行非常详尽的规划,以决定功能的取舍和增强,这一阶段决定着产品的发展方向,也是项目成败的关键。
同时,这一工作也要求参加项目的SAP和非SAP人员进行充分的交流沟通,从而为将来的开发打下基础。
特别是对于那些比较复杂、跨模块的项目,需要在模块间的功能开发和工作进度上作出统一的规划,以避免重复开发和集成问题。
通常,规划阶段的工作可以按三个步骤进行。
第一步是收集和评估开发需求,为新产品或升级现有产品而从各种渠道收集用户需求和意见。
如果是升级现有产品,则由开发组对开发请求进行评估,并作为新版本开发的基础;如果是新应用模块开发,则由项目的产品管理小组和开发经理对实际应用和流程进行分析,并提供粗略的开发计划,为下一步的决策做必要的准备。
第二步则是开发规划的决策阶段,主要是分析整个项目的可行性,以及确定项目开发的优先级,对于比较重要的或者是策略性的项目,通常是由部门主管或执行董事参与决策。
第三步,则需要制定详尽的开发计划,包括功能划分、工作分配、进度控制等。
走完规划阶段,项目组以及产品经理则开始对软件产品进行分析,确定各种用户需求的优先级,并决定哪些功能将在系统中实现,以及实现的程度和方式。
这一阶段的工作需要与用户及咨询顾问进行大量的面对面交流,在得到用户需求的同时,也需要将项目的进展及时通报,以得到反馈。
需求形成阶段作为开发阶段的基础,最终形成的需求文档需要从用户的角度对产品进行描述,对各种功能模块的描述要尽量明了,因为此文档也将是产品实现和测试的基础。
同时,文档还要就产品可用性、运行性能等方面进行规定。
当项目组拿到了具体详尽的需求文档后,设计阶段开始启动。
在设计阶段,由各功能模块的负责人组织小组成员,一起建立模型(如数据模型、功能模型、过程模型、对象模型等),创建必要的数据结构和函数,同时,对程度元素的命名原则、开发规范及模块间的接口等作出定义。
由此形成的设计文档成为项目实现的基础,并且是软件维护的重要参考,所以,此文档应当尽量详细。
此阶段的工作以用户需求为基础,为用户提供有效的解决方案,设计的好坏将直接影响到系统的功能和性能。
当某种功能比较复杂时,设计文档通常可以分成两类:
一类是粗略设计,参考系统中现有的过程、工具和函数库,以确定可以复用的对象,使用系统中现有的对象和技术可以提供新功能的可靠性,降低开发成本;第二类是详细设计,包括对数据字典、程序对象、用户界面、处理流程以及各个对象之间的接口定义进行详细的设计。
设计阶段之后,就进入了具体的开发阶段,即实现阶段。
实现阶段是以设计文档为基础来创建数据字典和程序对象。
SAP对ABAP程序开发有比较完整的指导文档,并要求开发人员按照SAP的开发规范创建用户界面。
在R/3项目开发中,规范性与技术同样重要,由于一个项目通常是由很多开发人员协同完成的,程序的可读性和详细文档对于项目来讲是非常重要的。
在开发的同时,文档开发人员为相应的功能模块创建在线文档、培训教材等必要的用户文档,这需要开发人员的密切协作。
此阶段同时也是开发测试阶段,开发人员需要对新的模块进行测试、代码检查、可用性测试等,并进行开发人员间相互测试,以便在开发阶段保证模块的质量。
实际的测试阶段从具体的开发阶段就开始了,此谓开发测试,而正式的测试则是在质量经理(QM)主持下,由质量管理小组、产品管理小组及用户共同参与进行非常完整、细致的测试。
它不只面对单一功能单元,而是根据用户需求文档、设计文档并按用户实际流程设计出测试文档,对系统的可用性、性能、用户界面、表达统一性、文档、翻译等进行全面测试。
同时开发人员需要密切配合,及时修改发现的错误。
测试阶段的工作是软件提供给用户前的最后一道工序,它直接关系到软件的质量。
所以,此工作需要非常周密的安排,就这个意义而言,QM也担负着保证软件质量的责任。
SAP的技术支持分成三级:
当地支持(LocalSupport)、地区支持(RegionalSupport)和开发支持(DevelopmentSupport)。
当用户遇到的问题无法由前两级完成时,这个问题就会送达开发人员,由开发人员确认错误来源,并提供正确的响应。
这一过程可以包括在用户系统中修改程序、文档,如果问题所涉及的功能比较广泛,SAP内部相关的开发人员会协同工作,共同解决问题。
随后的分析会对问题或需求有更加深层的总结,一旦需要,新的需求会被包括在新版本的开发中。
SAP还会提供HotPackages和HotNews,以帮助用户及时处理系统中的错误。
2
SAP研发管理精要
2004.01.26
管理Bug的“程序”
在董美婷看来,Bug产生的来源可以分为流程错误和程序错误。
流程错误是非常致命的,它会导致系统无法实现用户的需求,它通常发生于项目规划和设计阶段。
对于这方面的错误,SAP有相应的机制加以控制。
在用户需求分析过程中,产品管理小组与用户之间进行协同工作,同时经验丰富的项目经理和开发经理也会参与,最后形成的用户需求和项目规划文档还要由专门的小组进行周密的分析和检查。
尤其是在模块设计阶段,这种检查更加严格,通常这一阶段的检查是由资深专家组成的小组来完成的,其成员会有来自于其他项目的,从而保证了系统设计的质量。
程序错误是在所难免的,SAP除了利用测试阶段的工作来减少Bug的同时,还用以下手段在开发阶段尽可能地避免Bug:
①自我测试,要求开发人员在完成自已负责的模块后,马上进行测试,消除模块内部的错误;②相互测试,要求开发人员之间测试对方的模块,由于不同开发人员的思维、开发方式的不同,对方会很容易找到一些自已很难发现的问题;③代码检查,通常是由资深开发人员及开发经理来进行,从模块功能、性能、可用性、编码规范、模块集成性等角度进行全面检查。
这一工作会在系统实现的各个阶段定期进行。
SAP还提供了如CATT等辅助测试工具。
对于系统的后期维护阶段,SAP也有对Bug的完整的管理流程。
这可以以开发支持为例来说明。
例如,当用户系统发现Bug时,如果当地支持和地区支持都无法处理时,此维护请求会被提交相关负责的开发人员。
开发人员负责尽快修改用户系统中的Bug,或为用户提出修改建议和解决方案,同时,也需要在更正(Correction)系统中进行修改,以便以补丁(Patch)的方式提供给所有用户。
但对Correction系统中的修改有非常严格的管理,并需要一定的步骤:
①与开发经理讨论并征得许可;②在OSS系统中创建修改申请,并对Bug所在版本、症状、解决方案作出详细的描述和解释,作为用户/顾问将来处理此Bug的参照;③开发人员在Correction系统中修改程序,消除Bug,同时要求进行仔细的测试;④开发人员将修改请求转给另外的开发人员,通常是开发经理或资深的开发人员,由其来进行更严格的测试,此次测试不但要测试Bug是否真正解决,还要确认对程序的修改是否影响了其他程序或模块,以避免带来新的问题。
这些修改会定期以HotPackage和HotNews的方式提供给用户,用以修改用户系统中的Bugs,但由于R/3各模块之间的相关性/依赖性很强,Patch的发布需要各模块特别是应用模块与Basis模块之间的协调和同步。
开发系统梦之队
在SAP的开发系统中,七种角色的设计保证了整个SAP研发系统有条不紊、紧张有序地进行。
首先,在战略层面,不同的资深副总裁(SVP)
或副总裁(VP)会总体负责一个特定的领域,从企业战略高度出发把握系统的发展和开发方向,并对公司的产品结构和市场起着决定性的作用,同时控制产品开发的进展和成本。
其次,行业解决方案小组(IBS)和核心应用模块领导小组(Core)分别就各自管理的领域协调管理项目前期的项目需求、规划工作,二者也有非常密切的关系,即IBS就新的开发需求对核心应用模块提出新的开发建议并随时监控开发进展,而Core应用开发在开发产品的同时,会响应IBS新的开发请求,为新的解决方案提供支持。
在SAP,计划总监(ProgramDirectors)是一种特殊的角色,计划总监管理所领导部门的项目开发计划,负责开发资源的调配,根据项目分析方案决定项目最终的功能与方向,并监控具体项目的进展情况。
项目经理负责一个项目的计划管理,包括功能模块的划分、成本及开发进度的估算、资源调配、状态报告等,并负责协调产品管理、各开发小组、质量管理的工作。
产品经理(PM)和其领导的产品管理小组负责分析解释来自于用户的各种需求,并参与制定用户需求文档和开发请求,所以,全面的行业应用背景是对产品经理最重要的要求,同时也要求对R/3有一定的理解。
产品管理小组在整个开发过程还有其他工作:
①协助项目经理及模块负责人完成模块设计;②在开发阶段,与开发人员及文档开发人员密切协作,为程序开发和制作文档提供帮助;③参与系统测试,培训用户及提供咨询服务。
开发经理(DM)领导各个开发小组,负责分析用户需求(根据用户需求文档,同时也有可能直接与用户对话),规划设计所负责模块的程序对象,估计各个开发阶段的开发工作量和进度,从而对整个进程加以控制。
开发经理是SAP各项目开发中的中坚力量,也是SAP为此而自豪的精华,他们都有多年的开发和应用经验,对R/3系统及ERP系统有非常深刻的认识,从而保证了R/3系统的先进性和稳定性。
开发经理不但提供了系统设计,而且还要直接与开发人员交流,调配资源,保证系统的实现;同时,在系统测试、产品维护等方面也起着非常重要的作用。
应该说,开发经理是整个项目开发的核心。
通常,在一个项目中,产品经理和开发经理的配备比例是1∶3。
质量经理(QM)和其领导的小组负责根据用户需求文档、设计文档等设计完整的测试文档,并在产品管理小组、开发小组及用户/顾问的协助下完成对最终系统的测试工作。
质量经理往往要求对产品的实际应用、R/3技术甚至R/3项目的开发都有非常深刻的理解,而且经验也是很重要的一个条件。
作为系统的最后一关,SAP对质量经理的要求是非常高的,其结果是保证了R/3系统的稳定性。
SAP最基础的角色要属开发人员(Developer)了,他们负责实现设计文档中分配的工作,并向开发经理报告开发进度,协助文档开发人员完成文档撰写工作。
开发人员必须对SAPABAP开发语言非常熟悉,并能熟练运用各种开发技巧,同时也需要充分理解用户的需求。
开发人员在开发过程中允许更改设计,但必须与开发经理进行充分讨论并负责对开发文档进行修改,以保证二者的同步性。
在测试阶段,开发人员必须对测试的错误及时响应,以提供最有效的支持。
在开发人员中,还有一种特殊的开发者角色,可以称之为信息开发者(InformationDevelopers),主要负责系统语种的翻译(比如英译汉)以及部分词汇的修饰,他们不要求太懂开发,通常,对一些专门的翻译人才进行一些产品培训就可以从事信息开发的工作了。
每一个开发小组会配备4~5个信息开发者。
在SAP,还有一种角色就是文档经理(KnowledgeManager),文档经理及其领导的小组负责撰写在线文档、帮助文档、培训教材等,并将用户界面翻译成其他国家的语言,这项工作需要在项目其他成员的帮助下完成,并根据开发的变化及时更新文档。
SAP如何看待CMM?
SAP认为,在市场需求千变万化、技术发展一日千里的今天,软件企业经常会面临成本超支、产品交付延迟、软件质量不过关和客户不满意等问题的困扰,遵循一些成熟而规范的管理理论和方法,形成一套适合于企业自身情况的开发模式和质量控制体系将有助于企业解决这些问题,并降低项目失败的风险。
SAP认为自己一直在往这个方向努力,从管理和技术两个方面规范自己的软件开发过程。
除了前面已提到的关于开发队伍组织结构的建立和对软件开发周期各个阶段的定义等管理层面的问题之外,SAP引进软件工程的最新研究成果,提出诸如业务对象(BusinessObject)、业务应用程序接口(BAPI)等概念和技术,从软件构架的角度来优化开发和管理的过程。
3SAP研发管理精要
2004.01.26
作为两种提高质量管理的方法和工具,CMM和ISO9000系列之间并不是泾渭分明的,而是互有交叉。
SAP的质量监控体系虽然建立在ISO9000的基础上,但董美婷认为CMM所提出的理论和方法已经被SAP吸收和运用了。
事实上,无论是CMM还ISO标准,它们都只不过是一种规范和方法,企业最终的关注点应该是自身产品质量和管理能力的提高,也就是运用这些理论和方法后所取得的效果。
换言之,也就是说不能仅为了取得CMM资格而实施CMM,更重要的是如何采取CMM评估提供的科学方法来管理自己的企业。
管理软件与应用软件的区别
众周所知,企业管理软件的客户需求研究、软件开发过程、产品规划等有着一般应用软件所不同的特点,他们之间究竟有什么样的差别?
董美婷认为有四个比较明显的区别。
首先,应用软件在激烈的市场竞争压力下,对于功能的易用性、技术和性能都有很高的要求,需要不断提高在这方面的优势,以便在竞争中立于不败之地;而管理软件的开发则在此基础上,更注重系统如何能够真正反映和实现企业的运作流程,如何提高企业的工作效率和效益。
因此,在开发管理软件系统时,需要开发成员特别是产品管理人员、项目设计人员对解决方案所面对的企业有非常深刻、完整的了解,这也决定了在项目开发初期,与相关企业用户、咨询顾问的沟通成为项目成败的关键。
同时,企业的运作流程需要贯穿整个项目设计和实际过程,开发人员在实现设计之前,要对所负责的模块及其与模块之间的关系从应用的角度进行分析、理解。
而在开发过程中,还要不断与产品管理小组成员甚至用户进行及时沟通。
用户需求、企业运作流程、模块集成是整个开发周期中各个阶段讨论和研究的最主要问题,这会使企业的理念深入到系统中。
其次,ERP是一个系统工程,在企业运作过程中,各个模块之间有着极其密切的关系,比如财务、生产、人力资源等模块通常需要协同工作,系统需要在实现单一模块功能的同时,又要使企业作为一个整体来统一管理,由此,模块之间的接口和协调的重要性更加增强。
所以开发一个ERP项目,不仅需要对项目的解决方案有充分理解,还要同时与其他模块进行沟通,将项目作为整个系统工程的一个部分。
SAP在开发项目的过程中,会有一个特殊的工作小组来负责各个相关模块之间的交流和协调工作,这个小组既有专门人员,也有来自各模块开发组中的项目经理或非常资深的开发人员。
这保 证了R/3各模块之间不但能够实现技术上(模块接口等)的集成,也保证了在企业流程高度上的完全整合。
第三,作为一个通用产品,ERP系统需要面对众多需求不一、流程各异的企业,系统的可配置性、伸缩性就成为最重要的性能之一,特别是SAP
R/3系统,作为一个全球化的产品,在这方面的要求更加关键。
项目开发初期的项目规划阶段也主要是对此方面进行大量工作,因为并不是所有的需求都能在系统中有完全的体现,而是在综合研究了各类企业的需求之后,提出通用的解决方案,而对于比较特殊的需求,则通过系统的后期可扩展性来解决。
为此,SAP提供了许多技术来实现不同级别的扩展能力,比如,系统个性化设置、企业结构配置、用户二次开发等,并且已经在开发过程预留接口。
第四,在产品开发和测试阶段,ERP产品项目的开发人员组成方面与应用软件的开发有很大不同,最明显的一点就是用户和咨询顾问的参与性。
项目的开发和设计不但要及时与用户进行交流,而且也会有用户直接参与到这项工作当中,尤其在测试阶段,功能模块的正确性及性能可以由开发小组来完成,但对于流程的测试,用户和咨询顾问则是必不可少的,这也是验证系统可用性的关键步骤。
如何管理开发者?
招聘什么样的开发者?
SAP相信一个人只要具备了基本素质和某种职位需要的基本能力,经过SAP的培训就可以胜任相应职位的的工作。
比如你是应聘开发财务系统的,也许你是学物理或数学的,没关系,只要你具备基本的开发能力,SAP会给你足够的关于财务流程和业务方面的培训。
如何考核开发者?
除了考核进度、质量外,SAP还会考核个人的职业能力,以及工作态度和努力程度。
而考核的基础就是上年确定的绩效目标。
考核是为了发展开发者,不断培养资深的开发者,并为产品经理、开发经理等职位物色后备人选。
把问题消灭在萌芽状态
SAP倡导随时解决问题,到咖啡厅喝杯咖啡或者一个电话会议,随时把问题消灭在萌芽状态,因为问题淤积而导致招开又长又艰难的
会议在SAP是不受欢迎的。