内容


Rational Edge

基于 RUP 应对 SOX 的“V-PRI-BAPE-CU”方法

Comments

系列内容:

此内容是该系列 # 部分中的第 # 部分: Rational Edge

敬请期待该系列的后续内容。

此内容是该系列的一部分:Rational Edge

敬请期待该系列的后续内容。

illustrationSarbanes-Oxley 法案1 (SOX) 于 2002 年正式生效,并宣称"通过提高依据证券法揭露的公司丑闻事件的准确性和有效性来保护投资者的利益及其他一些意图。"2 这部法案 — 带有66页正文及大量对道德规范(17处)和组织或公司的欺诈行为(45处)的参考 — 所针对的对象是“管理层”(引用18次)和“财务报表”(引用99次)。如果在工程和开发没有参考的情况下,认为那些对财务预算负责的管理人员才是公司里唯一需要遵守道德规范的人员,这一想法是十分天真的。

这篇文章的目的是告诉我们如何使用 Raitonal 统一过程(Rational Unified Process®或者 RUP®)的基本原理将行为道德规范引入到工程开发过程中。我的方法集中在RUP包含的十个关键概念中 — 前景、计划、风险、问题、业务用例、架构、产品、评估、变更和用户支持 — 我将之简称为 V-PRI-BAPE-CU。3 下面将依次讨论每一个概念。

前景

规划前景如同从SOX宣言中借用其语言并将其裁剪成工程语言一样简单。前景即为“通过提高依据工程道德规范揭露的工程丑闻事件的准确性和有效性来保护消费者的利益及其他一些意图”。工程部门维护用于揭露管理、合同以及特别是人力资源部门不良行为的前景文档。前景的执行应当包括详尽的程序来确保现状报告(花费、时间进度和已完成的里程碑)、工作量(定价)评估和员工相关活动(晋升、调动和辞退)等信息是正确可靠的。

计划

高层次的计划是为了衡量现有的行为准则并设计出与系统和软件工程相关的模式。详细的计划是通过 RUP 来执行它们并裁剪可应用的任务和活动来考虑开发团队的道德行为,特别是项目生命周期中所涉及的个体。通过使用的详细条款,RUP任务“处理例外和问题(Handle Exceptions and Problems)”与SOX语言完美的结合在一起,同时通过管理问题的报告与传播也被关联起来。这一语言将作为连接行为准则与开发过程的桥梁。

风险

与SOX遵从相关的风险是很高的。与道德规范和行为相关的演练程序不仅是一件危险的事情,而且是一件与法律相关的事情,这就是为什么大多数道德行为执行官都是律师。缓解个人情绪是为了提供立即的、直接的、但不连续的、有关行为准则折衷的交流。每周的状态报告对于计划的管理与监管人员进行问题的沟通是一个很好的方式。减轻管理是为了在一个常规的基础上确保报告信息的可见性,同时为员工们提供了一个独立自主的(不受监控)、但并非匿名的方式来提高他们对道德规范的关注。

问题

在这个环境中,问题包括个人选择的结果,特别是挑战一个人的行为准则的需求。这些问题的处理对于创建 SOX 以及推动将有关行为准则的具体行为融入到报告和监管过程来说是一个前提。项目的管理人员在定期的和事件驱动的基础上,更新和维护 RUP 中的工件问题列表(Issues List)。对于高级管理人员来说这是一个审计并观察某些迹象的绝佳工件,这些迹象将显示存在于某个个人在现状报告里填写的内容与项目正面临什么问题,或者还有什么问题没有被解决之间的冲突。

业务用例

好的道德规范对业务来说是有利的,SOX 对这样一件事情有明确的说明:“执行官”(被提及66次)与“高级管理人员”(被提及5次)对他们所在组织的道德行为完全负责。以提高并寻求行为准则折衷为目的的为基础组织的发展所做的投资回报是很难进行量化的。尽管如此,但是回顾过去四年里有关这些折衷的国内(美国)的重要事件,可以看出将规范的商业实践与企业稳定性连接起来是十分重要的。

架构

对于SOX在架构方面的遵从来说,架构的设计模式 - 责任链(Chain of Responsibility) 4 - 是一个合适的模型。此模式被给定了名称、描述以及协作,甚至还被给定了能够满足 SOX 精髓和目的的结果。在这一模式下,客户是提高道德关注的个体, 具体的处理者是从组织的最低层到高层的管理链。处理者可以选的,但是根据利害关系客户的监管者可以担当这个角色。这种模式有很多结果,目前最关键的是指令接收不能被保证,而且客户可能不知道谁在处理他们的请求。这突出两点风险:一个是对个体来说谁在为他们提供支持,一个是对高级管理人员来说谁在处理他们的请求。对于个体来说缓解这个风险的方法是围绕所关注的事情完整的记录所有的活动,包括谁、在什么时间以及在什么地点做了什么事情。而对于管理人员来说缓解这个风险的方法是审核报告流程并且了解是“谁”处理了这些请求,并且是“如何处理的”。

