Upgraded Agile Planner for Fast, Fun Roadmapping
It's fast, it's fun. It powers your planning. It tames your tickets. It's the upgraded Agile Planner, our AJAX interface for adding tickets, building stories with tasks, and scheduling them into milestones, iterations, or releases. For more details, please watch the video, or just select the “Agile Planner” link in the Tickets tool menu, and try it.
During the last year, many users have told me that they use the agile planner every week with their team. So what is NEW in the Agile Planner this month?
* It’s fast. Drag and drop is smooth. All tickets are loaded into local memory for instant access. New layouts for “Milestone | Detail” and “Story | Detail” remove EVERY CLICK between mousover and seeing the detail edit form.
* Open tasks and subtasks to unlimited depth, in the Story/Feature column. This “hierarchical ticket view” was one of our most requested features, with over 300 votes.
* Enter a list of tasks with the same attributes, using a new pop-up UI.
* In-place editing of estimates. Just click on the number and edit. The estimates add up correctly for complete features or milestones.
Incremental development is important
The Agile planner will help you with roadmapping, which I described in my article "Save the best for first". It's a simple way to get what you want, fast, using incremental development. We write down everything we want to do, and then we sort it by priority, and we try to find the minimum set of high-priority stuff that will get us a great release as soon as possible.
A whole industry has grown up around incremental development, represented by Agile, minimum releasable product, lean startups, and even behemoths like Linux, which started as a student project.
Sometimes, a planning view can be one of the biggest obstacles to this process. If you write a view of your project that shows a feature listed under a milestone or release, and subtasks for that feature, it starts to force you into thinking that you need to finish everything before you can release. You start to forget that you are in charge, and that you can release a simple version before you release the complete version. In the Agile Planner, we separate the your grand plan in the Story/Feature view, from the schedule in the Milestones view.
How can you use the Agile Planner?Use it with a client or business owner to launch a project. It’s fun to see a plan take shape, which builds the relationship. If you run a good roadmapping session, you get a big head start on the implementation, which is the biggest revenue earner.
Use it with your team to plan iterations. Many Assembla users sit down as a group with the agile planner each week or each month. I have seen distributed teams do this with screen sharing tools.
Distribute planning. I like to create a top-level story, and then ask the developer to fill in more detailed tasks. It makes the developer feel more confident, and it makes the work more visible.
Many of our users like to sort their tasks into a very specific order. Agile Planner gives you that control.
Here's a quick video of the Agile Planner, so you can see it in action.
How to use Webhooks to get an SMS message about important events
The folks at AlertGrid posted an article with instructions for configuring Assembla to send SMS messages to your phone whenver something important happens. They asked "Can Assembla send me SMS message when new milestone is created?" Yes, it can.
The key ingredients are
- the Assembla Webhooks tool, which will send events from the activity stream to other applications. You select the type of events that you want to send (for example, code commits, ticket comments, or new/edited milestones). Then, you configure the URL to get or post the information.
- The AlertGrid service. AlertGrid will not only send you an SMS, but it will compare the incoming messages to workflow rules, and send the correct message to the correct people. So, this adds an extra layer of intelligence to the notification process that you can use to filter out noise and find the most important events.
Chat is back

Chat is back. Just add a Chat tool, and click on the tab to drop into the chat room. The new chat tab will be useful because:
Everyone on your team can use it. It has the correct permissions for each team member, it requires no client software, and it is usable with any modern browser. It gets messages with HTTP "long polling", so it reaches through firewalls, even proxy firewalls. This is an important upgrade from our previous chat implementation, and it is especially important for workplaces where Skype is banned for it's bandwidth grabbing, firewall tunneling tricks.
Searchable history. So, for example, your new team members can go back and find that reference URL that you posted last month.
Convenient linking. It links to the user profile of the people in the chat room. You can link to ticket 99 with #99. You can upload files and get links and thumbnails.
It shows team activity in one river of information. You can optionally edit the settings to show team activity - like commits, messages, new and edited tickets - in the chat message stream.

