![]() |
![]() |
![]() |
|
|
|||||||
|
|
|
||||||||||
|
|
|
|
||||||||
![]() ![]() |
The Economics of Components (II): Java-Based Development Issue Date: 08/01/2000 As with most new technologies, broad adoption and acceptance means that a number of elements must fall into place. The technological pieces have to be in place, vendor participation should be fairly robust, the promise of standards have to have some teeth, and IT departments have to see the economic benefits of change. And even if all these pieces come together, there is one make-or-break remaining prerequisite: developers must buy into an approach that requires a change in culture. FACING THE MUSICThe strongest driver motivating IT departments towards adopting CBD practices is time to market. Although always important for new application development, the emergence of e-business has ratcheted up the stakes in getting new applications out quickly. A key driver: applications, which traditionally were utilities to automate internal processes supporting revenue centers, are themselves becoming the revenue centers. Before, a manufacturer could produce materials regardless of whether they had an ERP system; the same company today could not sell its materials on the internet or participate in a B2B trading exchange without the applications. More importantly, customer decisions on whether to patronize an e-commerce site may be driven, not only by the product or service, but by the ease of use of the e-commerce application or trading environment. The result: when done right, application development becomes a new profit center. A little over a year ago, we looked at the economics of components and reuse. At that time, we concluded that the benefits of components and reuse remained debatable, based on information provided by more than half-a-dozen organizations developing applications using components. It wasn't for lack of incentive: the e-business vision then was considered a powerful motivator. Today, with B2B exchanges rapidly springing up, however, e-business for many organizations is starting to translate from vision to reality. While building applications from scratch, using traditional procedural-based application development methods, may afford companies with tailored, customized solutions, there's a hefty price tag to pay for such a luxury-high cost and lengthy development cycles. Few companies can afford either. Additionally, programmer shortages plague the entire industry which further slows down the development process. Although packaged solutions covering relatively generic operational functions such as financials, accounting, order management, inventory (more recently joined by customer-facing processes such as contact management, pricing, order histories, support management, etc.) became popular alternatives to custom development, for many organizations, they didn't provide the entire business solution or help a company adequately differentiate itself. For these reasons, the industry has recognized that the time was ripe for more effective, rapidly productive development approaches. The rapid application development techniques (RAD) of the client/server years opened the way to approaches that encouraged fast prototyping and experimentation. That was fine for developing more effective front ends to data-driven transaction or decision support applications. However, fast prototyping of GUI-based programs was not a substitute for an effective means of building core enterprise business logic. That's where object-oriented analysis, design, and development approaches entered the picture. With OO approaches, functionality could be developed from a business, rather than a data-driven standpoint. However, it would be difficult to develop large applications using raw objects alone, which could be as narrowly-defined as "customer" or "business site." Components provided a way of compounding related objects together to get larger, more meaningful code modules covering items such as "customer order" or "site utilization." Boucher added that it was significant that her study could locate 60 organizations engaged in CBD. According to her, two years ago, that wouldn't have been possible.
Consequently, two and a half major component architectures have emerged. For Microsoft platform applications, COM+ has become the predominant architecture. It rivaled CORBA, which was the multi-platform alternative. With Java, Enterprise Java Beans have recently emerged, providing a Java-based architecture that is compatible with some CORBA technologies. RISKSTechnology Chase. In the Java environment, the standards were until recently a fast-moving target, making it difficult for development groups to keep pace. Some standards, such as interfaces to wireless and XML, and container-managed persistence (an automated form of mapping EJBs to relational data structures) have yet to be fleshed out. However, with Java 2, Sun has finally lengthened the rev cycles to allow development groups to grow more comfortable with the spec. Risks of Third-Party Components. Ideally, by using component-based development approaches that adhere to standards, IT groups can mix and match internally-developed components with those purchased on the open market. Given the youth of this market, off-the-shelf components may not always be available for the desired functions, making internal (or outsourced) development the only issue. If off-the-shelf components are available, the next issue is compatibility. For EJBs, there are two elements to this issue: * Component interoperability. Theoretically, with Java 2, Sun's standards have grown reasonably comprehensive, but whether third-party component providers yet adhere to the spec may be another story. Moral of the story: check which version of the spec the component complies with, and test and test and test. (We'll follow up with a report on web application testing in the September issue.) * EJB Appserver interoperability. The J2EE standard supposedly standardizes most basic functions. However, every vendor has different approaches to functions such as failover or load balancing. A developer of a high-end, securities industry web site that is heavily reliant on EJBs believes that component portability from one appserver to another is certainly doable, as long as "superclasses" containing vendor-specific settings are superimposed around core Java functionality. Analysis Paralysis. CBD requires extra upfront analysis and design effort to create robust component architectures and engineer functionality for reuse. Is it possible to do too much of a good thing? Battle-scarred veterans of the upper CASE days of the late 1980s may recall endless analysis sessions which generated code modules that fell into disuse when businesses changed. Few if any development groups track time by task or phase (e.g., analysis, development, testing, deployment, etc.), and in all likelihood, they shouldn't waste precious resources doing so. Therefore, it's hard to tell if a development team spent too much time doing analysis. The only useful metric is to judge whether the project met its deadlines. Because most development shops do not track their time by task, the only way to judge if they are overdoing the analysis is to check whether projects have missed their deadlines. And, of course, the only way to know how much reuse happened is to look back several years after the projects are done to see if the same components have shown up again in new applications. SHOPPING FOR COMPONENTSSince the days of the Visual Basic Controls (VBXes), an aftermarket of third-party components has emerged. In most cases, these components consist of GUI controls rather than full-functioned business logic. In the Java world, several on-line sources have emerged, ComponentSource.com (http://www.componentsource.com) and Flashline.com (http://www.flashline.com). According to Andrew King, vice president of market development at ComponentSource, the company offers over 3000 components in its catalog. The bulk of products are COM components (2700) and the rest are Java components. Flashline's offerings include JavaBeans, Enterprise Java Beans, and COM, components, the lion's share, approximately 600, of which are Java components, according to company president and CEO, Charles Stack. They have also just released a component manager add-in tool for an IDE (integrated development environment) which integrates CBD with programming. At Flashline, the EJB market is still in its infancy, with roughly a dozen third parties (offering about 20 individual EJBs each) having developed EJBs for sale. The marketplaces are just one avenue for getting components; befitting this immature market, word-of-mouth still plays a large role as an information source on what third party components available and what's useful. IT managers in this position are constantly dealing with a still young and nascent marketplace and the instability of pricing models, compliance with industry standards and product strength. No surprisingly, many have mixed feelings about purchasing third-party components. Naturally, as with any purchased software products, there are concerns about vendor viability. Mostly what the industry is dealing with at this point is a comfort level, with concerns such as: * Who provides a guaranty of service? * Is there a return policy? * Is source code available or accessible? * What are the pricing models? * Are the components downloadable, maintainable? THE CLINCHER: REUSEThe promise of a building block approach to application development is a cheaper, faster, better way of getting critical applications up and running. However, the operative word in component-based development is reuse. Reuse, say industry participants, is where organizations will realize the greatest return on investment for reducing cost, time and effort throughout the software life cycle. But we found in our last research a year ago that reuse was the exception, not the rule. For starters, it goes against developer culture, which often values originality ahead of utility or practicality. According to the Standish report, ROI for reuse becomes more apparent in subsequent projects, as development efforts take less time and, hence, less money. Although not a startling conclusion, the key hurdle is achieving reuse, not simply within the same application, but future projects. The tradeoff, of course, is that extra time and effort must be expended up front to come up with functionality that apply beyond the exiting project requirements document. Although it does not necessarily impact the requirements assessment stage, reuse involves added efforts beginning with specification and design. In some cases, development itself may become a larger exercise if the actual functionality developed must be made broader. Not surprisingly, it isn't uncommon for companies to find their initial component-based development efforts taking longer and cost more than anticipated. If designed properly, the Standish report estimates that ROI for reuse is about 10% for second project and third projects, with the potential to jump to as much as a 60% savings by the fifth and sixth projects. At this early stage in the market, Boucher observed that few companies are designing software with reuse in mind. Instead, as stated earlier, companies forging ahead with component-based development are doing without creating a new development framework-one that considers reuse. "The reality of the component-based software market is that it's rare to find a company not doing this type of development., However, if there's still any hype about this market it's about reuse," she said. While reuse is happening to a degree, it's not occurring anywhere near what it should. In fact, Boucher noted that finding companies doing object-oriented development for the Standish study was easy. Conversely, finding those that met the criteria for reuse, which was key to the study, was difficult. According to a report commissioned by Flashline.com, there is a need for management tools that allow developers to easily locate and maintain components. It notes that tools which store, represent, search and retrieve designs and tools are just now being developed and embellished with hypertext with hot buttons for navigation. "Software development is a trillion dollar market run like a 19th century craft," said Stack. He expects that as organizations adopt a more industrial approach to software development, the benefits of reuse and the appeal of purchased components will grow. In the rush to get applications out the door, it's no wonder why organizations are bypassing creating new development methodologies. Implementing the required methodology can take anywhere from six months to a year. Additionally, there are upfront investments to consider, including: * Creating a separate group of domain engineers, performing domain analysis and developing architectures; * Developing and maintaining asset management tools, such as repositories, for architectures, designs, documentation, and code; * Tools to aid in the integration of architecture, design and software products to speed prototyping, full-scale development, modifications and maintenance; and * Redesigning and implementing the proposal evaluation criteria and process. USER EXPERIENCESEmpire District Electric Company. A midsize utility based in Joplin, Missouri, Empire provides electric service to 140,000 customers in a 10,000 square-mile area covering parts of Southwest Missouri, Southeast Kansas, Northwest Arkansas and Northeast Oklahoma. Several years ago, the company realized that it was in dire need of replacing a 20-year old mainframe-based customer information and billing system. The company turned to CBD for new application development. In the electric utility industry, customer information and billing systems are the bread and butter systems. In fact, with industry deregulation, a robust and flexible customer information and billing system can be a huge competitive advantage. However, these systems can be big and complex, as well as costly-upwards of $50 million. That leaves many companies who are looking to replace older systems, out in the cold, including Empire. While in the past, it was common practice for utilities to build their own customer information and billing systems, the recent trend is towards packaged solutions. However, sectors like utilities have such specialized information needs that a packaged software market never gained the critical mass that it attained in other sectors such as manufacturing or retail. Furthermore, as a sector, utilities generally lacked the resources to spend tens of millions of dollars for vendors to build applications. However, around that time a couple of other events were going on: the company was going through a reorganization and Java was introduced into the market place. The utility company made the switch to Java, seeing it as the future for CBD. At the same time SmallTalk was going away. Over a two year period, beginning in 1998, the company had a team of five developers devoted to building the customer information and billing system. Called Centurion, Empire's customer information and billing system, using XML along with Java technology features including Java Database Connectivity API (JDBC), Enterprise JavaBeans (EJBs), JavaHelp technology, and Java Servlets, went live November 1999. Before any development took place, the IT department had adopted a philosophy that development work going forward would be based on an object-oriented architecture which would benefit both developers and users. "Using object-oriented development we create a one-to-one mapping with our database model which reflects our business model," said Yust. Additionally, the company turned to CBR for cost considerations, as well. In 1998, the company hired four developers, none of whom had any Java knowledge. The firm's 5-person team all hit the books and brought themselves up to speed on Java. Yust designed the framework and programmed it. At the time, each developer cost the company about $40,000/year in salary, or $160,000 in total. These new hirees filled existing vacancies, as well as, assumed responsibility for the customer information and billing system project. We didn't get figures on how much time was spent in self-training, but we assume that it was probably on a part-time basis for 3 - 6 months. According to Yust, the learning curve was minimized due to the systems design. "We had a toolkit handle all of the housekeeping, such as GUI presentation and server interactions. Developers also wrote APIs into the framework to implement components. At the end of the 2-year project, the developers created about 2000 reusable software components. About 100 of the components are business objects and each business object has about 20 supporting objects for the client and server side. To aid in application development, the company built its own tool that examines database schema and generates code. In fact, Yust reported that 90% of the code was generated automatically using this tool. The other 10% of code was done manually. "It was the ten percent that required ninety percent of the programming effort because it included the business logic," he said. Most of the estimated $500,000 cost for the new customer information and billing system was labor (we assume that self-training time was included in this figure). If we compare this expenditure to the system cost of $6 million suggested by an outside consultant, Empire saved itself $5.5 million by building the application itself using Java technology and CBD. That $6 million figure only represents system cost, not the cost Empire would still have paid its internal staff. At the time, Yust looked at industry benchmarks for an implementation timetable. He determined that, regardless of whether the company bought or built, the benchmarks indicated that the system would still take two years to implement. In the end, Empire developed its own system and implemented it in the same timeframe plus, the company believes that the system it developed is more flexible and adaptable than one it might have purchased. The system runs on NT and Oracle and has multi-platform capability. In fact, the company tested Java's multi-platform capability and found that indeed the program could run on a variety of platforms with no changes required in the code. On the other hand, by developing internally, it has a documentation and maintenance burden that, with packaged software, is typically borne by the vendor (typically in return for an annual maintenance charge of about 15 - 20% of the original software purchase price). But, as mentioned above, Empire had little choice given the lack of packaged customer information system offerings for the electric utility industry. While Empire considers the project a success, it was not without its challenges. The company adopted the Java architecture just as the Java wave was cresting which meant that the company was always waiting for a new release of Java to take advantage of new capabilities or to bypass errors in previous releases. Another challenge was finding developers skilled in Java-Empire didn't. They opted for self-training instead. However, using a modern, object-oriented language like Java, and a standard component-based architecture, Empire's maintenance burdens should be more modest compared to legacy programming languages like COBOL. The company's bravery might pay off: other utilities are interested in purchasing Centurion. "We started this project as an act of desperation but it might turn into a opportunity to generate revenue," said Yust. The utility considers itself a trailblazer in the Java marketplace, particularly as a utility engaged in this type of development. Managemark Inc. A company in the application service provider market, Managemark is a producer of business-to-business Web applications for corporations and next-generation e-business portals. Managemark turned to object-oriented design when its ExpenseAble application, developed using Microsoft's Active Server Pages (ASP) scripting language, a non-object oriented approach, began to falter. The company ported its applications using Java technology. When Managemark developed its ExpenseAble application, a suite of services that includes online, desktop and mobile applications that process expense reports and streamline administrative duties for users, it chose ASP for development because it was looking for a "quick and dirty" way to get its development effort going. The company used ASP to write the user interfaces and all the business logic. According to Satish Kamatkar, engineering manager, the project took nine months to complete and the application was launched in June 1999. Hundreds of customers signed up for the ExpenseAble. At that point, the company realized that its application didn't scale well. Furthermore, it proved difficult to maintain, and customers were complaining about slow response times. The maintenance issues were particularly troublesome and were the direct result of the way in which the code was engineered. A single file contained all the code, The IT department decided to port the application using an object-oriented approach which it hoped would save time and money. In January 2000, the company chose the Java2 platform because it attracted a critical mass of industry support, promised the scalability that the company needed, and eliminated burdensome maintenance requirements. "We're short on resources and we don't want to spend extra money on cycles for troubleshooting when we could be spending money on our products," said Kamatkar. Since January, Managemark has completed three phases of component development using the Java 2 platform, Standard and Enterprise Editions, incliuding technologies such as JSPs, Enterprise JavaBeans, JDBC, and the Java Media Framework. To minimize risk, the first phase of component development using Java involved only a portion of the ExpenseAble application. The company selected parts of the application that affected some, but not all, customers. The first phase of development entailed building a new product feature, called corporate cart, which the vendor prototyped and deployed on a beta site before making it available to all customers. The new feature took about three months to build using Java Servelets and JDBC. When all was said and done, application response times, which were way above the industry standard taking about eight to 10 seconds, were reportedly by over 50%. In all, Managemark reported that it developed about 20 components and created a clean three-tier architecture for the ExpenseAble application. This architecture separates the various application layers: presentation, business and data access. When Managemark began Phase I, the company had limited familiarity with object-oriented programming. Initially, the company used four core people on the project but six months later had 10 - 12 developers working on its project-an additional four people were hired after completion of the first feature. The cost for the additional expertise was $80 - $100 per hour, depending on the level of expertise. Based on an average cost of $90/hr for one Java developer, Managemark paid approximately $3600 per week/per individual, or $14,400 for four outside experts per week. The cost of hiring outside help to complete phase two was about $173,000 for twelve weeks. The company continues to use the outside developers bringing labor costs well above $200,000. While Kamatkar didn't have exact expense figure for all of the development work ongoing since January, he knows that the company has saved between 30% - 40% in total cost of ownership (TCO), with savings of at least $100,000 on application maintenance costs alone. * ExpenseAble is robust and scalable; * The application is easy-to-use and maintainable; * The company can more easily attract IT talent because of its chosen application architecture and design; and * Cost savings. Firstborn Multimedia Corp. Software component reuse has been key to the business success of New York City-based Firstborn Multimedia Corp., a creator of interactive web presentations. A $3 million company with four programmers, Firstborn began relying on reusable components about six months ago. "We're dealing with clients that have compressed development cycles," said Robert Forras, vice president of technology, noting that many client projects include features and functionality that are "standard stuff." For the past year-and-a-half, the company moved into web-related multimedia work. For Firstborn, reuse enables the company to leverage code across its client base and differentiate it for customers by mapping in new fields. The company's technology of choice is Enterprise Java Beans. For Firstborn, The beauty of reuse is that the code has already been battle tested and doesn't need to be retested saving time and money. The company hasn't had to go out and hire additional developers, saving upwards of $50,000 per developer. The company has turned to several vendors for product, including BEA Systems Inc. Firstborn uses more than half-a-dozen components in BEA's WebLogic Commerce Server, which carries a full suite of Java-based components including catalog, shopping cart, inventory management, order entry, order management and shipping components. Forras notes that he buys components from other vendors as well but can't discuss them at this time. One complaint Forras has about the third party component market is product pricing, noting that a lot of offerings are far too expensive. For example, he pointed to one company charging $45,000 per processor on the client for its code which would total $450,000 if the code were to run on 10 processors. "If the customer wanted to scale up to 20 processors, the cost would jump to almost one million dollars," he said. In this case, he noted that his developers could build the same component for $200,000 and make it scalable to meet clients needs. This is not a religious issue for Firstborn. If the price is right, said Forras, Firstborn would buy components rather than make them. Jellyvision Inc. A 65-person creative company specializing in the invention of interactive experiences and creator of products such as the "You Don't Know Jack" adult trivia CD-ROM game, Jellyvision is another company realizing the benefits of component-based development and reuse. Founded in 1984 as Learn Television, a creator of educational media, Jellyvision took a turn in 1996 and expanded its product line outside of the education market. At that time, it brought its development efforts in-house, and now has a 10-person programming staff. Jellyvision decided that it would look for ways to develop the user experience utilizing both off-the-shelf components and building parts of the application in-house. "We wanted to use a cross-platform, quick, productive type of language for scripting the user experience and Java rose to the top," said Dave Krohn, director of technology, who noted that the company must develop both for the PC and the Mac markets. To do the hardcore multimedia, the company coded in C++. Java, he noted, wasn't robust enough for the company to use it in this area because, at that time, Java2 platform development lagged behind on the Mac platform. (Note: At Java One 2000, held in June, Steve Jobs made the long-awaited announcement to make the Mac "the best Java delivery vehicle on the planet.") THE PRICE AND REWARDS OF DISCIPLINENot quite a mainstream technology, companies doing component-based software development often feel like trailblazers. The advantages of component-based development are obvious: the ability to have more manageable code, and the potential to reuse logic in future application development projects. But there are costs and risks. For starters, as we noted, it costs more to perform the more disciplined software engineering practices to architect applications as components, and to design business logic for future as well as present needs. There is developer cultural resistance to using somebody's else's code. There is the technology chase. And, if third-party components are used, there are interoperability and standards compliance concerns. Additionally, because components come with a number of features, including standard interfaces and techniques for managing their own life cycle, they consume more computing resources than raw code. These are manageable costs and risks. The main hurdle, however, is that CBD is a strategic decision for development shops which impacts the types of developers they must recruit or retain, the amount of necessary training, and the long-term architecture of applications that will be deployed. Although components do not have to be designed as objects, using OO approaches makes reuse far more feasible. For that, it requires the development organization to commit to object-oriented design, including getting the necessary training if developers come from traditional programming backgrounds. The bottom line is that CBD is a development strategy that may be more expensive to implement initially. The rewards, including more robust software engineering and the potential to reduce future development maintenance and development costs are powerful inducements. Now all you have to do is recruit the right developers, which in today's tight job markets, is anything but simple.
© 2000 ComputerWire Inc |
|
|||||||||
|
|
|||||||||||
|
|
|||||||||||
|
|
|||||||||||
|
|
|||||||||||
|
|
|||||||||||
![]() |
|
||||||||||
|
|
|
||||||||||
|
|||||||||||
|
|
|
|
|
|
|
|
|||||