产品

无论对于员工们提高对道德规范的关注,还是对高级管理人员作出对道德规范的折衷,“产品”是一种以程序作为形式的解决方案。要完全实践这一程序,需要包括四个步骤,并且要通过 RUP 任务的实现来处理问题和例外情况以将道德规范融入到工程开发过程中。在任何一个步骤,个体可以决定是否继续在最佳实践、公司政策或者道德规范中接受自我教育。下面是四个步骤:

步骤1:在道德规范中找到适应情况的两项实践。第一项实践是描述什么真正地看上去是主要问题;第二项实践是仔细检查来帮助个体们“知道什么时候离开”或者如何“挑毛病”。第二项实践对他们来说也是一个机会来降低被感觉到的找茬儿或者仅仅为了挑毛病而吹毛求疵的风险。举一个会议的例子,在会上工程状况正被报告给管理人员。让我们假设工程以高级工程师的劳动成本来评估(也就是高成本),但是实际上工作是由更多初级工程师来执行的(也就是低成本)。如果报告给管理的信息只是成本,那么将出现的情况是项目正在按照预算进行。但是如果初级工程师真的工作了更长的时间,那么将可能出现超出预算的情况。在这种情况下,管理人员并不了解有关与估计进行比较的实际执行工作的所有参数。真的到了初级工程师追赶进度然后超出高级工程师的成本的时候,再回过头来使项目回到正规可能就太晚了。并不是所有的数据都被报告出来,数据也不是自始至终都被评估和跟踪。

步骤2:文档化或者收集两个简单例子来支持步骤1中的每一项实践。此外,找到两篇文档来帮助仔细的检查,这与众多行业中的索赔实践是一致的。例如,在医药行业或者保险业的索赔处理,第二次主张、第二个检验人员或者对于损害的二次评估通常足以证明索赔的有效性。

步骤3:为你的项目经理或者审查人员、监管人员或者道德规范执行人员提供道德规范准则,并且突出两项实践以及步骤2中的例子,要求他们以RUP 中任务的命名进行“处理”。完成这个的一个很容易的方式是在每周的现状报告中提供它。

步骤4:文档化日期、时间、包含的个体和用来交流问题的方式(电子邮件、语音邮箱、面对面)以及项目和(或)组织问题解决过程中所必需的其他信息。建立一个个人的记事本是实现这个步骤的好方法。

实际上,在软件开发过程中上面为任务所描述的解决方案经常会涉及到财务方面的信息。当专业的工程组织有很多的行为准则时,专门为软件工程设计的那一个提供的是一组详细的条款,而不仅仅是抽象的规程。软件工程的道德规范和专业实践(5.2版)5 包含了预期行为的8条规程,被分成80条实践(又叫条款),提供给软件工程专业人员。

其中有涉及财务信息的5项实践,包括软件成本、花费(以劳动力的形式)、评估和有效性。我将通过其中两项举例说明。根据条款3.9,软件工程专业人员将“确保对他们正在工作或计划工作的任何一个项目的成本、时间安排、人员、质量和结果进行有效定量评估,并提供这些评估的不确定性评估。”依据条款4.4,软件工程专业人员“绝不参与欺诈性的金融行为,如行贿受贿、双倍开帐或者其他不法的金融行为。”

RUP 任务”计划阶段与迭代(Plan Phases and Iterations)“ 和 ”进度计划与工作分配(Schedule and Assign Work)“都由项目经理来执行,为个体们提供机会以确保对于被报告的工程时间的数字以及工具和劳动力的成本都是建立在经过证明的、可重用的并且是可防御的信息基础上的。他们也要确保信息的来源是可靠的、已记录的并且被保存。如果数字被认为是“捏造的”或者信息的来源不为人所知或者并不适当,那么个体应该提高关注度,并且举证被质疑的规程和价值。

如果项目经理与所有者一样在问题解决中出现利益冲突该如何处理?在这种情况下,个体应该请教项目审查人员、中立的管理人员甚至一位监管人员来解决这一冲突。然后个体将仅仅记录重要的信息,包括主题事件、方案识别、日期、时间以及其他任何一些对项目或组织的问题解决流程/程序必要的东西。然后个体必须回过头来独自处理被指派的项目任务并且让管理人员处理指派给他们的问题。