This is the first big win for our bounty program. We thank D3velopers, an outsourcing company based in Pakistan, for implementing this feature. They had some previous experience with COMET chat. They were willing to do research on our preferred server (Nginx). They were flexible in improving the feature, and delivered on time. I hope that we can do more of these bounty projects. Note the "Powered by D3velopers" logo on the top of the "Who's Chatting" column. If you take responsibility for a tool through the bounty program, you get paid, and you get the logo and link.
Our previous chat implementation had a poor communication protocol that prevented it from working through firewalls. We let it linger as a quality problem because there are many alternative chats, such as the popular Skype conferencing. However, we received more and more questions about chat over time, and I am happy now that we have this solid new implementation.
Technology Credits As usual, we rely on great open source software provided by others. The technology stack includes the Nginx HTTP Push Module. We use Nginx in our proxy servers, and we found it to be fast and reliable. The Push Module is a "beta" feature, but it has served us well so far. We use Xapian text indexing and search, and of course, Ruby on Rails, MySQL, and the whole Linux stack. The D3velopers team used our tool development kit to generate a new tool, and wrote javascript to finish the client side implementation. We learned something about playing sound - the little chirp that the browser makes when you get a chat message. Browsers got quite confused when we asked them to play a sound, and they stopped taking data entry, went to load quicktime, and did other bad things. Fortunately, the author of Soundmanager2 figured out how to use flash, with a fallback to HTML5 sound features, to play sound reliably.The great Standup Report controversy
When we started telling people about our new Standup/Scrum report offer, we expected our main problem to be that this incredibly useful tool is low-tech (basically, one form), and boring. Instead, we got a some pushback that actually makes this discussion pretty interesting.
Our friend, Ian Ippolito - the founder of vWorker, started by saying that he didn't see why it was useful.
Derick Bailey wrote: "I think the product misses the point of the daily standup and could facilitate anti-collaborative measures in a team. Instead of having people talk to each other and gaining value through communication, understanding what other team members are working on and hopefully offering insight into the issues and directions that those people are taking, your product reduces the daily standup to a management task that serves only managers, not the team doing the work. Online collaboration with distributed, global teams is a difficult problem to solve...Understanding the big picture requires communication not just one-way statements...". Here's a link to Derick's blog.
Tobias Mayer wrote: " actually, it sounds like a tool for micromanagement. In Scrum there is no 'reporting'. Team members meet to align with each other, not to report to their manager." Here's a link to Tobias' blog.
I learned a few things.
First, a tool like this must be useful for team members, not just management reporting. I believe that engaged management is very helpful, but ideally, teams don't need or want much top-down intervention. We have always tried to make Assembla first and foremost a place where team members can communicate with each other and get something useful in their daily work - in contrast to my last project, PowerSteering, which quickly became a rather intrusive management reporting system. From this point of view, we see Standup as having two advantages. First of call, you can see what team members are doing without bugging them. Second, you don't spend much time at it. Every minute saved from chat and calls is a minute that you can think more clearly about your own work. And, finally, there is the top-down benefit of being able to easily raise a flag about what you need.
Second, the online Standup report is most useful if you have a team of five or more people. A lot of the people that we talked to work with smaller teams, and they get good communication from email, chat, and other things that they do together. On the other hand, the single biggest problem in software is working with bigger teams. Bigger teams are always much less efficient, a syndrome that was analyzed almost forty years ago in The Mythical Man Month, and proven out by numerous benchmarking studies and our own mutual head-banging personal experience. Given these problems, it's incredibly valuable to find methods that actually work better with bigger teams. With the Standup report, I find that we are able to work effectively in teams of up to 15 or 20, with the same type of teamwork that goes around in a four person team.
Third, that it is important to use all of the other communication tools that we recommend - an online ticket/task list, a daily chat, a shared build with daily, hourly, or continuous integration, and a shared view of the team activity stream.
We did hear from a number of users that like the Standup/Scrum report. Here are some of their comments.
"Assembla's StandUp/Scrum tool helps us coordinate the activities of team members on three continents. A regular, light-weight report of tasks and problems makes a huge difference to our forward progress, and Assembla's tool fits the bill perfectly."
-- Daniel Hardman, Senior Architect - Perfect Search Corporation
"We use Assembla's standup tools extensively to coordinate our development teams in the UK, Europe and India. It's really useful when face to face standups aren't possible due to working time differences. Using this means we are all aware of what each person is doing and most importantly when they need help.It definitely helps to bring the teams together."
-- Gareth Gower, Applied Language Solutions
"At MeYou Health, we use the StandUp/Scrum reporting tool to allow the team to easily communicate to each other their progress on tasks, their upcoming priorities, and any blockers that others can help with. We usually do daily standups in addition to using the tool, but we find that the tool is nice because it helps us organize our thoughts before our standup and allows us to keep a running history of our high-priority tasks."
-- Chad Dressler, Senior Web Architect - MeYou Health
"IconApps uses the StandUp / Scrum reporting tool to allow both the management team and the development to keep track of our sprint progress, upcoming plans and overall team activity. We use it to collect team activity in one centralized place, so it's also like a history log. We found that asking everyone to fill out the "What I will do today/this week" section, forces everyone to really know what need to complete before they actually start the work."
-- Liana Gevorgyan, QA Manager - IconApps
"As a virtual company with employees across the United States, having a single place for everyone to share information is essential. The StandUp feature in Assembla is an integral tool in our semiweekly staff meetings as it allows us to share information about current projects, and note any needs we may have. Since using the StandUp feature, our meetings move faster and are better organized."
-- RedWeek.com
"I am a professor teaching software engineering project courses. We are using Assembla to give the students a realistic set of tools to work with in their team projects. We use the StandUp report tool for student reporting on a weekly basis. It pushes them to have something to report and allows a quick overview on how they are doing as well as giving them a clear way to ask for help. I like the way the tool rolls up the reports and highlights the "blockers" if present."
-- University Professor
So, is a written standup report the best way to manage a distributed team or is it anti-collaborative? Please leave us a comment below and let us know which side of the fence that you fall on.
Featured Open Source Project: Scala IDE for Eclipse

