技术开发 频道

编码冒险开始

【IT168 技术文章】

    出于担心自己的技术会逐渐削弱、软件开发经验会日益缺乏,IBM 顶尖技术咨询小组考虑过一起放弃咨询而恢复开发组织,在开发组织中他们就可以恢复他们的编程兵工厂的勇气。他们决定拿起自己的长剑,正面与那些“龙”搏斗 —通过开发他们自己的 Web 应用。这些屠龙者不是用亚瑟神剑(Excalibur),而是用极端编程来设计、开发和测试集成了最新技术、使用了 IBM 工具和产品的应用。 Go-ForIt 系列的第 1 篇(即本文)为 DragonSlayers 的故事和使他们的咨询职业恢复活力的 Go-ForIt 应用搭建了舞台。

    本文讨论了我们的 Developer Relations Technical Consulting 小组负责的项目的几个方面。使用极端编程(eXtreme Programming,XP),我们用 IBM开发工具和技术为一个假想的公司 Go-ForIt.com 构建一个 Web 应用。我们讨论 Go-ForIt 项目的起因,包括负责这个项目的方式,以及项目目的和目标。我们还提供在手上的这个项目中构建的应用的高级概述。

    Go-ForIt 项目的主要目的是将我们的经验和我们所学到的知识归纳一下。在这个系列中我们将共同分享那些经验和获得的知识,本文是这个系列中的第一篇。后面的文章将详细说明为这个 Web 应用开发的组件、对体系结构和设计决定的讨论以及我们在开发过程中得到的教训。

    为何我们被称作 DragonSlayers(屠龙者)

    Developer Relations Technical Consulting 小组使用 IBM 软件工具和技术为 IBM 的商业伙伴提供体系结构、集成和咨询支持。我们的任务可概括为 4个 E:Excite(激励)、Evangelize(宣传)、Educate(教育)和 Enable(提供能力)。我们通过展示和演讲活动激励开发者对 IBM 提供的产品感兴趣。IBM 版的,开发的,基于标准的开发。我们提供关于 IBM 软件的正规教育。我通过电话和 Web 方式的咨询以及现场咨询使开发者能够使用 IBM 工具和技术。

    当小组或其中一个小组成员解决了一个极端困难的问题,或(通过给予培训和能力支持,使他们在开发中节省了时间和精力)使一个客户特别高兴时,我们作为一个小组会特别庆祝一番。我们开始把这种杰出的工作称为杀死了一条“龙”,不久我们就给自己起了 DragonSlayers(屠龙者)这个绰号。

    所有的 DragonSlayers都是程序员,我们在软件开发方面的数年经验在我们的工作中起到了很突出的作用。为使我们的商业伙伴取得成功,我们不能只告诉他们我们的产品怎么样,以及他们应该使用这些产品的原因,我们还必须一针见血地从技术角度详细告诉他们使用方法。只有程序员才能有效地将使用方法与另一个程序员联系起来。

    对我们来说,另一个关键因素是学习。如果我们要教会我们的商业伙伴,我们就必须是行家。软件技术正在快速发展,且发展速度之快可能是前所未有的,这是显然的且千真万确的。DragonSlayers 不断受到挑战,要跟上并维持他们在工具、技术以及出自实验室的标准方面的专门技术。这意味不仅仅要阅读技术手册,还有付出更多的努力,因为我们都知道阅读技术手册不会使人成为专家。您必须实际使用工具和技术。我们花费了相当多的时间和精力,亲自动手去了解每种新产品或新版本的细微差别和复杂性。

    冒险的业务

    随着越来越多的公司采用IBM的电子商务框架和连带的服务工具和技术,我们组也逐渐成长以满足那些公司的支持需求,我们面临着有没有能力持续提供我知道自己必须提供的高级咨询的冒险。

    第一个冒险是要使自己的技术和知识增长的足够快,能够一直领先于客户。我们在获取实际经验方面所花费的时间和精力与我们的客户天天使用这些产品所获得的经验无法相比。我们的客户过去开发大型、复杂的系统,推进了他们用于构建那些系统的 IBM 产品性能的提高。我们的主要任务是带领、指导我们的客户,但我们却要冒这个角色可能失败的冒险,因为我们的客户已经变得比我们对那些工具和技术更熟练。

    下一个冒险与我们员工的整体软件开发经验有关。我们知道,除技术上的技巧和能力外,软件开发也必需过程和方法。它包括分析和设计,团队合作,以及,也可能是最重要的一点,作为一个为紧迫的商业问题提供技术解决方案的功能系统的所有者而感到自豪。我们从事咨询业务的时间越长,我们的“真实”软件开发经验衰退得越厉害。

    这导致我们要面对最终的冒险 — 我们的组成员对最前面描述的两种冒险的响应。一些,大多数,甚至全部组成员最终都会离开这个组,而加入开发组织去获取他们感觉自己需要的技巧和经验,这种情况已变得明显起来。于是相当多的努力花费在了补充新成员和小组培训上,我们不想失去我们的任何有价值的人。


    解决方案:Go-ForIt.com

    一天晚上,当我们在当地一个酒吧讨论这些冒险时,我们想到了解决这个问题的方案。我们相信承担一个“真实的”开发项目会有助于我们解决和尽量减少面临的冒险。我们一致认为,我们的项目:

    #规模和涉及范围必须大到需动用 Technical Consulting 小组的所有成员

    #必须不是将来要投入生产的应用

    #但是,必须象实际问题的实际解决方案一样现实可信

    #必须有助于在其实现中使用大部分的面向电子商务产品和技术的 IBM 框架,还必须是我们的客户的问题和解决方案的典型代表

    #必须是无限度的,要不断改进和加强

    关于第二个标准有一些争议,但最终,我们知道我们的任务是支持 IBM 的商业伙伴,我们不希望造成我们的应用的用户和我们的实际客户之间的冲突。

    我们构思的项目是为一个假想的公司 Go-ForIt.com 开发一个 Web 站点。Go-ForIt.com 是一个个人差使服务。客户可在这个站点注册,并发送他们需要完成的差使;例如,收拾该洗的衣服,遛狗,排队等待许可证,等等。独立的承包者,比如知名的个人助理( Personal Assistants,PA)也会在这个站点注册并对发送的差使投标。Go-ForIt 将把胜出的投标者与需要服务的客户配在一起,并按完成差使的报酬的一定百分比收取费用。

    我们知道,作为一个商业模型,Go-ForIt.com 将把自己归为 .com 类,这个滑稽得不得了的 .com 在去年都快破产了,但我们的重点是在技术方面,我们相信这个应用会符合我们的标准。

    我们的主要目标是获取有现实意义的软件经验,但我们意识到 Go-ForIt.com 还能够帮助我们达到小组的另外两个重要的目标。第一,我们会从这个项目中获得大多数或全部的课程资料,第二,我们可以经常抽取提出的问题、提示和技巧、技术论文和其它的技术内容与软件开发社区共享。

0
相关文章