One problem is the duplication of effort, as various teams in different parts of the company end up writing software to do the same thing.
Another bugbear for developers is the difficulty of imposing standard procedures for things like software testing. All of this can increase your time to market and reduce the quality of your e-commerce operation.
Given all the hype over application service providers and Web services, it was only a matter of time before someone applied the model to software development. Instead of having distributed programmers in different parts of your organisation accessing different software development resources, why not centralise the whole thing, possibly taking it outside your company and accessing it as a hosted service?
There are already services offering companies the chance to do just this. Collabnet, for example, offers three different types of hosted service. Enterprise development networks enable developers within a company to collaborate using a centralised set of development services.
Developer resource networks enable you to extend your software development team to a close-knit community of third party developers outside the company.
Using third parties
Perhaps the most interesting service from Collabnet, however, is the open source network. As the name suggests, this enables a company to open up an application for participation from the open source community.
Collaborative development lends itself particularly well to open source, because open source developers are widely distributed, making it difficult to pull together an open source project.
Yet the advantages of open source development can be great - you may find that you can update and enhance particular elements of your back end software infrastructure very quickly using third-party developers, or even access the code that you need from other sources online.
Some companies may feel nervous about making sections of their source code openly available for enhancement by the general community, but when dealing with basic functions such as software interconnectivity, for example, it makes sense to share and share alike.
There is little added value in reworking low-level infrastructure code in-house, but farming it out frees you up to work on the more business-critical, application logic. The sorts of services provided by collaborative development application service providers include things like version control, which enables distributed developers to keep track of the latest version of a particular piece of code.
Other useful facilities will include things like issue management - a centralised record of all bugs within a certain piece of code that must be rectified, along with who is working on them.
Often, Web-based project management consoles will make it easier for the head of a software development project to administer the software development process, granting certain access privileges to different developers, for example, and perhaps assigning them particular tasks, no matter where they are.
Collabnet isn't the only player offering such services. Rational Software, for example, which recently purchased collaborative development player Catapulse, is set to launch its own centralised developer service.
In an interview with E-Business Review, Microsoft CEO Steve Ballmer suggested that the company would also be rolling out such services. Legacy software development company Merant also has a hosted development service, while application development tools company Borland has been making noises about launching something too.
Still, such services are not without their problems. You must make sure that any such online collaborative development environment integrates well with your existing development tools (which may vary across different parts of your organisation). You must also train your staff to work in a new way, toeing the line when it comes to following central guidelines and feeding back all of their work into a central repository.
It only takes one or two developers to peel off and start tinkering around with code on their own, storing it locally rather than sharing it with a central team, to reduce the efficiency of a collaborative environment.
Beyond the firewall
Some companies will also be nervous about accessing collaborative services outside the corporate firewall. A simple solution here is to license the service from the ASP but run it inside your company network, giving you most of the benefits of the service but retaining your peace of mind from a security and management point of view.
At the end of the day, hosted development services such as these could be a way for e-commerce software development teams to capture the main benefits of component-based development.
Such benefits supposedly included the re-use of software components, resulting in a decreased time to market. The main problem with component-based development, however, has been cultural - companies simply haven't been able to organise their development teams to work together as well as they should.
Perhaps, after over a decade of pushing software re-use, the software development industry will finally be able to bring it to companies in a manageable format.