This month we'd like to introduce you to a development tool for a programming language you may not have had the chance to play with yet, Scala.
Our featured project this month is the Scala IDE for Eclipse, an Open Source Plug-In that adds Scala Programming language support with Java integration to Eclipse, a powerful and extensible Integrated Development Environment most commonly used by Java Developers. (you may have heard of it once or twice) ;-)
Scala is a language for the Java Virtual Machine, that allows developers greater productivity by mixing object-oriented and functional programming language features with a more concise syntax, typical code sizes being two to three times smaller than an equivalent Java app.
Recently, we had the opportunity to catch up with Miles Sabin, from the Scala IDE project, to discuss the project, Scala, and Assembla.
When we asked him to describe the project and its impact on developers, he pointed out that of the top three Java IDE's, Eclipse was the most popular and widely-used. He and his fellow developers at the Scala IDE project believe that if Scala were fully supported using Eclipse that many Java developers would switch to Scala.
Because Scala interoperates seemlessly with Java, it can freely be mixed in with Java code. This allows programmers to take full advantage of Java's tried and tested libraries and tools while using Scala's more concise syntax to get things done faster. By building a tool that seamlessly integrates into the IDE that a majority of Java Developers use in their daily work, Eclipse-based projects can quickly and easily begin to refactor, and add code using the more lean Scala language without a great deal of extra effort.
Scala is currently getting about 100,000 downloads per month and growing, and the Scala IDE for Eclipse already has thousands of users, lively user and developer mailing lists and a growing number of active contributors.
When asked how the Scala IDE Project came to be hosted at Assembla, Miles related that "Most of the active contributors were DVCS fans and in particular GIT fans. When they started looking for a GIT home, GITHub was the obvious choice, but was rejected primarily because of their weak ticketing system." (If interested you can learn more about the advantages of Assembla Git Hosting and its integration with Assembla Tickets in the features section of our main website, here)
Miles also told us that the fact that Scala-based, Lift Web Framework had already chosen Assembla to host their issue tracking and and the related Stambecco Project was wholly hosted at Assembla were contributing factors.
In addition to our Integrated Ticketing system, Miles noted that -after the fact- two other Assembla features have proven to be very important to the team as well: our Wiki Tool and our Portfolio Tool.
Miles and his teammates use our Wiki tool to manage developer and end-user documentation, frequently asked questions, and release notes.
The Portfolio tool allows the Scala IDE project team to manage multiple projects from a single space, and the ability to create templates so that you can easily create new workspaces pre-populated with code, wiki pages, tickets, etc. This is great for both complex Open-Source projects and client-driven consultancies, design & development shops.
Miles also had a few pointers for those of you out there already managing open-source projects, or who are thinking about starting a project:
- Involve as many people as possible
- Have great code review processes and tools to ensure high code-quality
- Have all contributors and especially active contributors explicitly agree to the license under which their work will be governed so that there are no IP issues later
Scala IDE for Eclipse is a very promising project, and if you would like to download and play with the plug-in, be sure to visit their website for details on installing the plug-in for Eclipse. If you are interested in learning more about the Scala language, visit: http://www.scala-lang.org. And of course check out the Scala IDE Assembla Workspace if you would like to check out the developer or user documentation or contribute to the project.
Free Stand Up report - the Simplest and Easiest way to manage a distributed team
I work with a lot of distributed teams here at Assembla, and I can't work without our online "Standup" report. This is a simple, low-tech form where users go every day to enter "What I did" "What I will do" and "Obstacles and needs". I can quickly browse through it and see who needs help and who is working on important tasks.
It's so useful, and so simple, that we think that EVERY distributed team should use it. If you work in a distributed agile team, you need it. If you work in a distributed development team, you need it, even if you are using competing ticketing and collaboration systems. If you are working on a corporate or government or NGO initiative from multiple offices, you probably need it. If you are organizing an election campaign, you probably need it. In order to make it possible for all of these deserving teams to use Standup, we are now offering Standup as a free package.
If you have been using this tool, you probably noticed that we changed the name of the tab last month from "Scrum" to the more generic "StandUp". Scrum teams do these reports every day in a meeting. That is one of the reasons that scrum teams like to be co-located. However, with Assembla's online Standup report, the team can get it done even faster by filling out an online form. It's simple, fast, and now free.
Why do a standup report?- It saves time for the person doing the reporting. The form takes only a minute to fill out, and it saves time in email, chat, or meetings.
- It saves time for the manager, who can quickly browse and see what people are working on.
- It gets stuff finished faster by focusing people on the most important tasks. After you read through the reports, you will see if people are working on things that are important, and you can ask them to work on higher priority tasks.
- It gets problems resolved quickly, by flashing a little red "needs" sign from the people that have obstacles
- It increases productivity. Studies show that the act of writing down a goal makes the writer more likely to achieve it.
This report format comes from a traditional "stand up" meeting in which everyone stands until the meeting is over. Standing is a little bit uncomfortable, so it encourages people to finish the meeting quickly. It's expensive to have a big group in the room if you are paying everyone, and they have other things to do, so you want to go finish. In the bubble ‘90s I ran an e-business development company, and we did a standup meeting every Monday. We used the did/will do/obstacles format with everyone standing, and this did indeed help us get through the meeting quickly. So, it's useful for coordinating any type of group, and not just a scrum team.
When we write the online report, we are sitting comfortably on our butts. If you're like me, you probably have your feet up on the desk with a keyboard in your lap and a nice cup of hot tea. It doesn't matter. This report is so simple that you will have a hard time spending more than 60 seconds on it.
Three steps to a productive team- Invite team members
- As soon as they start work, in whatever time zone they work in, ask them to click the button in the upper right that says "Add/Enter your report". They fill out the simple online form. If they have an obstacle, they write about it there.
- At a glance, see what everyone is doing and eliminate roadblocks before they slow you down.
ADDED BONUS: In tomorrow's release we upgrade the Standup tool to include "I am away" reports. If you are going to be away, post the "I am away" report in advance and it will be on the calendar to answer any questions from your colleagues.
The form....
The report ...
The virtuous cycle of local competition
I just got back from Seattle, where I was very surprised to find FOUR Starbucks coffeeshops on one (four sided) block. There was also a non-chain bakery and coffeeshop with a line of people waiting for coffee and muffins. People in Seattle must buy a lot of coffee in coffeeshops, and there are a lot of coffeshops that spring up to satisfy that addiction.
Which came first, the chicken or the egg? For whatever reason, Seattle coffee suppliers and buyers started a cycle of competition and appreciation that turned corner coffeeshops into global marketing giants. I used to wonder how Starbucks and Seattle's Best coffeshops could come from 3000 miles away and drive out the local competition here in Boston. Now I realize that there is a reason.
We see the same effect in Web businesses. Fred Wilson posted a chart here of the top 30 Internet sites by traffic here, and noted "75% of these properties are based in the US ... Contrast that with the fact that only 17% of the Internet audience (213mm) is in the US and you will see that Internet is one of the primary export industries in the US."
As you know, I am a supporter of global development teams. Business models may be local, but production is not. "Seattle's Best" coffee doesn't come from Seattle. It comes from Nicaragua. And, Belgian chocolate wasn't grown in Belgium. America imports most the equipment and a lot of the talent that goes into building those top Internet services.
The lesson that I take away is that we can pull our materials and talent from around the world, but we should look for a small number of up-close and personal customers and competitors that will make our business stronger.
How to Use Assembla to Work with Clients
We thought that you might find some of these tactics of client interaction interesting, so we have grouped them together into generic use cases. Please leave us comments about which use case(s) you find most effective or if you have developed a different way of using Assembla to work with your clients.
Complete Transparency with a Handoff at the End
Before we started reaching out and conducting lots of interviews, we assumed that our customers used Assembla.com to interact with clients the same way we do. We basically invite interested folks on the client side, usually the "business-side" project manager and occasionally others, to view the entirety of the project. Then, at the end of the project, we hand off the workspace to the client.
Many clients will sign up for our lowest level plan and use Assmebla.com to archive the workspace should they ever decide to do version 2.0 of the project or need to go back a year later and understand why something was built the way that it was. A persistent (archived) workspace is a fantastic way for clients to safeguard their intellectual property - and not just their code, but all of the thought that went into conceiving, architecting, building and testing a piece of software or some other complex project.
However, we have learned from our customers that there are lots of good reasons to manage client interaction with a workspace differently. For example, you may not want clients having access to a code repository before they have paid their bill or you might be afraid that if clients have access to the Tickets Tool that your team will constantly have to self-censor what they say in ticket comments so as not to offend the client.
Parallel Workspaces
Some of our customers use a slight variation of the completely transparent approach and set up two workspaces for each project - one that is inward-facing and is only used by the project team and another that is outward-facing and the clients have access to. It's a great way to control what the client sees while still allowing them to observe the incremental progress being made on a project and feel like they are involved. Often times, the outward-facing workspace will use the ticket tool as a way for clients to test the project and leave feedback along the way. The obvious downside of this approach is that you have to synchronize the parts of the workspaces that you want the client to see frequently.
Similarly, if customers don't want to set up an entirely separate workspace, they may opt to use the Customer Service tool as means by which the end client can test the project along the way and report problems without allowing the client to see all of the tickets. This way clients can be continuously involved, but without the possibility of stumbling across something that may be embarrassing to the project team.
Limiting Access to One Tool
It is also possible to give the client very limited access to a workspace on Assembla.com. Here's a great example. Many of our customers will use a wiki as a set of working documents that house the project scope and other content that help to define the project. Initially, both our customers and their clients will go back and forth editing the wiki and recording their comments. When our customers and the clients agree on the scope, that wiki becomes the de facto Statement of Work for the project. However, a workspace can be configured so that this is the only tool that a client that can see.
This can be done by defining the permissions of each tool for a workspace for the team member level of "Watcher" (visit the Admin tab and click the "more" link in the Security section ) and then inviting the client as a Watcher.
Downtime Warning - Tuesday, June 1st from 8:00 - 9:00 UTC
Expanding the definition of coding, and the mechanism
Juan Enriquez stepped up to remind software developers that the most significant future work in coding is likely to be done with genomes. He works in the emerging industry of synthetic biology. He's suggesting applications like "improving the climate on Mars, designing human organs that fend off disease or cloning cattle that produce powerful vaccines in lieu of dairy products."
This is indeed a trend. Last year I went to visit Tom Knight, one of the inventors of computer science, at his office in the MIT's Stata Center. I was surprised to find him surrouned by petri dishes. Always the pioneer, he has moved his attention from digital code to genomic code.
Coders can bring their skills to synthetic biology. We can turn this around. Biology can also bring it's magic to coding.
I propose the basic idea that innovation has multiple forms - biological evolution, industrial/economic innovation, and human creativity - but a single underlying set of mechanisms. The mechanisms are based on the simple variation and selection process that we learn about when we study darwinian evolution. It's called "exploration and optimization" in engineering circles.
However, the machinery is actually a lot more complicated than that, which is why we still don't understand it fully. We can run evolution on computer programs, "genetic programming," but the results aren't even close to what we get with real evolution, yet. That's why it's such a good area for further study. Code is the product of innovation in its pure form, and if we learn how to make one type of code, we can make other types of code.
Evolution takes a long time to deliver results. It can go 1.8 billion years just working on bacteria. However, it appears to be "punctuated equilibrium". Most of the action is packed into short bursts. We see the same pattern when we run genetic programming. By creating an "arms race" scenario and taking away the tendency to equilibrium, we can prod evolution to run much faster. This creates an artificial process that is related to normal evolution in the same way that a Mach 3 jet airplane is related to a bird.
This is a long term answer to how we are going to generate bigger projects and bigger wins than Web services. Once we understand how innovation and evolution work, we can apply those ideas to computer code, to synthetic biology, and to hardware. How, as a species, we are going to deal with the effects of this takes us into the realm of science fiction, but at least the current innovation deficit will be out of the way.
Fat or Lean startup? Which is better for you?
The ongoing debate between Fred Wilson (likes lean, "capital efficient" startups) and Ben Horowitz (thinks you should raise big money to go after big opportunities) was nicely summarized on GigaOm here. I think it is relevant for many of our readers, who run software-based businesses.
The case for lean / capital-efficient"Lean" is much better for founders. It's a huge amount of work to build a lean or bootstrapped company - the opposite of a "lifestyle" operation. But, as Wilson notes, you end up with a bigger stake and a much higher probability of making money.
In an investor-funded businesses, the original founder usually does not make much money. You will often see statistics from VC firms showing that they make money on 10% to 50% of their deals, depending on how big the gain needs to be to be "making money". I have never seen a similar statistic that showed the percentage of deals that make money for the original founders. That statistic is much smaller. They wouldn't want you to see it. Big wins are well under 10%.
How does this happen? If you have a company that proceeds from its first investment to an exit without ever having a down round, the founder will make money. The fabulously wealthy silicon valley founders that you hear about had this type of good fortune. However, the average VC-funded startup now takes about 8 years to reach an exit. In that much time, even a strong company will have some random walks down. That wipes out the founders. VC term sheets are designed to take advantage of this type of ratchet, and VC's depend on it.
On the other hand, most bootstrapped businesses eventually find a way to make money for their founders, and it seems like the probability of founders making money falls when they need more investment.
So, if you want to make money, go lean. If you are founder or early shareholder, that is all you need to know. You can stop reading now. Read on only if you are curious about the other side of the argument.
The case for FATYou can innovate without spending money, but you will be innovating within a very limited range. Does the world need another little Web service? There are a lot of things that are just expensive. These are the big, society changing innovations. Without significant investment, you won't be building a new kind of semiconductor, or replacing oil with algae, or sending a man to the moon. If you spend money, you can do more, and you can be more innovative.
The changing debateIt's a new phenomenon to see Fred Wilson and other VC's stand up for lean and capital-efficient. Investors sell money. Their job is to get the best price for money by finding investments that need a lot of money and are desperate for it. Lean goes against their interests. And, in fact, I have heard VC's like Robert Metcalf dismiss companies with "it's capital efficient" as words of utter contempt. I searched on google for "Capital efficient" one year ago, and the top hits were all investors who agree with Horowitz, that capital efficient = trivial. Times change. Now, you find articles with titles like "The gift of capital efficiency.". I think this change is driven by statistics. As Wilson notes, capital efficient companies are making more money and better returns.
So, which way am I voting? I am a founder, and I want to make money for my own family. I run one of the most capital efficient startups you are likely to find anywhere. We have basically no costs beyond contract labor. I work alone at a $15 desk. In my last startup I raised venture capital, had a big office and a sales force and a receptionist. Although the company was successful, I got a cramdown that rendered my stake worthless. That company was less profitable, less able to support my family, and interestingly, less able to fund new directions, because anything it did was more expensive.
However, I think that the trend to efficiency, while good for me because I can deliver efficiency, does indicate a sickness and lack of innovation in our economy. If most of the money is being made by people who work within the narrow bounds of efficient operations, it means that big innovations aren't paying off. That's why VC returns are so crappy. That's why our economy isn't growing. That's why we are looking to efficiency. There aren't enough big innovations that are succeeding. Have we run out of opportunities?
This isn't just a discussion for small companies and startups. This is a huge issue in the global economy that affects billions of people. Those people are saving for retirement. They need a much higher return on investment. They are driving interest rates to zero. They are bidding up stocks until they can't go up any further. They are funding huge government deficits. They are desperate for better returns, which they are not finding.
It will seem to a startup founder that capital is hard to get, but the reality is the opposite. Startups can't get funded because, statistically, they don't make much money. They don't make much money because the big innovations are scarce at the moment. If you can fix that problem, there are trillions of dollars out there begging to get in to your deal.
Paying for the sins of slow performance
Here is our penance. During the last four weeks, we have reduced the average time to serve a request to 190ms, with only about 4% going longer than half a second. It's not perfect yet, but it is much better.
First, we deployed application servers with faster processors. Our application servers run Ruby and Ruby on Rails. This is a nice environment for development, but Ruby is a very slow interpreter. It didn't help to get more processors with more cores, because Ruby is single-threaded. We had to actually get a faster processor to run that single thread.
We also looked at core libraries to see if we could get faster versions. Sometimes, this was only 2% faster, but every little bit helps.
Most of the gains after that are classic optimization work. We used Newrelic to log our request times, and looked at the slowest requests, and went to them individually, and figured how to change them to make them faster. In some cases we fixed the data retrieval strategy, or changed the data structure. We found more places where we can use memcache caching. We found some places where we could render a page faster by loading data later with an ajax call - for example, on ticket Edit. We are also working on repository server problems with threading that sometimes block the code browser. Etc.
We will continue our work, struggling as always against the forces of evil in the search for a fast and fun experience.
Our users experienced other disruptions in the last few weeks. The optimization work has made our release times longer usual, with servers down for an hour during the last two releases while we change databases and server topology. We do releases at 10:00 am Moldova time, which gives us an alert team, and is in the middle of the night in the US. However, it is a bad time for people in Europe. We will work on finding a better time. Also, about two weeks ago, the Amazon datacenter in Virginia had a power outage that took out a few of our servers. We were running on slower failover servers for a few days, and we had some incidents where the system slowed to a crawl or crashed. Hopefully, we won't be struck by more such acts of God, but if it does happen, we'll be quicker to start new machines.
Featured Open Source Project: Nooku Framework
The Nooku Framework was born from creator (and Jooma 1.5 Lead Architect) Johan Janssens' interviews with some of Joomla's high-profile users regarding the lack of an enterprise-level multi- lingual feature set. Out of these conversations, the Nooku Content translation extension was created, and later, the Nooku Framework, itself.
While Nooku Content is still only available to select Partners, anyone can obtain and begin developing with The Nooku Framework by visiting the Nooku developer portal hosted here on Assembla.
Their developer portal is also a fantastic example of what's possible with Assembla. They have made use of wikis, the portfolio tool, multiple subversion repositories, and the custom branding tool to make the look and feel of the portal fit the Nooku design aesthetic.
When we asked Johan why he chose assembla, he said: "Assembla is one of best software management tools for community driven Open Source projects. It's simple to use yet offers all the richness we needed to be productive from day one. It marries free and paid services together which is ideal for OS projects that expect to become big. Assembla will be key in helping us to grow our Nooku community."
He also remarked that Assembla was one of two major subversion hosting providers they considered. We were fortunate enough to win out because of the following features:
- a user's ability to have both public and private workspaces on the same account
- Both subversion and git hosting is available (in fact, now you can have multiple svn/git instances in the same workspace!)
- They wanted to try the branded portals (in fact, Nooku is a shining example of our branded portals in action)
- They felt confident that, if the project gets big enough, they could easily select parts of their project data to a Private Assembla installation.

