Blog

  • The Main Challenge with Rapid Web App Development

    Rapid web application development is amazing. You can go from idea to prototype in a weekend and start testing the concept with real users in no time. The time and energy it takes to launch a web app is 1/50th of what it used to be 10 years ago. There’s one main challenge with rapid web app development:

    Product development can easily outpace the customer feedback.

    Think about it: users need time to experiment with new features and provide feedback. With a clean code base, no code debt, and frameworks like Rails or symfony, application development is blazing fast. In fact, it is too fast if you don’t have an opinionated vision of what will be included, and more importantly, what will be excluded from the product. Yes, having a culture of experimentation is great, but that needs to be measured against features that are truly experiments, and will be removed if they aren’t successful.

    The next time you high-five your co-founder due to the awesome features just implemented, step back and ask if the pace of development is in-line with market feedback and the new features will be used by 80% of your desired customer base.

    What else? What do you think is the main challenge of rapid web app development?

  • Two Schools of Thought on Scaling B2B SaaS App Data

    Scaling the data storage for B2B Software-as-a-Service (SaaS) applications typically falls under two schools of thought: one or more fully-contained accounts per database or specialized multi-tenant sub-systems that handle certain types of data. There are pros and cons to each approach.

    Fully-Contained Accounts

    B2B apps are often simpler than B2C apps when it comes to data storage. In a B2B app, one account/user doesn’t need to know about another, whereas in a B2C app accounts/users have to have a global context for all other accounts/users (think Facebook Friend requests). Fully-contained accounts can be on individual databases or multi-tenant such that one or more accounts are on the same database delineated by an account ID.

    One analogy I like to use is housing for people. A fully-contained account on a private database is a like a single family home. Multiple fully-contained accounts on one database is like one building in an apartment complex where everyone gets their own space but there are greater economies of scale having everyone together.

    Challenges for fully-contained accounts in a multi-tenant environment arise when the size of the accounts start changing and growing at different rates. Back to the apartment complex example, one family wants a home gym and decides they want a new bedroom for it, only all the other three bedroom apartments in the complex are full. What does the family do? Well if the family can afford it the tendency is to go to a single family home that is suited uniquely to them.

    A single family home is much more expensive to maintain, on a per family basis, compared to a building in an apartment complex. Services like landscaping, security, and amenities like a gym or pool are much more affordable when spread out over dozens or hundreds of people. A single family home can have all those accoutrements but the cost structure is no where near the same.

    Specialized Sub-Systems

    Now, assume some accounts in the multi-tenant fully-contained database approach grow so large that they need their own dedicated database. With the housing analogy, larger families start moving to single family homes from the building in an apartment complex. Assume the apartment complex didn’t have a pool — the app didn’t have that feature yet. Now, the startup decides a new feature is needed — the equivalent of a pool — and adds it to the application. The pool is manageable in the apartment complex that houses 100 families with the cost of chemical treatments, cleaning, etc spread out over a large number of users. For the single family homes that were created by the accounts that got too large, each now has a pool by the nature of SaaS applications having a single code base for all customers, and those pools all need to be managed. Going from pool to pool, even with automated tools and help, becomes less efficient and more costly to do chemical treatments, cleaning, etc.

    Specialized storage and application sub-systems are designed to solve this problem. Think of a simple survey application. The info for the accounts, users, billing, survey questions, and more are pretty simple and not storage intensive. What is storage intensive is keeping track of all the survey responses and survey respondents. That information is going to grow exponentially compared to the core account data. It deserves a dedicated sub-system.

    Now, back to the housing analogy. Instead of families desiring a home gym moving to single family homes, the apartment complex introduces new buildings in the same complex, only the different buildings serve specific functions like a gym with an indoor pool, parking deck, and storage units for for each family. The individual features and storage needs get dedicated attention such that the regular gym with pool can grow into a 100,000 square foot facility with Olympic-size pool, and all the families can stay put in the apartment building that’s part of the same complex. Areas that change disproportionately can get the necessary attention without affecting other aspects of the application.

    Conclusion

    When starting out, fully-contained accounts is easier to implement and doesn’t require much overhead, making it the right choice for young B2B SaaS apps. If data grows linearly and everything is tightly related, keep it simple with fully-contained accounts. As the application grows, and certain types of data grow disproportionately faster than others, specialized sub-systems scale better and in a more cost-effective manner, making them the right choice for mature, data-intensive B2B SaaS apps.

    What else? What are your thoughts on these two schools of thought for scaling B2B SaaS app data?

  • Founder Math for VC Money to Make Sense

    Today I was talking to a journalist who asked a variety of questions about my startup. One of the things he was surprised by was that we’d gotten to our decent size without raising money from VCs. Normally, people mention that it’s unusual and then move on to the next question. Well, he legitimately wanted to know why we didn’t raise money. I quickly explained that it didn’t make sense for 99.9% of startups to raise institutional money for a variety of reasons.

    When entrepreneurs ask me about raising money I like to ask them: what’s your founder math for VC money to make sense? I believe entrepreneurs should build their business to last with no exit strategy, but if you do have a goal of selling it in 5-10 years some founder math related to equity is in order. If you take a look at founder equity at time of IPO you’ll see it’s in the 4-15% range and only 5-10% of companies that raise VC money exit for more than $100 million.

    So, owning 10% of something worth $100M, which would be a phenomenal outcome, and happens a tiny fraction of the time for VC-backed companies (a very high bar), nets you $10M. $10M is a huge amount of money, but what amount of effort and luck is required to make $10M without VC money. To make $10M you could build a business with $6M in revenue, $2M in profit, and sell it for 5x profit for a total of $10M. The “small” exit is 100x more likely of a scenario than the big exit.

    It takes a special situation for the founder math to make sense to raise VC money. It exists, but is rare.

    What else? What do you think of the founder math for VC money to make sense?

  • B2C Startups in the Southeast

    Today I had the opportunity to independently talk with two different entrepreneurs at my office. Coincidentally, both are working on B2C web app startups, whereas most I talk to are working on B2B startups. Each entrepreneur, late in the conversation, volunteered that they’ve found B2C startups in the Southeast few and far between. When it comes to angel investors, they’ve had even more difficulties as investors in the region prefer to see a clear revenue model.

    I believe there are a number of B2C startups in the area, but since it is the minority compared to B2B startups, the sense of community has been more difficult to foster. In addition, B2C startups, all things being equal, have a more difficult time achieving success compared to B2B startups. Here are a few reasons why B2C can be more difficult than B2B in the Southeast:

    • B2C startups often require an even slicker, more polished interface than business apps and good designers are hard to come by (outsourcing opportunity?)
    • B2C startups often need to achieve a significantly greater number of users since the revenue per user is often very low (e.g. $.50 CPMs on advertisements requires a huge amount of traffic to generate a million in revenue)
    • B2C startups, when raising money, have fewer local success stories and exits, to draw from
    • B2C startups need a way to acquire customers in a low-cost manner through viral mechanisms, SEO, and more to achieve economies of scale, and it’s difficult to make that work

    I hope to see a robust B2C startup community develop as there are a number of talented people working on those types of startups.

    What else? What are your thoughts on B2C startups in the Southeast?

  • My New Book: Startup Upstart

    After 18 months of work I’m happy to say that my new book, Startup Upstart, is done. Startup Upstart is the culmination of the best of nearly 1,000 blog posts from this blog. I selected some of the most popular posts, fleshed them out, and wove them together with the help of a great editor.  It’s been submitted to the printers and will be ready on February 22nd.

    We’ll be launching the book at Startup Riot in Atlanta on February 22, 2012 and all attendees will receive a free copy.

    Startup Upstart, much like this blog, is an attempt to document some of my observations and musings on entrepreneurship. Entrepreneurship, as many already know, has been my passion and creative outlet for over 15 years. My goal is to help others not make the same mistakes I’ve made as well as accelerate their time to success.

    I hope you enjoy the book as much I do and I look forward to your feedback and insight.

    Update: The book is launched and available on Amazon.com!

  • Application Performance Over Time for Startups

    Application performance/speed is a feature that’s incredibly valuable. Think about it: if a website or SaaS application performs slowly on a regular basis you’re much more likely to start evaluating other options. For a complex, multi-tenant web app the number of moving parts grows over time making consistent, fast performance more and more challenging.

    Here are some items to consider doing on a regular basis:

    • Evaluate raw database size on the filesystem as well as number of rows in the 10 largest tables (e.g. take a snapshot of this in a table or manually put the values in a Google Spreadsheet once per month)
    • Track the amount of time it takes to complete nightly background jobs and record it on a regular basis for time series analytics
    • Incorporate in-app tools to measure database query execution time as well as log slow queries
    • Measure the page load time of the 25 most important user functions with real browser checks using Rigor.com, or a similar tool, on a daily basis

    One of the key factors is measuring the rate of change and growth over time — it’s best to get out of front of potential speed issues rather than deal with them when they arrive. Application performance is a feature and needs to treated as such.

    What else? What are some other items to consider for application performance over time for startups?

  • The Talent War and Atlanta’s 10 Year Startup Opportunity

    English: The historic Georgia Tech trees on ce...
    Georgia Tech Tree Image via Wikipedia

    Last week I was at a brainstorming session for Georgia Tech’s Enterprise Innovation Institute initiative called Tech Connect. Tech Connect is attempting to address the gap in the market for “technology teenagers”, defined as growing companies between $1 million and $50 million in revenue with established products and services. The thinking is that startups trying to get off the ground have strong programs via the ATDC and large companies, especially ones considering relocating, are well supported by the Metro Atlanta Chamber of Commerce and regional economic development initiatives. Technology teenagers, which are somewhat successful, have already created jobs, and are most likely to create more jobs aren’t part of the conversation. Arguably, technology teenagers are the most important economic development engine, and the most neglected.

    At the TechConnect event I sat next to Steve McGraw, CEO of Compliance 360, which was just acquired for $42.3 million by SAI Global last month. Steve and I talked about the shortage of software engineers, with a rumored negative unemployment rate of 4 to 1 (e.g. there are four software development jobs in Atlanta for every one software developer looking to change jobs). There’s a talent war going on right now for smart people with programming skills.

    Why the acute shortage of skilled developers? Open source software, cloud computing, iPhones, and more have opened up a whole new world of opportunities that weren’t available 10 years ago. And we’re just getting started.

    As an aside, note that IT skills and software development skills are two different things. IT skills, like a MCSE Certification to manage Microsoft networks are plentiful. Software development skills from people that meet the smart and get things done criteria are what’s in need. It’s the reason New York City is betting big on an engineering school to the tune of $100 million. Only, Atlanta already has that school in Georgia Tech, and it’s worth billions.

    Georgia Tech is Atlanta’s 10 year startup opportunity. More specifically, we need a concerted effort to infuse startups into the campus culture and stimulate more GA Tech seniors to pursue jobs with startups. Unfortunately, companies like Google and Facebook get the attention at campus recruiting events.

    There are 1,000 undergrads in the GA Tech College of Computing. Assume 250 graduate each year, what percentage join a startup in the Atlanta area? 15? 20? Imagine if that number was 50 or 75 per year. The more graduates that join startups each year the more people that add to the momentum of the Atlanta startup community. More engineers in the community create more opportunities for future startups — they are the future founders and leaders.

    A talent war is going on right now and Atlanta is in the middle of it. Georgia Tech is the largest engineering school in the country, and produces incredible software engineers. Atlanta’s 10 year startup opportunity is unique in that the talent is already here — already drawn to Georgia Tech, in Atlanta, in the heart of the city. Significantly increasing the number of Georgia Tech seniors that join local startups should be priority number one for the long-term growth of the startup community.

  • Leadership Development Programs in Startups

    Lately I’ve been working on a simple leadership development program internally. A startup can only grow as fast as the leaders within the company grow, and no faster, so developing leaders is key. The current approach is fairly simple and works as follows:

    • Meet once per month for one hour
    • Separate managers into several groups such that no direct report of a manager is in the same group
    • Discuss one book or article per month (our book for this month is Drive by Daniel Pink)
    • Talk about any leadership challenges or opportunities over the past 30 days as well as the up-coming 30 days

    One of the most important parts of this program is actually taking the time to reflect for a few hours each month and to be intentional about getting better as a leader. Our program is just getting started but I’m excited to see how it progresses and how our leaders develop.

    What else? What are some other ideas for a leadership development program in a startup?

  • Crock Pot Instead of Microwave Mentality for Startups

    Recently I heard an analogy that I thought was particularly apt: too many entrepreneurs expect results like a microwave warms food. Yes, a microwave can heat up food quickly, and pop popcorn fast, but it’s main function is to heat something that’s already been prepared and cooked.

    Entrepreneurs that expect results in five minutes by rehashing something someone else has already done are rarely successful, and often disappointed. Instead, entrepreneurs need to think more like the crock pot mentality where a number of fresh ingredients come together and cook for many hours before results are available. Startup success in five years is much more likely than success in five months.

    The next time you hear an entrepreneur complain about the lack of success ask yourself if they have the crock pot or microwave mentality for their startup. The crock pot approach is going to win more frequently.

    What else? What are your thoughts on the crock pot vs microwave mentality for startups?

  • Interviews Where Only One Question Matters

    A month ago I was talking to an entrepreneur about corporate culture and the interview process. He said that he knew of an entrepreneur that would ask a bunch of questions during the interview process but only cared about one of them. There was one single interview question that decided the majority of the hiring process. I asked if he remembered the question, but he didn’t.

    The mere idea that an interview where only one question matters got me thinking. For us, we ask a number of interview questions and there are only three that really matter, each aligned around one of our core values. Could we do it in one question? Yes, one question accounts for the majority weight of the three important questions, and gets us pretty far, but would leave us short of our current success rate.

    Our interview process is designed to find candidates that fit our corporate culture (#1), are smart, and get things done. Joel on Software articulates the smart and gets things done idea nicely. The next time you are interviewing someone, ask yourself what your three most important interviews questions are and why. You might surprise yourself.

    What else? What interview questions matter most to you?