UML软件工程组织

.NET 的商业价值
转自:microsof 作者:Paul D. Sheriff
摘要:从投资回报率得到提高这一角度,讨论在 .NET 平台上开发软件的商业优势。从长远来看,.NET 可以降低开发、维护和部署成本。

当今的企业正在期待 IT 部门来证明它们在组织内部存在的价值,而 IT 部门所做的工作可以增加收入或者降低成本。IT 部门行动迟缓、效率低下以至于无法满足上述目标的日子一去不复返了。为了帮助 IT 部门使其目标与企业的目标保持一致,这些部门需要选择正确的技术来开发战略性的应用程序。您需要一种能够减少开发时间并产生优质、可靠、可伸缩的应用程序的技术。Microsoft® .NET 开发平台非常适合于这一任务。

在本文中,将向您提供有关 .NET 的概述,并且了解您在开始使用这一强大框架时能够得到的真正好处。您还将学会如何计算投资回报率 (ROI),以帮助您证明 .NET 确实有助于开发能够满足企业目标的应用程序。

“.NET 是一个卓越的战略,它使 Microsoft 能够定义软件企业中的下一次变迁。”
“Gartner 相信 Microsoft 现在将比其他任何供应商提供关于该变迁的更多的美景和影响。”
— Gartner Group

.NET 快速概述

Microsoft 已经创建了一个全新的开发平台。该平台是从无到有编写而成的,目的是克服在应用程序开发中普遍存在的许多问题。即:开发时间太长、无法快速更改应用程序、软件的总拥有成本过高以及部署困难。

可以用 .NET 创建的应用程序的类型

在了解 .NET 的真正好处以前,您需要首先了解一下可以用 .NET 创建的一些不同类型的应用程序。下面是可以使用 .NET 平台创建的一些应用程序类型的列表。

客户关系管理

计帐应用程序

产品/库存应用程序

使用手持设备的仓库应用程序

Web 站点

价值链/供应管理

通过 Internet 与合作伙伴进行集成

XML Web 服务

PDA(手持)应用程序


NET 提供许多功能

.NET 包含一个可重用的类库。(类是帮助开发人员创建应用程序的小型组件。)它还包含一个可以帮助开发人员以图形方式快速生成应用程序的开发环境。Microsoft 和其他许多第三方供应商正在生产大量的书籍、文章、示例代码、专用组件和其他各种资源,以便使得向 .NET 的迁移变得容易一些。

.NET Framework 是 Microsoft 开发的未来。事实上,即将问世的、代号为“Longhorn”的 Microsoft® Windows® 代码版本是在 .NET Framework 基础之上生成的。所有操作系统函数都将被封装在 .NET 内部。这意味着,您现在对 .NET 进行的所有投资将在以后许多年里给您带来回报。

一切都与回报有关

当一个企业决定开始一个软件项目时,该企业应该关心此项目将需要多长时间,以及需要多久才能收回投资。这称为投资回报率 (ROI)。ROI 的计算方式随项目和公司而异,但这是在开始软件项目之前必须采取的重要步骤。

可以将 ROI 分解为两个不同的部分:效益回报时间。效益是能够降低公司的运营成本或者增加公司的收入的任何东西。回报时间是指公司在提供资金来开发应用程序之后多长时间才能见到效益。其他不易计算的回报也可能非常重要。例如,改善客户服务可能很有价值,并且它可能需要进行投资才能实现。不易计算的效益很难加以量化,但应该包含在 ROI 中 — 如果不是以定量的方式,那么就用定性的方式。

如何计算 ROI?噢,那并不总是一个易于回答的问题。原因在于并非所有因素都可以立即加以度量。有时,在应用程序完成之前甚至无法度量这些因素。但是,您将需要对效益进行某种估计以便预先计算 ROI。ROI 难以计算的另一个原因在于公司可能从应用程序中收到的软性效益。例如,软性效益可能是员工工作满意度方面的提高,或者员工的工作变得更加安全了。其他软性效益可能是减少将产品投放市场所需的时间、提高客户满意度和/或保持度。上述因素中的某些因素难以度量,但在计算 ROI 时应该进行一些尝试。

一些示例 ROI 计算

通常,通过将在部署的第一年中获得的效益除以开发应用程序的总成本来计算 ROI。回报时间是简单地按照偿还最初投资(单位为人民币元)所需的时间来计算的。这可以通过获得成本并将其除以单个月的节省金额算出来。

realworld05042004_fig01

图 1. 计算投资回报率 (ROI)

