Assembla IS the best place to deliver or receive code. Let me explain why that is important. Last month I sat across the table from an entrepreneur who could not get his hands on his code. He was actually in the process of contacting the police to find the developer who had the code and instructions he needed.
Does that sound farfetched? I have a couple of these conversations every year. In one case, I was hired to replace a 2 million dollar product that was operational, but missing the source code. Losing code is a worst case scenario, but most projects suffer from IP loss at some level. Most of the non-agile projects that we look at have trouble running builds. They just don't do it that often, and the systems or instructions go out of date. What percentage of software projects can track down all of their documentation, or have a complete record of the discussion about a particular feature? Who did what? Can you shut down, go to a different project, and then come back and pop off a new release? Most of the people reading this blog have all of their IP online and under control for their own code ... but what about the stuff they entrusted to contractors or outsourcers?
It's easy to keep track of code. You can export or clone a repository, and take it anywhere. It's more difficult to transfer all of the other stuff - the build process and build environment, the documentation, the tickets and discussions, the contacts. If people can lose access to code, then they are even more likely to lose access to the IP that makes it alive and maintainable.
Assembla fixes this problem in two ways.
1) Assembla allows you to transfer ownership of a complete project from one subscriber to another. So, if a designer starts a project, he can hand it off to a development shop, which can then hand it off to the client. This is a unique capability in our category. And, it is important. If you are a client, you should demand a handoff capability, and if you are service provider, it's a best practice to provide it.
2) Assembla is an integrated and extensible system that captures and holds multiple kinds of IP. We started with the key elements - a code repository, tickets (tasks and plans) and wiki (documentation of all types). Now, we are adding support for builds with the FTP tool and Server tool. Future releases will see us go further into managing virtual server build environments, logging real-time communication, and opening the system up so that users can add their own tabs and tools. We bring all of this stuff into a deliverable package. Even if the bundle of stuff in a "space" changes ownership, or gets stopped and restarted, it's still alive and ready to go, without missing links.
We get some pushback from customers that feel more comfortable having projects and users in their own separate walled-off accounts. We hear you, but we think that the ability to move projects between accounts is important. There are also other benefits of sharing in a portal environment. We get questions about extensible spaces and the number of tools. To make sense of it, we have things like our "Get a Space" catalog, and users have to figure it out. We need to do extra implementation work too. But, there is a method to the madness, and a reason we do this work.
Some folks use Assembla because we provide reliable repository hosting with good features. Some folks use Assembla because they want to accelerate the work of agile distributed teams. Some folks appreciate the extra management features for handling multiple teams and clients. I am both a buyer and a seller of distributed development services. What I appreciate about Assembla is the way that it delivers software and the related knowledge in a nice, integrated, portable bundle - no drama required.
The real IP value is in this bundle. If you are building software over the Internet, you should deliver it proudly, and if you are buying software over the Internet, you should demand it.