HomeDigital EditionSys-Con RadioSearch Java Cd
Advanced Java AWT Book Reviews/Excerpts Client Server Corba Editorials Embedded Java Enterprise Java IDE's Industry Watch Integration Interviews Java Applet Java & Databases Java & Web Services Java Fundamentals Java Native Interface Java Servlets Java Beans J2ME Libraries .NET Object Orientation Observations/IMHO Product Reviews Scalability & Performance Security Server Side Source Code Straight Talking Swing Threads Using Java with others Wireless XML
Interview with Shawn Mitchell, by Israel Hilerio

CodeMarket is a global software development network where software developers and development managers can find and purchase freelance development work and ready-to-run Java components. It recently formed a partnership with ParaSoft, a provider of software error-prevention and error-detection solutions. ParaSoft's Jtest, a Java unit testing tool, will be the standard tool by which all components outsourced or purchased through CodeMarket will be tested.

JDJ: While your partnership with ParaSoft seems like a step in the right direction, how do you ensure the richness of the requirements you receive from customers? What methodology does CodeMarket use to ensure the accurate definition of requirements?

Mitchell: That's an excellent question. One of CodeMarket's best features is that the buyer can select from a number of different bids. Each bid from a developer contains a use case that illustrates, from the client's point of view, how the objects behave and the top-level architecture of the proposed solution. So a buyer can compare not only the price and delivery date, but also the quality and intelligence of the proposed solution. This allows developers to showcase their object-oriented analysis and design skills and gives the stronger, more experienced ones pricing power in the marketplace.

JDJ: Software unit testing certainly enhances the quality of the software component. However, how does CodeMarket define quality?

Mitchell: Quality is an ephemeral notion. It's difficult to put quality in a box. CodeMarket's goal is to allow developers to work on projects that interest them, to do the work offsite, and to protect them from feature-creep by establishing a fixed deliverable. For buyers, quality means that the code works as designed, handles unexpected inputs gracefully, and conforms to some stylistic conventions that encourage maintainability and readability, such as limiting method length and the number of return statements in a method. For developers, quality means a lot of things. It means being able to establish a reputation for producing excellent code and delivering it on time. It means knowing the ground rules won't change from project to project. And it means having the incentives and the structure in place to encourage a mentality of getting it right the first time – building quality code now rather than wading through spaghetti a week before release tracking down bugs identifed in system- and user-acceptance testing.

CodeMarket uses ParaSoft's award-winning JTest for unit testing. JTest performs automated static, black-box, white-box and regression testing on all submitted code. Our partnership with ParaSoft allows us to offer the only service that provides an independent measure of development completion. CodeMarket pays the developer as soon as his or her code passes the JTest unit test, and that prevents the he-said/she-said, feature-creep and accounts-receivable collection headaches so common among freelancers today. That's the quality that every developer who is making the leap into the freelance economy appreciates most of all.

JDJ: What are the various test statistics and matrices provided by ParaSoft JTest? Do you deliver the test results, statistics and matrices output to the customer as part of the final deliverable? Is there an auditing process that ensures CodeMarket's accountability concerning the testing process?

Mitchell: ParaSoft's JTest provides a comprehensive suite of analytics and test outputs. Information about JTest is available at www.parasoft.com. Clients receive all test reports with the delivered code. The delivery of the JTest reports establishes that testing has been completed and the code meets the specified requirements.

JDJ: Do the components outsourced to CodeMarket for development need to be self-contained, or can they have dependencies on the customer's own components?

Mitchell: The issue of what makes a good CodeMarket project is an interesting one. Clearly some work is better suited to outsourcing than others. For instance, code that's proprietary or is part of the core competitive advantage of a company is probably not something you want to outsource over the Internet. Similarly, a project that requires access to specific large or difficult-to-duplicate resources (like a robotics controller for an assembly line) are not great candidates for outsourcing. CodeMarket doesn't expressly prevent someone from listing such a project but, as with any tool, CodeMarket works best on tasks for which it was designed. CodeMarket is the best way to develop fixed-cost, unit-tested loosely coupled Java components.

JDJ: As CodeMarket develops these components and ships them to its customers, what happens with component-integration testing? Is that the responsibility of the customer? What does CodeMarket do to ensure component-dependency resolution and interoperability with customer-developed components?

Mitchell: After a registered freelance developer (www.codemarket.com/reg.jsp) submits code to us and we unit test it, the code is delivered to the buyer, who's responsible for application integration and further testing. Studies by the prestigious Software Engineering Institute indicate that unit testing reduces the cost of integration and system testing dramatically by eliminating structural faults at the unit level.

JDJ: How is the ParaSoft JTest tool going to help CodeMarket define standards of completeness and operability?

Mitchell: JTest provides an objective standard for completeness and operability. It's that objectivity that's most valuable to buyers and developers. By establishing a standard level of quality and having that standard monitored and enforced by an independent third party, both developers and buyers are protected and empowered to produce excellent software.

JDJ: What are the additional types of testing services you provide as part of your component delivery contract?

Mitchell: In addition to JTest testing, CodeMarket allows developers to attach guarantees to their code. If after delivery the buyer is dissatisfied, CodeMarket will arbitrate any dispute that might arise. This gives buyers another measure of confidence in the process and lets developers, who know their code is good, charge a premium for the buyers' added peace of mind.

Interviewer Bio
Israel Hilerio is a member of a leading e-commerce firm in Dallas, Texas, focusing on Web-based e-commerce applications and new architectures. He can be contacted at: [email protected]


All Rights Reserved
Copyright ©  2004 SYS-CON Media, Inc.
  E-mail: [email protected]

Java and Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. SYS-CON Publications, Inc. is independent of Sun Microsystems, Inc.