让我们假设创建一个新的应用程序以接受产品定单花费了 100,000 元。但由于定单软件效率更高,因此使您每天可以接受更多的定单。这一增加可使下一年度每个月的销售增长 25,000 元。这相当于每年从新业务中获得 300,000 元。如果用 300,000 元除以 100,000 元,则得到 300% 的投资回报率。因为开发耗费了 100,000 元,而销售增长了 25,000 元,所以将 100,000 元除以 25,000 元,得到回报时间仅为 4 个月。

另一个示例是创建一个应用程序,以使您可以实时跟踪库存,并且以更为有效的方式再订购。如果这一实现花费了 500,000 元,但每月能够节省 50,000 元,则 ROI 为 120%,回报时间为 10 个月。

ROI 意味着什么

正如前面提到的那样,考察新的软件系统如何增加收入或者降低成本是很重要的。但是,您还需要考察开发该应用程序所花费的成本以及将需要的时间。如果开发应用程序的成本过高(在时间和资金两个方面),则对于高级管理人员而言,回报可能不值得付出这么高的成本。CIO 或 IT 技术总监的工作是确保他们可以准时地按照预算开发出应用程序,以便达到预测的 ROI。

.NET 和 ROI

综上所述,重要问题在于 .NET 如何有助于提高 ROI?有许多原因使得 .NET 有助于您提高 IT 组织的效率,并且证明该组织在公司内部存在的价值。

首先,Microsoft 在 .NET 中放入了如此多的可重用代码和可重用组件,以至于开发人员将不必编写这么多的代码。这意味着开发应用程序需要的时间更少了。如果应用程序的开发需要较少的时间,则它们的成本较低,因而将具有较高的 ROI 和较短的回报时间。这意味着您的应用程序更有可能帮助公司增加收入或者降低成本。

“.NET 是我们认为将成为第三代 Internet 应用程序的主导体系结构模型的第一流的示例。”
— Patricia Seybold Group

可伸缩性

.NET 有助于提高 ROI 的另一个原因是可伸缩性。许多公司开始时很小,但可能非常快速地发展。当发生这种情况时,通常会对现有的 IT 基础设施和在该基础设施上运行的应用程序施加巨大的压力。.NET 在设计时考虑了可伸缩性。因此,随着您的公司的扩大,您的应用程序可以扩展并支持额外的负载。这意味着修改和重新开发并非针对大型负载设计的应用程序需要的时间较少。

可维护性

降低软件的总拥有成本是非常重要的。毕竟,如果维护成本胜过了最初开发应用程序时预先节约的成本,则这些节约措施就没有多大意义。.NET 应用程序非常易于维护,原因在于无须重新编写代码就可以修改配置设置。这使得维护变得更快、更容易,从而降低了总拥有成本。

部署

另一个能够降低总拥有成本的因素是部署。过去,部署应用程序有时是非常困难的。这有许多原因,但最常见的原因是必须在计算机上部署和注册大量的 DLL(动态链接库,或一个文件中的可重用代码)。确保所有 DLL 都可以在单台计算机上共存有时是非常困难的,而管理不同的版本可能成为恶梦一般的经历。

.NET 平台通过允许同一 DLL 的不同版本并排存在于同一计算机上解决了这一问题。现在,技术支持人员将不会因为用户从 Internet 下载了某个彻底破坏了他们计算机上的关键 DLL 的程序而被要求去解决问题。

可靠性

.NET Framework 已经证明它自己在生产应用程序中是非常健壮和可靠的引擎。自从 2002 年首次发布以来,它已经被用于开发成千上万个大大小小的应用程序。系统支持人员已经对在 Microsoft® Windows Server™ 2003 和 Windows 2000 Server 上运行的 .NET 的可靠性感到非常满意。.NET 具有许多可以确保系统保持正常运行的内置“分权制衡”机制。这再一次具有商业价值,因为您不希望您的电子商务站点或任何其他业务线应用程序失败。

安全性

安全性从一开始就被设计到 .NET Framework 中了。它不是某种被附加到现有产品上的东西。因此,.NET 的安全性功能是第一流的。即使应用程序中只存在一个可能被黑客利用的安全性缺陷,也会使企业花费大量金钱。有时,如果该漏洞众所周知,则对于公司而言可能是致命的,因为这可能使客户对该公司怀有的信心下降。

跨平台

.NET 使开发人员可以开发面向桌面、浏览器、移动浏览器(与手机上的浏览器类似)的应用程序或在 PDA 上运行的应用程序。关于 .NET 的最好的一点是,开发人员可以对上述不同类型应用程序中的各个应用程序重用大量相同的代码。他们还将使用相同的开发环境和相同的开发模式。所有这些都有助于在这些新环境中工作的开发人员能够比被迫对各个环境使用不同的工具的开发人员更快地工作。

面向服务的体系结构