Some open-source projects have already sprung up around this fairly young framework, so if you'd like to see some code built on the Nooku framework, be sure to check out:
- Anahita Social Engine - a platform and framework for building social networks using an organic nodes + graph + stories architecture. Offers all the features you'd expect from a social network, as well as facebook & twitter integration.
- Ninjaboard - a Joomla-native non-bridged component delivering forum functionality for Joomla-powered sites. Ninjaboard includes a unique template engine which supports "auto-skinning." A templating technique capable of blending with any template you install in your site, ninja board simply takes on the styles of the outer template.
I'm sure even more Nooku-powered projects will surface in the near future, as Johan Janssens and team have released quite a magnificent framework.
We also asked what advice Johan would give to fellow Assembla users working as part of distributed, Open Source teams. Here are four points that he stressed:
- Start small and informal. Add rules, complexity, and formality later
- Be open to improvements suggested by the community at all times, but safeguard the quality of the codebase (especially in the beginning)
- You can't do a successful Open Source project as a hobby. At a certain point, (pretty early on) it becomes a 12-hour-a-day-job
- Be wary of big companies that start open-source initiatives, rarely are they willing to spend the time required to help it grow into something big.
What do you think?
Two podcasts from Andy and a visit to California
On Saturday I did a podcast with phpBB Weekly. Check out the recording here. Host Douglas Bell summarizes this episode with "We discuss how a system like Assembla can be useful to MOD authors, or for anyone trying to manage a project with numerous users..."
On Thursday I'll talk with Bob Bloom on the "Joomla eCommerce" show at blogtalkradio. Bob wants to talk about "the important of source code repositories, and agile development tools..." Joomla and the other PHP portals like Drupal and Wordpress are an interesting case, because it is not easy to build staging and production configurations from a repository.
UPDATE: The Joomla podcast is posted here.
Andy's Notes from BarCamp Boston 5
Barcamp Boston 5 was a lot of fun. I did two presentations, and people asked for notes. I did my standard distributed agile presentation, here titled "6 ways to streamline your distributed agile development and make it easier to run your micro-multinational." Nate Aune posted some notes for that here on Etherpad
The source material is here:
6 Keys to Succeeding with Distributed Agile Development
and the good stuff: 6 Things you can Skip to Save Time in a Software Project
These were the original slides: Do's and Don'ts for Agile Teams
I also did a new presentation on "SaaS Pricing Secrets: Make the Cheap Bastards Pay," and many people are still waiting for those notes If you don't want to miss it, please subscribe to our RSS feed. For a preview, you can see Nate's notes here on Etherpad.
Highlights for me were seeing Pito Salas talk about open source election systems, VC Brad Farkas explaining how not to get screwed by VC's, complete with an in-depth discussion of the possible utility of participating preferrred, learning how YUI is put together (we use it for the Agile Planner), and Steven Wolfram presenting Wolfram Alpha.
The unconference format really worked to bring together friends and ideas in a noncommercial setting. Our local software association, the Mass Technology Leadership Council, working with super-angel Bill Warner, has adopted the unconference format for twice-annual executive level events, and packed the house with senior level executives. We always chip in on a sponsorship. I encourage everyone to sponsor a local unconference.
Should we add Etherpad as an Assembla tool?
Publish finished websites from your Git or SVN repository in seconds
The new Sites feature gives you instant Web publishing. With just two clicks, it publishes a directory from an svn or git repository to YourSpace.assembla.me, or to your own hostname.
Designers, front-end developers and marketing teams, landing page developers, and documenters will find this feature useful, as it allows them to update and work with their Websites static html, css, js, and flash files securely via subversion or git. After each commit, the changes will be reflected in the site immediately.
Publish and maintain marketing pages, optimize landing pages, show off new designs to your clients, make your project’s documentation publicly available. For front-end developers, this is a quick and easy way to publish and experiment with your ajax-driven pages immediately after each commit.
A user asks: "I only want to share the site with my clients. The assembla.me sites are publicly visible on the Web. What should I do?". Answer: In the code browser there is a a "View as Web page" button. If you go to your index.html, and select this button, you will get the same view of the site, but inside the permissioned workspace. If you need to review a site in private, share this link.
A user asks: Can I show PHP scripts as sites? Answer: The sites tool only renders the static html, css, js, images, etc. It will not run server-side scripts. If you need server side scripts, please connect to a properly configured server with our ftp tool or build tool. And, for best results use relative URL's (always a good idea) to refer to css, js, images, and page links.
Here’s a quick tour of just how simple it is to get started with our new Sites Feature:
April 14 Repo Blitz: Free unlimited SVN and GIT, and much more
This is a huge day for Assembla repository users. We are now offering free, privately permissioned, encryption enabled, unlimited user, full gigabyte, commercial quality subversion and git repositories, and that is just the beginning.
Our free private repository spaces have only the Source/svn or Source/git tool. If you want more tools, like tickets, collaboration, ftp, etc you'll have to add your space to a paid subscription plan.
To grab your free private repository select the free svn or git entries from the catalog, or by forking an existing repository. You can get the free repository without a subscription, or add an unlimited number to your existing subscription.
Why did we do it?- Because we love you and we want you to give you free unlimited commercial-quality repositories, and it's the right thing to do. Now there is no excuse for not using a professional quality repository to handle any software work.
- Because repositories have become so inexpensive on some other sites, that the next logical step is free, even for a best-of-breed provider like Assembla.
- Because most users start with repositories, and we want more commercial quality users.
- Because we have more and better features to sell. We make our money by selling our advanced ticketing, collaboration, publishing, and management features. We have been adding and improving those features.
- Because we have help from our sponsors. Owners of free repositories will see special offers for hosting services that we negotiated with leading cloud hosting vendors. If they accept these offers, they will get a great deal, AND Assembla will get a referral fee that helps pay for the free services. We hope to expand this advertising and referral program to pay for even more free services.
You can see from points four and five above that we have been working hard to build a solid business model around free repositories. We call it "code in the cloud". You bring your code out to our cloud, and we wrap all sorts of great stuff around it: Tools- our premium tools; Talent- your own global teams plus new candidates; Compute power- on-demand hosting, preconfigured servers, etc.
If you bring your code to Assembla and then use the other tools, we help you manage a project in one place, where you can capture all of the information that you will need for delivery to colleagues, clients, and future maintainers. It's a best practice if you have to deliver software to clients, because only Assembla give you a way to reassign the entire project to a new owner.
We removed the "Metered" plan from our list of subscription plans for new users. If you already have a metered plan, you can keep it as long as you like. Although metered was our most popular option, it was also our cheapest, with most subscribers only paying for a few users. And, about half of those use only the repositories. They get free services now.
But wait... There's more!You can now add multiple Subversion and Git tools to one workspace. This was the top request on feedback.assembla.com with over 300 votes. These voters want a project where they can keep one ticket list, and one team list, but maintain code in multiple repositories. Now they can just go to the Admin/tools page, add a new Source/svn or Source/git tool, and get another tab.
Effortlessly publish any repository as a Web site!
You can now select a directory out of any repository and show it on the Web at MySpace.assembla.me, or even your own domain! This will change lives here at Assembla.
Before, when we wanted to make a new site like private.assembla.com, or even just publish some landing pages, we had to configure a Web server, and configure the ftp publisher.
Now, it's so easy that you can use it just to publish documentation. Two clicks and you have a site. It leaves us feeling sort of cheated out of all that extra hassle. A lot of our users are Web design and marketing firms that save client Web sites in Assembla spaces, and I am sure they will put this feature to good use.
Visit the "sites" link from any GIT or Subversion source tab in your Space to check it out.
We raised the limit on Enterprise packages from 100 spaces to 200 spaces. We were getting calls from Web design firms that maintain more than 100 sites. Amazing. We will do what we can to make life easy for them.
Assign Billing for a space to another Assembla userWe also made it easier for project managers to create new workspaces, and assign them to the company subscription. This should make life a lot easier for those of you who have multiple project managers.
When you go to create a space, if you do not have your own plan, you will see a field with the prompt "If another subscriber will pay for this space please, provide his email or login". Enter the information for the subscriber. We will assign the new space to the subscriber, and that person will get a note with the option to decline.
The Wiki Gets a MakeoverOur Wiki tool has a new layout that makes it easier to understand the controls. The page layout has tabs across the top, like in Mediawiki. We broke from our tradition and moved the page menu to the left side, because we found that wide wiki pages overrun the right side menu, and some elements show through. The left-menu layout will work better when you paste in wide pages.
Upgrades to Repository Architecture and Security
We made another round of improvements to our repository architecture, including putting subversion servers behind a proxy that helps us scale and failover. We rebuilt the git authentication with custom SSH and git agents to authenticate users directly from our central database. I would like to thank guest developer Luciano Bello for a clever modification to OpenSSH that makes this possible. We added multiple public keys to the profile, another top user request. You won't see most of these improvements, but they will make you feel good.
What's Next?Now that we have finished a lot of repo upgrades and packaging changes, we will turn our attention to management features - ticket / issue management, portfolios, and branded portals.
An Update on Debt financing for SaaS products
Last year I wrote about the need for a new kind of financing in Credit Crisis? A good time to finance SaaS products with debt. Recently, a company called Cap-Idea saw the article and contacted me to tell me about their debt program for SaaS companies. So, we are making some progress toward the goal.
In the good old days of fat enterprise software contracts, customers paid big chunks at the time of the initial sale. The move to subscriptions, which take years to deliver the same amount of cash, has shifted the burden of funding technology development and servicing away from customers ( who are often large companies with access to bank financing), to vendors (who are often smaller startups). This is economically awkward. Now the vendors need financing.
One option is to be as cheap as I am, with overhead + G&A at 3% of revenue. I don't recommend that you try that at home, or even at the office. I was a lot more profligate when I could talk customers out of big contracts, or when (ouch) I raised VC money. With customer financing being phased out of the business model, and equity financing hard to come by, it's time to bring out debt financing.
Debt financing works because SaaS companies are excellent credit risks. They have relatively fixed revenues (usually rising, but moving only incrementally), and variable costs. Major costs are typically discretionary development and marketing expenses. So, they always have the option of cutting expenses and keeping enough cash to make payments on debt. This makes them much better credit risks than industrial companies that often have fixed expenses, but variable revenue.
But, who will lend? The banking system is designed to lend against real estate. They do idiotic things like lend for no-money-down teaser-interest-payment-only mortgages, but they get away with it because all of the other bankers are doing it. By tradition, they accept real estate as collateral. They can also lend against assets like receivables. However, they have never considered software to be an asset that can serve as collateral.
A well-run SaaS company doesn't have receivables to borrow against. It's likely that they collect at least one month in advance, or as the bankers say, they have “negative days outstanding”. However, they do have the next month's or the next year's subscription revenue coming in, very reliably. So, a SaaS debt financing is usually stated as a loan that is justified and backed by subscription revenues, and a lender would typically lend approximately 3 month's revenue.
Cap-ideaCap-idea says they want to lend $500K to $5M to companies that have $2M to $30M in annual recurring revenue. A typical deal would provide financing equal to three months of revenue. They say they have a standard term sheet. In many casese they will ask for warrants, although they are happy if they are dealing with an entrepreneur who is running the business for cash, and not to cash out warrants. If your business fits into those criteria, I suggest that you give them a call or email info@cap-idea.com and try out the deal.
Cap-idea was started recently by two guys that formerly ran a SaaS business. They really believe in the power of recurring revenue. They say their funding is from individual investors who understand the technology business. They have attracted that funding by observing that SaaS companies are more financially stable than perpetual license vendors, at low revenue run rates. They use the following simple chart to illustrate this argument.
There are a couple of reasons for lower risk. First, they have recurring revenue. And,they have reported less of the available revenue. If you think of a customer as a gold mine (my customers are laughing at this thought), the less you have removed from the mine, the more remains in it.
SaaS companies are more financially sophisticated at low revenue run rates. For example, they often have very sophisticated programs to increase their average revenue per customer, and they might test them on 1000 customers at the point where they are getting $1M/year. At the same level of revenue, and old-style enterprise software company would probably be in the “I met this guy at a conference” level of customer acquisition.
SaaS CapitalSaaS Capital was a venture-funded startup that was trying to do the same thing. Last year I talked to former EVP Bill Rurode, and he shared a lot of things that they learned. It sounded like a smart operation. I'm going to share two slides here the are the property of SaaS capital. The first shows that a serious SaaS company tends to burn even more cash than the guys that used to sell "perpetual" licenses, because it takes them longer to get money from customers.
The next table proves my point about SaaS companies being good credit risks beause they have variable costs. SaaS Capital imagined a company with $5M in subscription revenues, cutting development and marketing expenses, and being run purely for cash. This generates an amazing $3.3M in cash flow. The slide is a little big for this blog column, but worth it.
Unfortunately, SaaS Capital closed down during the financial crisis, in the fall of 2008, because they couldn't raise money to fund the loans. This may have been bad timing – it was the worst possible time for a financial institution to seek money – but it also reflected a structural problem. They weren't a bank, and they didn't have access to the incredibly cheap funding that banks have been getting.
SVB is a bank, although they are different from most banks, with services that are designed for small, VC-funded companies. I spoke with Dan Allred there, who told me about their program for lending to SaaS companies. He rattled off almost the same terms as Cap-Idea. They will lend 3 months revenue, with a $500K minimum, asking for warrants if the company is still losing money. According to Dan, "We don't have standard term sheets. We like to think that is why we are important to the industry. We will evaluate each business individually, and tailor something to meet their needs." I hope that we hear back from some readers who test SVB on this offer.
Dan asked "Is is this really software, software as a service, the high margin stuff? Or is it really 'service as a service?' And, is it mission critical for the customer?" Those are good questions to ask in order to determine the value of your service and your business.
Citizen's Bank – the Walk of ShameI decided to make a small test of my current bank – Citizen's Bank. I asked them for a $10K equipment loan. This should have been a no-brainer for them, because Assembla has been a good customer for four years, and we keep $300K in a deposit account earning essentially zero interest. This is a best case scenario from a banker's point of view, although silly on my side. I give them money, and they loan it back to me with fees and interest charges. They sounded pleasant enough at first, and they gave me forms to fill out, and asked for financial statements and tax returns (that's moving out of friendly to businesslike), and then asked for a personal guarantee (starting to sound a bit suspicious by then). After all that, they killed the deal through the simple mechanism of not responding, and not returning my calls. What this means is … they aren't actually making small business loans. They are just PRETENDING to do it to, because that's what they have to do to justify getting free money from the Fed, TARP and other subsidies from the US government, and a huge bailout. Citizens is a division of Royal Bank of Scotland, which recently sucked up a $74B bailout from the British government, the biggest bank bailout in the world.
Citizen's does a good job sending our bank wires, but won't lend to small businesses, and is in fact deceptive. I'd like to think that I am not encouraging bad behavior by supporting Citizen's Bank and other institutions like them, so I guess I should initiate a move. Citizens, you have been put on notice. Walk the walk of shame.
Scale is important. A small software company with good fiscal management can't get a loan, but a giant bank with bad judgment and terrible losses pulls in tens of billions of dollars. The guys that originate the loans only earn a small percentage fee, which is proportional to the size of the loan. To make a living, they need to lend out at least $500K at a time, and ideally they want to lend out several million.
To access financing that covers the next three months of subscription revenues, you should have revenues of at least $2M/year, or a run rate of at least $200K/month. That's not much in most businesses, but in the Web 2.0 world, costs are low, and $200K/month might represent five thousand customers. If you put a couple of $100K/month products together, all of a sudden it's a good prospect for a lender. So, I expect to see a lot of mergers, acquisitions, and even rollups as small companies band together to get better and better financing terms.
Standardization?Standardization is the one ingredient that can make any debt market expand many times, the way that mortgage debt and credit card markets expanded. If there is a standard term sheet and a shared understanding of collateral, it will allow bankers to quickly justify these deals to the other bankers who fund the deals. This will drive down the minimum size of the deal, drive down costs, and expand the amount of money available. So, that is the next step.
