Wednesday, August 24, 2005

status update

We're now five months in and the baby is doing fine. We've grown from 2 to 7 people, raised startup capital, validated our approach, and written code to automate the collection, transformation, and analysis of market sentiment data. Our group has gelled and is now functioning as a team (we also just finished climbing a 14'er together, an annual tradition I've fostered at the last two companies). We've delivered 7 development iterations and met approximately 100 advisors, investors, prospects, and potential employees. We've also added two new languages (i'll blog on these later) to our arsenal that I believe will substantially increase productivity.

Yes, we've had hiccups along the way. These have had mostly to do with lack of resources where we've had to make due with less (for instance, in the first 3 months we were running development off of one server that included source control, database, and production software). None of our mistakes have been mortal however and we've been able to learn from them and move on.

The next two months will be critical as we complete the research on our second proof point and alpha test with a handful of customers. As you can tell we're very much development focused at this point. Things will begin to shift sometime in the first quarter of next year as we begin to gain sales traction.

Saturday, August 13, 2005

on being agile

Strength, speed, and agility are the hallmarks of success in athletics. A startup requires versions of these qualities as well in order to compete with larger competitors. I would categorize strength as intelligence, speed as the ability to move quickly and unencumbered, and agility as the ability to quickly adapt the product and business to changing business conditions. I've already talked about speed in Terminal Velocity. Today I want to talk about agility.

Agile software development has been around for a few years now and has started to gain hold even in large companies. I have used the Extreme Programming version of agile development in my last two companies and am currently using (and am a big fan of) software from Rally Development to manage this process at my current company. The tenets of agile development are mostly common sense and extend beyond the boundaries of managing the development effort. Here are a few:

  • Keep in constant touch with the customer - make sure you are delivering a product with the highest value to your customer
  • Integrate Often - Don't wait til the end of a long development cycle to see if everything hangs together, instead, constantly integrate to ensure that modules don't drift apart.
  • Refactor - Is there a simpler and more elegant way you could have accomplished something? If so, change how it is done.
  • KISS - you all know what the acronym stands for. Find the simplest way to deliver what the customer needs. Refactor later if new requirements emerge.
  • Deliver often - At the end of each development iteration show the customer the product to get feedback as to whether you're on course or not.
  • Pair programming - Two heads are better than one. At least on critical components of the code.
All of these tenets can be applied to running the business as well. Agile development methodologies center around delivering high value to the customer. You do this by including the customer in the development cycle and testing with them to constantly course correct. This gives you the agility to tweak product direction rapidly.

Here are the tenets applied to business:

  • Keep in constant touch with the customer - developing a close relationship with the customer will: 1. keep them happy, 2. help you focus on what is important to the customer base, 3. build a good reference account that can be used for further pipeline development.
  • Integrate Often - keep your departments in sync with one another. Have a unified goal for the company and make sure all departments are striving towards this goal. Proximity does wonders. I remember speaking to the CEO of Freshwater Software a few years back (bought by Mercury Interactive in 2001). She mixed up the seating arrangement in the company so that people built personal relationships across departments. This fostered inter-department communication and helped keep the company on track.
  • Refactor - Is there a simpler and more elegant way you could have accomplished something? If so, change how it is done. This advice is good across the board. If licensing doesn't make sense for how your customers do business, change it.
  • KISS - you all know what the acronym stands for. Find the simplest way to deliver what the customer needs. Refactor later if new requirements emerge.
  • Deliver often - If something needs to change in the business, test market this with customers. This goes hand in hand with bullet one and further emphasizes a focus on customers. Remember, you're in business to deliver value to your customers.
  • Pair programming - Two heads are better than one. At least on critical decisions in the company.
The concept of agile development applied to the business may be a stretch, but I have applied the simple concept of focus on constant customer feedback to drive business decisions in the last two companies with a high degree of success. I bet you can too!

Tuesday, August 09, 2005

So now you have money...

You've just raised a round of angel or venture capital. You're flush with cash, you can pay your staff and maybe even yourself. For one brief shining moment you are not asking anyone for money (assuming all checks have promptly arrived and have been deposited with your latest friend, the banker). This won't last long, so bask in the glory of the moment, crack open a bottle of mad dog 20/20 (the opus one comes later) and promptly get back to work.

You now want to focus 100% attention to operations and R&D. First review your budget in great detail. You will want to put together a couple of plans with different assumptions. The first assumption is that you take in no revenue and have no other source of capital than the money you now have in the bank. How long can you stretch the almighty dollars you have just painstakingly raised? This is known as your runway and will help give you a feel for when you should start raising your next round. This will also give you much needed parameters around prioritization of cash going out of the company and when you absolutely need to spend money. The second model you put together should have revenue assumptions. What is the earliest (realistic) date you could start bringing revenue into the company. Revenue both extends the runway of your company and leads to higher perceived value.

What are the stumbling blocks to realizing this second model? What is the most efficient expenditure of capital to get you there? i.e negotiate, but do not cut corners on expenses along your critical path to revenue. You must find the right balance on time to market with least amount of cash out. I like to think of it more in terms of "time to value" instead of time to market. To me, time to market implies sales and marketing teams. In an early stage company you should not have a sales and marketing team. These are called "founders." Try to drive to something of value that can be sold as quickly as possible, testing the market along the way with advisors and prospects.

When you've struck your hypothetical value proposition (or some other value prop you've found laying along the roadside) you'll know because you'll have a smiling customer on the other side of your handshake. Now is the time to take in that next venture round (or a strategic round from your smiling customer) and ramp sales, marketing, and of course, customer support.

... but we're getting way ahead of ourselves. Months before that you will need to start meeting with VCs, prospective customers, and building out that golden nugget of value

pull your banner ads until google does a better job