最近,每个人都在谈论 Web 服务以及与他们的客户相集成。.NET 通过使在公司内部创建面向服务的体系结构变得容易,在这一趋势中成为领先者之一。这意味着将开发能够从许多不同的应用程序中使用和重用的小型可重用服务。这些服务应该能够直接从组织内部的应用程序中调用,并且能够直接通过 XML Web 服务跨越 Internet 调用。这使公司可以发布一个规范,从而使供应商能够采用比使用传真、电话或电子邮件有效得多的方式与该公司进行通信。

realworld05042004_fig02

图 2. 主要 Web 服务供应商之比较

与现有应用程序的互操作

每个开发组织都具有他们已为之投入时间和精力的现有代码。许多经理将 .NET 视为对他们的现有代码基础的威胁。无论这些现有应用程序是用 C++、Microsoft® Visual Basic® 6.0、Microsoft® Visual Basic for Applications 还是 Java 编写的,.NET 都不会以任何方式妨碍这些应用程序。另外,.NET 可以使用它的互操作性功能与几乎任何现有应用程序交互。能够利用现有代码,就可以降低向 .NET 进行迁移时的成本,从而再一次提高有效的 ROI。

与旧式系统的集成

对于许多大型组织而言,一个棘手的问题是需要与现有的旧式系统相集成。借助于 .NET 能够使用任何类型的 XML 文档以及快速而容易地编写任何格式的文件的功能,可以用多种方式来执行集成,包括:XML Web 服务、Microsoft® BizTalk® Server、消息处理(MQ Series、MSMQ)、数据访问(OLEDB、Microsoft® SQL Server、Oracle®)、自定义文件格式以及许多使您可以直接与大型机通信的第三方实用工具。

如何开始使用 .NET

对于组织而言,迁移到一项新的技术总是令人害怕的。尽管 .NET 很大,但向其进行迁移并不是那么困难。因为它将与现有应用程序共存,所以无须重新编写旧的应用程序。您只须用 .NET 编写新的应用程序,并保持较旧的应用程序不变。但是,应该完成几项工作以便为迁移到 .NET 进行准备。

硬件/软件

准备将任何较旧的硬件和较旧的操作系统升级到较新的硬件和较新的操作系统,以确保可以充分利用 .NET 功能。确保在公司中安装的任何新系统上加载 .NET Framework。这将使开发人员能够更快速、更容易地使应用程序面向这些计算机。

培训和开发人员软件

在用 .NET 完成第一个项目之前,需要对程序员进行一些培训。这将耗费一些金钱,但非常值得。一名普通的开发人员可能消耗大量时间,试图钻研完 Internet 上的所有长篇累牍的白皮书、文章和书籍,以便了解一名有经验的 .NET 培训讲师只需几分钟就可以教会开发人员的知识。

当您的程序员员工开发他们的应用程序时,您将需要为每个程序员购买 Microsoft® Visual Studio® .NET 的副本以供其使用。这些培训和软件成本将可能需要分解到头几个项目的 ROI 中。

