The JavaBean component model presents entirely new ways of developing software. Once a component interface is specified, the actual implementation can be accomplished by another programmer down the hall, across the country or anywhere in the world. This allows outsourcing of software development at the component level.
At Flashline we're publicly testing a new service called Beans by Design, which allows companies to post requests for specified JavaBeans that are then bid on by developers. This service is sort of a cross between an eBay auction and a Match.com dating service. Using a double-blind bidding system, we help match developers with companies seeking component development: "SWD seeks EJB for software application!"
A component outsourcing service is a logical outgrowth of the general trend toward outsourcing software development. Outsourcing information technology is an increasingly popular solution for corporations unable to meet the burgeoning demand for software. IT outsourcing is a $100 billion business (IBM, Yankee Group) growing at 15% annually (Giga). Outsourcing software development offers many advantages:
- Access to greater pool of resources
- Cost control
- Cost savings
- Access to specific expertise
- A focus on core competencies
- Shorter development cycle
- Flexibility in meeting demands
Outsourcing at the component level offers not only these traditional outsourcing advantages, but additional ones as well. Because you're only outsourcing components and not an entire application, your risk is reduced. You remain in control of the overall development process. Software components by their very nature lend themselves to a much more precise description than entire applications. If you're doing large-scale Java development, you're using an object-oriented modeling system with UML to specify your system's development. Once you've defined the interface specifications for each component, it's quite straightforward to parcel out development to individual developers.
Component-based development is poised for explosive growth. It's faster, more reliable and easier to maintain. I highly recommend Jacobson, Griss and Jonsson's book, Software Reuse (Addison Wesley Longman), which outlines order-of-magnitude (5x-10x) improvements in development speed, reliability and maintenance from reusable software components. The GartnerGroup projects that 70% of corporate applications development will utilize components by 2003. For components that lie outside your in-house development expertise or exceed your available resources, outsourcing their development will come quite naturally.
Beans by Design sits at the confluence of these two powerful forces, combining the benefits of component-based design with the benefits of outsourcing. We've implemented this service on our Web site, where it reaches a global marketplace of developers and companies. Flashline is the first to implement this revolutionary approach to software design and we'd welcome some feedback.
Here's how Beans by Design works (see Figure 1). Companies seeking JavaBeans post a request on our Web site describing the component - name, description, interface specification, licensing terms and delivery dates. They can also attach files containing detailed product specifications. Once submitted, e-mail notification is sent to registered developers announcing a new bean request.
To become a registered developer you enter your e-mail address, company name and country. This information isn't publicly displayed on the Web site - your identity is revealed only if you submit a winning bid. Additionally, you enter your areas of technical expertise, spoken languages, development languages, years of experience, certifications, number of developers, billing rates and expertise keywords. This information is publicly displayed (see Figure 2).
After registering as a developer, you begin to receive e-mail notification of bids. E-mail is used extensively throughout the system to notify you of all relevant events. It's sent to and from blind e-mail addresses and then automatically forwarded to the correct address. This allows easy communication between users while retaining complete anonymity. You review component requests on our Web site as they become available. You can also download and review any file attachments. Through a fully integrated question-and-answer facility you can post questions to be answered by the bean requester. Questions and answers are publicly posted with the request. Our brief experience (Beans by Design had been open only a few weeks at the time this article was written) has shown the Q & A feature to be extremely valuable in clarifying and refining the requests.
To bid on a request you simply enter a price in U.S. dollars and any necessary notes or terms. The company requesting the component is e-mailed notification that a bid has been entered.
To prevent confusion over what was originally entered, the original bean request (see Figure 3) can't be edited. However, the requester can add information to the request at any time. This information is date-stamped and appended to the original request.
The average request is open for 24 days and receives three bids. Companies requesting components can review the bids and bidders at any time. The system allows requesters to ask confidential questions of any bidder. To aid in the bid review process, requesters can segment the bids into several categories. When first received, the bid is marked NEW. The requester then reviews the bid, and the bidder can mark it either REJECT or INCLUDE. This allows easy ongoing review of the bids as they arrive.
Requesters review the bidder information online. They can view their areas of expertise, number of developers, previous projects and technical certifications. They can request additional information from the bidder by blind e-mail. Most important, they can review feedback from other companies that have used this development company through Flashline.com Beans by Design.
Once the bidding closes, the requester is free to accept a bid. The winning bidder is notified by e-mail. The requester and developer then contact each other directly to begin development and Flashline's direct involvement in the process ends.
Upon accepting a bid, the requester is asked to briefly explain why it was accepted. The requester may indicate that it was the lowest priced, or the bidder had the most experience in a particular area, the best credentials, or the best online reviews - or any other applicable reason. This information is e-mailed to nonwinning bidders as feedback so they can improve their bidding.
After the JavaBean component is delivered, Flashline requests feedback on the developer. This feedback is then incorporated into the developer's database for review by companies considering using the developer in the future.
Preliminary results for Beans by Design are encouraging. All requests have received multiple bids. Over half were successfully awarded. Unsuccessful requests seem to fall into two categories: either no bids were deemed acceptable or the request was met through other means - a noncomponent solution was found or a prewritten component was located. There may also be a certain amount of testing the waters just to see how the system works and what type of response might be generated.
Interestingly, the dollar range between the lowest and highest bid on a single request has been surprisingly large, often 10x or more. This, we think, reflects the immaturity of the component industry more than anything else. It's also reflective of the opportunities for large cost reductions compared to outsourcing entire applications. Developers who have extensive experience and libraries of already written components can deliver components cost-effectively.
Currently, more than 250 developers with a wide range of experience are registered from 14 different countries.
Beans by Design is currently a free service. Flashline's primary mission is to build an online marketplace for component software. We sell downloadable JavaBean components from over 40 vendors, and are completely committed to building a true software component industry. The service will increase the number of components in the marketplace. Every filled request means one more component. Many developers retain intellectual property rights to the custom components. These components can then be commercialized and listed in the Flashline database of prewritten components. Beans by Design also generates revenue for component developers, which should increase their number and profitability. Most essentially, it provides a source for components that would not be available otherwise, which should aid companies that have committed to migrating to component-based architectures.
As Beans by Design progresses, we may charge a nominal annual fee and a listing fee for each component request. We believe these nominal fees would act to weed out inactive developers and eliminate the possibility of frivolous requests.
Under the "Eat your own dogfood" theory of software development, our entire e-commerce Web site, including Beans by Design, has been developed using JavaBeans. We use LiveSoftware's implementation of the Java Server Pages (JSP) specification to embed JavaBeans within HTML pages and then call methods as needed for session management, forms processing, database access, credit card processing and file downloads. The JSP JavaBean approach allows us to separate presentation from logic -- and programmers from designers. Keeping designers out of software code and keeping programmers from trying to do HTML design qualifies as a "really good thing." They don't share the same skill sets, and they barely speak the same language. The JSP/JavaBeans approach to Web site programming has proved to be robust, reliable and reusable. It is also eminently scalable and about 200 to 300% faster than traditional C/CGI programming.
There is an enormous amount of work to be done to create the vibrant software component marketplace we visualize. More Java programmers are needed. Better tools are needed. We particularly need to enhance UML to support component architectures. Sun and IBM must meet the announced targets for development of the Enterprise JavaBeans specification. Application servers, which function as component containers, need to mature. The benefits of JavaBean software components - faster development, increased reliability and reduced maintenance - present compelling motivation. Beans by Design offers one small piece to this immense and exciting challenge.
About the Author
Charles Stack is the founder, president and CEO of Flashline.com, a software component
marketplace servicing IT professionals. His Books.com, the first retail store on the Internet, is credited with making the Internet's first sales transaction, in 1993. A graduate of Case Western Reserve School of Law, Charles can be reached at