Assembla preconfigured spaces give you a fully configured workspace, with related code, in one click. For example, if you drop into the Just Chat preconfigured space and copy it, and you get a chat room. Too lightweight? Preconfigured paces can also contain complete code repositories, with wiki documentation that explains how a developer can get started, and the initial milestones. Any user can copy, improve, customize, and share a space.
The actual feature is simple. In the footer of every space page is a link that says "Copy this space". You can click on that link, and make a copy of the space. The following picture shows you where to find the link.
The copy operation pulls in tools (the extra feature tabs), wiki pages, milestones, styles, and the complete subversion repository. It does not copy content that you will not want to reuse - flow messages, tickets, tasks, or chat messages.
Why is this important?
Preconfigured spaces will save hours of work on a typical development or customization project, because they can be set up with best practices, and can include extras like deployment scripts. Just in the current Assembla user base alone, that will save staffing-years of effort.
Assembla will build a list of featured spaces. We're leading off with Ruby on Rails to demonstrate elements that we think are important: Build documentation for the team, source code with build scripts and svn configurations that help code move smoothly from developers to the staging and production servers.
Assembla will also be working with other open source frameworks to produce a bigger library of preconfigured spaces.
If you run a lot of projects, you can set up your own starter space and copy it every time you launch a new project.
Users with frameworks to share
can post their own preconfigured spaces. To share, just enter "preconfigured" as a tag under the Admin tab. I don't know all of the ways
that people will use it, but I suspect we will learn something as we
make Assembla more configurable.
Here's an idea: If you are setting up an application process or contest, you can provide the applicants with a preconfigured space that contains their instructions and template documents, and ask them to attach the completed space to your portfolio.
Coming attractions
The instructions for building your own server are can be dramatically simplified. It could be one button. We plan on adding a "Rails server" tool that gives you a virtual server, on demand. This will link to a virtual Rails server provider like Morph or the magical Heroku. With this tool instructions will be "Push the deploy button". You push the button, and you click on the provided URL to see your app running on the full-bore EC2 cluster. We will have moved the team, code, and servers all the way into the on-demand cloud. The rapture will arrive as we effortlessly float into our deployments.
I am particularly interested in the development challenge posed by applications
like Drupal and SugarCRM. These popular applications are often
customized. However, they aren't designed for a professional,
version-controlled development process where the developers build and test on a
development system, and then deploy their tested changes to the
production system. These applications want you to
configure to the production system manually - not a reliable or
acceptable process for a big site. It's a big problem that we can
solve by providing preconfigured spaces with documentation and build scripts from developers that have figured out the best practices for this type of customization. I'm going to create public workspaces for each of these frameworks and solicit help from experts to complete the configuration.
If this goes well, we'll be able to build a foundry for each of these frameworks and applications. It will really smooth out the application life cycle. There will be a documented process that makes any customization maintainable, an people that own those customizations can always return to the foundry to get the code, tools, and top talent to do serious development work or maintenance.
The tools on Assembla.com right now are designed to be used without configuration - instant on. With the preconfigured spaces, we can start introducing tools with more complex configurations. We'd like to add workflow configuration to the ticket tool, and make a generic workflow tool (user-defined fields and states) that would handle a variety of tasks from use cases to customer support.
It used to be complicated to set up a project correctly, but it isn't any more. There's no excuse not to do it right.
So take my space ... please.