程序员需要培养哪些类型的技能呢?程序员的培训应该包括诸如 XML、HTML、.NET 语言之一(如 Visual Basic .NET 或 C#)之类的主题。程序员还应该接受系统分析和设计以及体系结构方面的指导。

体系结构和 SDLC

仅仅因为已经购买了 .NET 并且培训了开发人员,并不意味着每个人都将变戏法似地提高工作效率并成为比较好的程序员。您需要为每个人的开发工作奠定一个良好的基础。架构师可以帮助您在 .NET Framework 之上设计一个良好的基础,以便处理许多常见的业务问题。该架构师还应该协助您准备软件开发生命期 (SDLC) 文档,该文档将成为 IT 部门的管理文档。该 SDLC 将指定如何开发、维护、测试、投产应用程序,以及将使用哪些标准来产生应用程序。通过完成这一工作,可以确保所有应用程序都将符合一个将存在许多年的已知模型。这将使应用程序的维护变得更加容易,并且降低总拥有成本。

如果公司员工中没有架构师或具备大量 .NET 经验的人,则花费时间和金钱雇人来履行这一职责可能是值得的。良好的体系结构可以使您节省数千小时的编码和开发时间。如果您的员工无法胜任这一工作,请确保找到一家 Microsoft 认证合作伙伴来帮助您采取这非常重要的第一个步骤,以便为生成 .NET 应用程序建立可靠的基础。

如何雇佣 IT 咨询公司

像所有专业服务机构一样,您要雇佣的公司的经验包罗万象。虽然在雇佣任何供应商时都总是应该使用尽职调查,但在雇佣 IT 咨询公司时还应寻找一些确定的品质。下面是您应该询问每个试图向您销售产品的咨询公司的问题的列表。

步骤 1. 考察它们的业务模型

您将要雇佣的软件公司是否已经存在 10 年以上?您需要确保该公司能够历经商业沉浮而不倒闭。如果该公司能够幸存下来,则原因很可能是它关心自己的客户。不关心自己的客户的公司不会长久。

确保该公司不是由一个人组成的。如果您的项目对于公司极为重要,则您不能将所有希望寄托在一个人身上。如果您雇佣一个人完成该工作,则当这个人生病、有急事或者甚至出现更糟糕的情况 — 得到另一份报酬更高的工作时,将会发生什么呢?上述任一种情况对于您的项目而言都意味着灾难。

请确保它们在真实的办公楼里具有真实的办公室。专业公司在专业的环境中工作。警惕在办公室外面工作的公司;它很可能将不会成为专业性的组织。

同时,确保开发应用程序是该公司所做的唯一一件事情。唯一的例外是他们提供开发培训,或者他们以其他方式销售他们的开发专业技能。实际上,后面这几项表明他们确实相信和了解他们正在做的事情。

您雇佣的公司应该仅专注于几个领域(而不是万事通)。许多公司试图“包办一切”,但除非是像 IBM 或 Microsoft 这样的巨型公司,否则它们肯定无法做到这一点。如果您期望开发自定义软件项目,则请确保他们对将用于创建该项目的语言非常擅长。

该公司应该具有良好的其他特殊产品合作伙伴网络,以使它的服务更加完善。如果您要雇佣软件开发公司,请确保它具有良好的关系公司,以便在需要时向其求助。然后,您应该确保它所求助的关系公司同样具有在本报告中指定的资格。

步骤 2. 考察人员

询问员工的平均任职年限。三年是一个很好的标准;同时,当您询问时,请检查高级员工的软件和 IT 经历的平均数量。少于 15 年的经历是不可接受的。您的声誉面临生死关头,因此您需要水平足够高的、能够历经技术的沉浮而获得成功的顾问。

询问有关该公司的管理方面的问题。该公司是否由商人和 IT 人员共同进行专业管理?寻找一位至少具有 15 年管理大型项目的经验的 IT 技术总监。

该公司的负责人应该在专业团体中具有很大的吸引力。您会发现成功公司的领导人在专业团体中非常活跃。他们会定期抽出时间来对用户组发表演讲,或者在其专业领域中主持用户组,或者他们可能主持他们自己的有关 IT 和开发主题的专门研讨会。

步骤 3. 考察他们的工作

获取以前作品的示例。任何公司都应该能够向您显示以前作品的多个示例 — 不仅仅是软件,还有这些项目的规范文档和测试计划。

寻找记录在案的软件开发方法。每个公司都需要可以遵循的流程。该流程需要完整地记录下来。如果该公司无法出示这样的文档,则表明他们没有遵循某个流程,所以您应该避开他们。

体系结构是您雇佣的任何公司的必备条件。这应该包括一组已发布的编程标准、数据库标准、书面文档资料以及可由他们将为您编写的项目利用的可重用代码块。

您要雇佣的公司应该预先提供证明人。确保该公司至少有 3 个证明人。给这些证明人打电话以对他们进行核实。同时,询问这些证明人是否认识任何其他曾经雇佣该公司的人,并尝试对这些其他人进行访问。

步骤 4. 考察合法性

除了经验以外,还要寻找第三方可信度。验证这一点的简易方法是:查看来自他们的客户以及对他们使用的语言进行授权的供应商的证书(带有名称和公司)。确保他们是 Microsoft 认证合作伙伴,更好的办法是了解他们的员工中是否有人担任 Microsoft 地区主管。

寻找已出版的文章和书籍。编辑不会冒险出版低劣作者的作品,因此,如果您的顾问已经通过了审查,那么他们很可能擅长他们所做的工作。最后,请查看著名的开发人员活动(如 Microsoft 的 Tech Ed、VSLive)或当地的 Microsoft 活动期间的演讲者名单。如果该公司的某位员工位于该名单中,则这是一个非常可靠的迹象,表明他们确实了解他们所做的事情。

小结

本文介绍了 .NET 如何帮助业务应用程序成功并带来了很高的投资回报率。从长远来看,.NET 可以降低开发、维护和部署成本。许多公司已经选择了 .NET,并且已经在向高效组织进行转变。诸如 Levi Strauss、Transamerica、Sunkist Growers、Dollar Rent-a-Car、Barnes and Noble 之类的公司以及其他许多公司已经部署了或即将部署性价比高的、节省资金的 .NET 应用程序。您的公司也可以开始获得这些好处。

 

 

版权所有:UML软件工程组织