评估

在使用V-PRI-BAPE-CU程序中,自我评估和独立评估对于取得成功的结果都十分必要。由个体引导的对关注事件的自我评估,通过在提出问题前要求两项实践和消息来源的程序步骤来实现。这给个体提供了充分分析情况的机会,这将使他(她)对关注的事件保持轻松的状态,或者从另一方面说如果找到确凿的证据,可以增加坚持的信心。独立评估被包含在IEEE标准中,并贯穿于的实践 7.8 中:“在那些超出他们自己能力范围的情形中,请教其他在这一领域里有能力的专业人员的意见。”自身的仔细检查和资深人士的协助/指导将帮助确保实践过程的高质量结果。

变更

如果一个组织的员工行为准则有问题,那么个体行为的变化必须被实现来解决这个问题。一个积极的改变将以员工再分配中较低流失的形式出现。而不是简单的将那依据人力资源政策受到处罚的违反规定的雇员们从一个项目换到另一个项目,以避免对道德规范折衷的修改,或者从观察和报告问题的角度,管理人员将那些警觉性高的雇员留在项目中。高级管理人员可以得到这些信息,而且这些信息很容易被量化;他们只需要询问情况并理解为什么雇员一直在公司内部调来调去 — 或许更重要的是 — 离开他们的公司。提出关注事件的个体应该寻找他们所做的或者听说的一些与以往不同的事情的积极迹象;例如,他们应该期待和观察与他们提出的问题相关的由管理层作出的组织标准和程序以及/或者项目程序的修改。

用户支持(以及过程)

如在“道歉并继续前进”一样,对欺骗、欺诈、说谎以及行为准则中其他的苛刻条款的指控构成了严重的,不容易被控方收回的判定。RUP包含期待的技巧水平、能力、角色的责任和执行任务的细节,同时也包括一个为工件制作的检查列表,使用这个列表个体能够衡量他们对道德行为准则的观察;所有这些元素能够帮助个体和管理人员评估控告的有效性。如果一个个体缺乏对指派任务的某种特定技能 — 假设是,以代码行的形式对一个软件模块进行工作量的估计 — 那么也许仅仅是因为缺乏技巧任务将不能被正确的执行,但不会有欺骗性的实践。但是考虑这样一种情况,一个高级软件工程师使用工具根据实际的代码萃取了代码行的估计;雇员可能有很优秀的软件估计技能,但对组织来说这是一个问题。在这个例子中更重要的是,RUP能够为团队中个体提供一种语言来提出与将要执行工作的期望(输入、输出和步骤)和工作成果(检查列表)的质量相关的问题。

结束语

通过 RUP 中定义的角色和任务来实现 Sarbanes-Oxley 精髓,为高级管理人员实现道德规范实践提供了一个现实的起点,以及使他们理解在他们的组织里什么能够被做以使所有的员工都能够完全遵守道德规范。随着RUP在行为准则方面的不断扩充,至少可以确保软件财务信息是正确可靠的。

尽管如此,更多的是要符合行为准则而不仅仅是揭露财务状况。同行评审能够帮助管理人员找到方法来改变与管理过程相关的政策和程序。RUP任务,建议“评审你的结果(review your results)”,对个体来说意味着实践规范的机会,正如相关的实践条款 7.04 描述的:“以一种客观的、公正的和合理记录的方式评审其他人的工作。”SOX 提及“评审(reviews)”65次,这些评审对管理人员了解他们的雇员们的道德行为是最好的机会。

参考资料

1 Sarbanes-Oxley PO Box 7752, Huntington Beach, CA 92615 Contact: info@sarbanes-oxley.com

2 美国国会图书馆 H.R.3763 http://thomas.loc.gov/cgi-bin/bdquery/z?d107:H.R.3763

3 查阅 "The Ten Essentials of RUP The Essence of an Effective Development Process," Leslee Probasco, IBM Rational 白皮书,http://www.cin.ufpe.br/~hfn/Rational%20Software%20-%20The%20Ten%20Essentials%20of%20RUP.pdf

4 由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 合著的,《Design Patterns:Elements of Reusable Object-Oriented Software》,Addison-Wesley 1995 年出版。

5http://www1.acm.org/serving/se/code.htm


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Rational
ArticleID=159935
ArticleTitle=Rational Edge: 基于 RUP 应对 SOX 的“V-PRI-BAPE-CU”方法
publish-date=09142006