Wednesday, October 24, 2007

It's Official, Search Sucks

AutoByTel just commissioned a study on people's search habits, which found that 72% of Americans are experiencing "Search Engine Fatigue". They search but they are not finding what they are looking for. We in the industry are quite familiar with search fatigue. As I have posted before, most of the searching I do is vertical search from the Firefox toolbar with plugins like Wikipedia, Yelp, IMDB, Whois, etc.

Search ranking based on counting the number of inbound links made a lot of sense when inbound links actually meant something. Today, people have gamed the system so much that inbound links mean nothing. If you don't believe this statement, search for something that nobody cares to make money off of like Bridge Construction and the first few links actually are relevant and there are relevant targeted ads off to the right! It the mindblowing Google experience we all had a few years ago when we set Google to be our homepage.

Now search for something like Futon Filling or iPod Connectivity. These types of searches used to point to the content that people thought was most relevant. Now it points to the content that has the most cross linking by smarmy advertisers. Global search has made a gradual transition over the years from something useful to something useless, yet people are still repeating the patterns that used to work and wondering what is going on.

Is link-based page ranking dead? Maybe not, Jimmy Wales announced last year that he is building a search engine based off of the number of links from Wikipedia, which are well qualified links. Google keeps trying to stem the tide of bad links, but eventually they will have to change their algorithm to reflect the reality that most links suck. In the meantime, I think it is safe to say that global search is pretty lame, and I am going to stick with vertical search for most of my searching.

Friday, October 19, 2007

GOOG >= MSFT Redux

I got some good natured ribbing when I posted nine months ago that Google would soon exceed Microsoft's market cap on the rational that the market would soon value the dominant Internet company as worth more than the dominant PC company. At the time, Google was worth $150B (64 P/E) and Microsoft was worth twice as much at $300B (26 P/E).

Google is now worth $201B and Microsoft is worth $284B, so Google is now worth 71% as much as Microsoft. If Google's P/E had held at 64 it would now be worth more than Microsoft. At Google's current P/E of 55, it only needs to increase its annual revenue by a few billion to equal Microsoft's market cap.

That would put GOOG at $915/sh, although it is likely that some type of market correction will lower the value of both companies. It is also interesting to note that Google is now worth more than CSCO, the dominant networking company, whose market cap is $192B (27 P/E).

Monday, September 17, 2007

DHTML News Today: JQuery UI 1.0, ActiveGrid/Dojo

Two interesting DHTML library announcements on the same day:

  • JQuery UI 1.0 has finally been released! JQuery is best known as a phenomenally efficient way to update and manipulate DOMs from JavaScript. It is unbelievable how much JavaScript code one line of JQuery can replace. JQuery has numerous user interface plugins, the most important of which have been upgraded and delivered as the new JQuery UI library. My new project has an extensive amount of UI intensive features like drag-and-drop, resize, and DOM manipulation, and I went through several JavaScript libraries until Carnet Williams at ChipIn told me about JQuery's interface plugins. I have been incredibly pleased with JQuery UI, in particular its tight codebase and its very clean way of separating the DOM from JavaScript DOM enhancements.

  • My old company ActiveGrid has announced it has acquired the TurboAJAX Group and is going to support the Dojo toolkit. I think that this is great news, Dojo has a ton of great widgets and features, but it can be hard to learn and extend. Having a company officially support Dojo is an important step in increasing its adoption.

    It's great to see the DHTML JavaScript market maturing. The better the libraries get, the more great web apps we all get to use!
  • Sunday, September 16, 2007

    Inverting the Portal with Widgets

    When My Yahoo! first came out, many people spent hours and hours building tabs of customized content. For the first time, you could easily select from a wide array of content and bring it to your own home page.

    Very quickly, portal servers made it into the enterprise, offering the capability for various groups in a company to deliver deliver portlets that could be rolled up into a pages for customers or for employees to customize what data they saw on their homepage. A lot of enterprises adopted portal servers but found that portlets were obtuse to create and that portal servers inordinately expensive for the security and management features they provided.

    When Google first introduced what is known as iGoogle, it was at first very similar to My Yahoo! Google came up with their own obtuse way of creating gadgets (their word for widgets) and an ecosystem of gadgets materialized for the iGoogle homepage. When Google introduced "Google Gadgets for Your Homepage," users could take widgets hosted at Google and add them to their blogs, wikis - anywhere on the web. All of a sudden, Google Gadgets took off into the stratosphere!

    Using the widget model to decouple the content frames from the portal metaphor offers all of the benefits of a portal with the flexibility of distributed content. Distributed portal sites like iGoogle and NetVibes are in the vanguard, with SaaS companies like Salesforce quickly moving to this new model. Inside enterprises, the ability to deliver interactive content to both the existing portal infrastructure or in a wiki or blog is an extremely efficient method if sharing information across groups.

    Portals are an excellent aggregation and discovery point for widgets. As the iGoogle experience counter intuitively shows, portals become even more useful when their content can be run outside of the portal!

    Monday, September 10, 2007

    "Open Source" License for User Generated Content

    The best thing about the popular open source licenses is that they are all very well known, so you can just state Apache or GPL or MPL and people understand exactly what they can and can't do with the code, and what they can and can't do with their extensions to the code. In order to be effective, a license should be:

  • Credible - Written and supported by a credible organization without a commercial agenda.
  • Understandable - The ins and outs of the license should be understood by non-IP lawyers.
  • Well known - The end user should recognize the license and understand how it works or at least know someone who can explain it to them.

    Recently I have been evaluating licenses for user generated content for a new project. I was disappointed to see that most sites with user generated content have arcane, legalistic terms and conditions and that there is no consistency from site to site. The problem when you don't use a well known license is that you end up having to make convoluted explanations and your users are still confused no matter what. Check out paragraph 9 of Yahoo's Terms of Service to learn what rights you have to any photos you have uploaded to Flickr or this news.com article where Google clarifies its terms and conditions for your Google Docs documents.

    Since the Creative Commons is a repository for authors and artists to share their work, I checked out their license to see if it was relevant. The creative commons license is cafeteria-style and is perfectly suited for user generated content! I have long been a big fan of commercial friendly licenses and have released a lot of my early code into the public domain, with the Java license when I was at j.rad, and with the Apache license when I was at ActiveGrid. Therefore, my inclination is to go with the Creative Commons Attribution (by) license, which allows commercial use of works with attribution. In open source terms, it is most like MPL+Attribution.

    I am pleased that the open source principles that software engineers know have made it into the content world, and that we will be able to use a credible, understandable, and well known license for content in our new project!
  • Monetizing Content in the Age of the Atomized Web

    One of the adages of the .com was that "content is king." Whoever owned the content got the eyeballs, and therefore the ad revenue for those eyeballs. The atomization of the web has turned this on its head, since content is now syndicated through feeds and widgets. Your page impressions go down if people are reading your content in Google Reader and seeing the weather report as a little box on their iGoogle homepage. Content is no longer king, your feed reader is king!

    So is content dead? How can a content provider still achieve page impressions in the age of the atomized web? How can an advertiser reach its target market when banner and keyword ads are seen less frequently? Following are four emerging advertising technologies that marketers can add to their online marketing mix to take advantage of the atomization of the web.

  • Feed Ads - Embedding contextual advertising items into your feeds is a great way to add advertising to your syndicated content. Feedburner was the market leader in this category, and Google's $100M acquisition of Feedburner shows that even Google recognizes that embedding advertising in feeds is important. So syndicate your content and embed the ads in the syndication, it is the same as a user going around your website and seeing banner ads, they are just in their feed reader instead of your website.

  • Feed Teasers - A method that works if you have really interesting content is showing only the first paragraph of content and making users click to see the full content which can include traditional online ads such as banner ads. This is the model that newspapers use, where the first page has a few paragraphs and no ads, and people can continue reading inside the paper where there are ads. The downside is that users have to be super interested to click through, so it is a pretty high bar to entice users into your site.

  • Sponsored Widgets - A big part of advertising is getting your brand out there, and sponsoring a widget is much more effective than a banner ad in the age of the atomized web. Visa recently sponsored a slew of widgets with Forbes content. TripAdvisor built a popular Facebook widget that people can add to their profiles to show what cities they have been to. Now Visa has its brand on people's various iGoogle homepages and blogs and TripAdvisor has its brand on a multitude of Facebook profiles (121,000 as of today).

  • Widget Ads - Customers are amenable to using widgets with personalized promotions or content delivery when there is a trust relationship with a company. Examples include Southwest Airline's Ding widget and Aperio's Salesforce iGoogle Gadgets. People add these widgets to their iGoogle desktops or actual desktops and the companies now have a direct channel to them every day. The trick here is to make a widget that actual does something useful for the customer!

    With Feed Ads, Feed Teasers, Sponsored Widgets, and Widget Ads, there are plenty of creative opportunities for content producers to deliver ads in an atomized web. Long live the content!
  • Saturday, August 11, 2007

    A Startup in the Cloud


    This post was the source of a BusinessWeek article by Rachael King.

    There is a remarkable difference in the method and cost of startup infrastructure between when I started ActiveGrid in 2003 and wdgtbldr in 2007.

    Back in 2003, we still had to buy our own servers and hire IT people to get some basic services. This mindset prevailed into 2007, where to upgrade our Wiki into something much more functional, I learned that IT had physically installed two iterations of wikis on our servers. It was beyond me what features we would get from our own installation vs. a hosted one, so I suggested a policy of only using hosted infrastructure moving forwards. This led to a suggestion of having some meetings to discuss the concept, which in my experience means "not going to happen." :)

    Starting with a clean slate at wdgtbldr, there is definitely an "everything must be hosted" policy, and I am amazed at how cheaply and easily all of the functions of a small business can be set up and shared between employees. There are no servers, no VPN to get to the servers, no software to install, configure, and maintain, and definitely no part time IT people. Everything works as advertised, since it is not our installation of Bugzilla/wiki/etc. that has to be maintained, rather proven infrastructure shared by many other companies.

    Following is a list of wdgtbldr's hosted vendors and monthly cost. In every instance, we got to check out for free what we were going to get before purchasing a monthly plan with additional features. Everything other than hosting costs <$400/mo, and with dedicated hosting <$800/mo!

    Function
    Vendor
    Monthly Cost
    CRMZoho CRM$0
    Conference CallingFreeConferenceCall.com$0
    Site AnalyticsGoogle Analytics$0
    Email ForwardingGoDaddy$1
    Digital FaxPacketel$4
    Forum HostingSiteGround$6
    Wikipbwiki$10
    AccountingQuickBooks Online$20
    Mail + Calendar + AppsGoogle Apps$20
    Source Code Control + Issue TrackingCVS Dude$30
    Email CampaignsConstant Contact$30
    QASoasta$250
    HostingOC-48, Dedicated~$400

    Thursday, August 02, 2007

    Why Microsoft Can't Keep Up

    Remember how Microsoft would take over a market? Just keep cycling through a product until they got to the magic v3 and in the meantime use some nice monopoly muscle to shove competitors out of the way? We saw it happen to the Mac OS for GUIs, WordPerfect for word processing, Lotus for spreadsheets, Netscape for web browsing, Netware for file/printer sharing, ccMail for email, etc. In each case Microsoft took on an entrenched product and essentially copied and improved that product until they won, the aggregate result is really remarkable in hindsight.

    So why isn't this working now against Google? Live Search is just as good as Google. Live Maps is gorgeous. But Windows Live pales in comparison to the network offect of Google's array of products. The law of accelerating returns has finally hit software services in a big way with the innovations of web-based software delivery and atomized services. Microsoft is running its old playbook and is trying to copy Google, but by the time they get to their magic v3, Google is already on v10 of 10 different mini websites.

    The only decent innovation out of Microsoft in the past few years is Popfly/Silverlight, one thing they really do understand better than anyone else is developers. But without the credibility of Bill Gates pushing a change like he did with Internet Explorer vs. MSN in the mid-90s, I do not see how Microsoft management is going to be able to turn the company towards delivering software in the new Web 2.0 model. Something different needs to happen over there, for example have a free, ad supported version of Windows with a bunch of Internet and collaboration enabled applications. Or they could buy Zoho. SOMETHING!

    Tuesday, July 10, 2007

    Make the Web Come to You with Feeds and Widgets

    Lately I have noticed that an entire day can go by without "surfing" the web. Instead, the web comes to me. I scroll through all of the news and information that I am interested in using Google Reader, and sometime dig into the things that people are linking. My iGoogle home page tracks stocks, weather, top newsfeeds, and other just-in-time information. About the only actual website I go to nowadays is Facebook, mainly because there isn't a widget that shows me the friend updates, especially about what apps they are checking out (which is of particular interest to me nowadays).

    When I want to find out about something, I use vertical search in the Firefox toolbar to select Wikipedia, IMDB, LinkedIn, Dictionary.com, etc. I very rarely use Google search unless I am looking for something obscure.

    Net net, I never see any advertising, especially with Adblock Plus. Nielson is cluing in to this, they just came out and said that pageviews don't matter. For example, I don't remember the last time I saw a travel-related ad, but I have the TripAdvisor logo on my Facebook profile on a widget that shows the cities I've been to and subscribe to a couple of travel related blogs.

    What does all this mean? The web is getting turned upside down. Web sites will matter less than fragments of websites delivered through iFrames and widgets. Advertising is going to shift from push mechanisms like keywords and banner ads to opt-in pull mechanisms like widgets added to people's profiles and blogs.

    Friday, June 29, 2007

    Startup 101: Staying Funded

    The number one job of a startup CEO is to secure funding for his or her company. Most early stage startups need external investment to cover costs, so without funding, there is no company. The number one question a startup CEO needs to be able to answer is "how are you going to get to the next round of funding?" If there is no credible answer to that question, there is going to be a very unpleasant road ahead. I ran out of money at JRad, and didn't run out of money at ActiveGrid, and believe me, there's a big difference! Following are the three variables at the disposal of a CEO in order to secure the next round of funding: timing, traction, and positioning.

  • Timing - Startups generally have 12-18 months of cash between funding rounds. You have to raise money while you still have 6 months of cash in the bank or you are going to get tooled as potential investors wait you out in order to increase their leverage. The math is simple: if there is 12 months of money in the bank, 12-18 months - 6 months = 6-12 months, leaving 6-12 months to get the business to a point where it is set up to raise its next round of funding. 6-12 months is not a long time, which is why startups have to move at a very accelerated pace.

  • Traction - The best way to raise money is to grow revenue quarter to quarter, hopefully exponential revenue growth. If the market is still maturing and the revenue has yet to materialize, an exponential growth of users that will one day lead to revenue is the next best thing to revenue. Generally a market category will have a ratio to apply to these metrics to value a company, such as 6x trailing revenue or $1/user, so you can point to other deals to establish the value of your company.

  • Positioning - If neither revenue or user growth is in the cards before the 6 month window hits, all that is left is positioning. In this case, everything in the company needs to line up to the 6 month funding window so that you can have a credible story as to why your startup is going to capture a high-growth market. Tools you can use include shipping early access versions of new technology in a new market or on a new platform, guerrilla marketing campaigns to get buzz, and partnership deals where other companies leverage your technology.

    Not following the guidelines above will usually lead to very unpleasant situations like shut downs, fire sales, and down rounds. If you do not have enough time before the six month window hits, take the financing hit early while you still have 12-18 months of money in the bank and some leverage. Your existing investors may extend your last round to give you a bit more runway, but only if there is a credible story as to how the company is going to achieve the necessary traction or positioning with the new timing based on the bridge capital. As a VC that I once had on my board liked to say, "we do bridges, but we don't do piers."
  • Startup 101: Getting Funded

    Raising venture capital for a new business is not easy, but fortunately the process is very predictable. First time entrepreneurs often do not understand the process, or think that they are above it, which leads to a lot of frustration, and in the end, no venture financing. If your business doesn't meet these criteria, it doesn't mean it is a bad business, just that it probably isn't going to be venture backed. If you want to raise venture capital, get out of your own way and navigate the following process.



  • Domain Expert - The most important thing for a startup to have is a domain expert. When people start a company in a business that they know nothing about, you end up with disasters like Pets.com. So it is critical that a startup has an expert in the market it is trying to penetrate. There is no such thing as a "visionary," just people who know a market very well and can therefore make a much more educated guess as to where it is going to go next than a layperson. If you don't have a domain expert on board, you are going to get decimated during due diligence. So either get a domain expert or don't raise venture capital.

  • Big Market - There has to be a there there. VC's want to fund new entrants in emerging markets, ideally markets that have had several large exits. If your product is more of a feature of an existing product, it is going to be tough to get it funded. Focus on a product that is something that customers will actually need to buy in order to grow their business, not a feature they will expect to get in a year from their existing vendors. If VC's are starting to see more deals in your market segment, that is actually a good thing, since other domain experts are sensing that there is something that is going to change, and you are now part of a market wave.

  • CEO - Most startups fall apart on execution. Having someone on board who has raised capital, built a team, shipped product to market, and created a liquidity event massively diminishes risk for investors. If you don't have someone like this on board, do your absolute best to recruit one. If you can't recruit a CEO, be very upfront that a big part of what you expect from the VC is to help you recruit an excellent CEO.

  • Product - If you are not shipping product yet, raise a seed round instead of an A round. If you have a CEO and a domain expert targeting a big market with a good product idea, chances are that you can raise your seed round from a venture firm. If you are missing one of these things either fill the gaps or raise a round from angels.

  • Market Pull - Is the market responding to your product? Do customers want it? When they get a trial version are they actually using it and requesting features? Are most customers like the ones trying out your product? If the answer is no, fix the product until the answer is yes. If the answer is yes, then you will have an A round!

    Venture capital is actually a ruthlessly competitive business, so sometimes you can skip the seed part if you have a hot deal or a VC has a good gut for the market. In my opinion, this is a bad move. You can get excellent terms on a seed deal if you are in a position to be able to skip it, and everyone is happier and better off that you prove out the product before scaling up the business. The point of all of this is to build a viable business, not to raise venture capital.

    There are always exceptions to the rule, but you are much better off just following the standard VC process. It is much more predictable, a lot less stressful, and you don't waste a bunch of time in meetings that are not going to go anywhere.
  • Thursday, June 28, 2007

    Java Lives, My Apologies to Sun :)

    Well there have been a few comments that I owe an apology to Sun for all of the "badmouthing" I did to Java a couple of years ago. After 10 years of working on Java at startups like JRad and NetDynamics and at the mothership Sun itself, I saw that Java was not responding to market trends and was in a slow, lumbering death spiral. I definitely did criticize Java, particularly in three areas:

    #1 - Open Source

    I have stated emphatically for years that Sun should open source Java, for a myriad of reasons. There was a lot of talk about fracturing Java which in reality was just talking points, and in the end Sun did open source Java and is now making nice with Linux distributions. Cudos!

    #2 - Scripting Language Support

    I feel strongly that loosely typed languages are much more suited than strongly typed languages for a lot of mainstream application development, particularly when dynamically building HTML or working with loosely structured data like XML. This is an argument that I had when I worked at Sun, and that I continued after I left Sun. Sun has recently helped out with JRuby thanks to Tim Bray and has now shipped a scripting language of its own, JavaFX. Again, Cudos!

    #3 - Lightweight Servers

    The Java enterprise edition is cumbersome, obtuse, and just too much for a lot of applications, what I dubbed a "muffin" architecture back in 2003. The alternative is a "donut" architecture of grids of lightweight servers, which the open source community has created with projects like Spring, Hibernate, and Mule. On this one Sun has had no leadership since Tomcat, and server side Java is essentially fractured with all leadership coming from a myriad of open source projects, with the JCP playing catch up.

    What has happened in the marketplace? .Net has become a viable competitor and Adobe dominates the rich client space, with Microsoft as an up-and-comer. Virtually all of the smart, innovative Web 2.0 startups who choose a clean slate have gone the LAMP or Ruby route. The only thing that has prevented this mass defection from happening in the enterprise is that lightweight Java became a viable alternative and the switching cost away from Java was too high. The past 5 years have not been good for Java, mainly because it was so slow in responding to the three trends listed above.

    So do I feel bad for having criticized Java? Not at all. I think that the blogging community played a big part in changing the direction of Java towards open source and scripting languages. I did have a bit of fun with it all, for which I do apologize. In hindsight, perhaps I should have just kept my mouth shut and LAMP would have had more traction in the enterprise! :)

    Thursday, June 07, 2007

    Startup 101: Sell to Users

    In the last few years, there has been a remarkable shift in how software is sold to businesses: by the time a salesperson is talking with a prospect, they are already a user! Numerous successful businesses do not have a single salesperson until there are a groundswell of customers that want to purchase their software at a relatively high pricepoint. Successful companies concentrate on getting users to use fully functional software for download or browser use and then upselling those users. This is a sharp contrast with the time consuming and expensive style of effectively selling incomplete software door to door to the Global 2000 and then fixing the software after the customer has bitten.

    Following are the characteristics of a successful 21st century software business:

  • Self-Service Product - Software must be easy to install and a service must be easy to run from a browser. Anything that these products do that is already well known (ie, add a customer in CRM) must be brain-dead easy and intuitive for someone to use, since users have almost zero tolerance for software that make simple things hard. Your team should have the domain expertise to create a product that intuitively offers the major, well known features of your target domain. If your product does not meet these criteria, concentrate on fixing the product, not sales.

  • Downloads, Not Meetings - Use email campaigns, adsense, webinars, and limited telesales to drive downloads so that you create users, and then upsell those users. If a company has a product that users can not successfully use on their own, it is not a product yet. Setting up meetings or WebEx's with prospects to "sell" them your product is not selling, it is customer research, so hire a product manager instead of salespeople and again, concentrate on fixing the product, not sales.

  • Sell to Users - As numerous SaaS and open source companies have shown, it is easy to find users if you build the right product. If people are not using your product after already having tried it out, fix the product to the point where they want to pay you, don't waste cycles trying to convince them to buy software they already know doesn't work for them. If people are actively using your product but not paying, add some additional features that a subset will pay for and make sure that your product is suitable for an audience that actually occasionally pays for software. Again, concentrate on fixing the product to the point where users that would pay for it would use it, not sales.

  • Feed the Channel - Systems integrators follow the money. If you can feed them business with your product, they are as happy as clams. If you want them to use your product to drum up business on their own, they don't need you, although they will be happy to meet, do a Barney "I love you, you love me" press release, and be partners. They just won't get you any money - you have to feed _them_ business. So unless you are calling on a systems integrator with a prospect in tow, (again!) concentrate on fixing the product to get that prospect, not channel sales.

    Infrastructure software like ESB's (Mulesource) and CRM (Salesforce, SugarCRM) that used to be extremely high touch and expensive is now sold self-service at much lower pricepoints. Companies like Tealeaf that are solving extremely complicated problems such as replaying a customer's browser when they call a helpdesk can sell direct at a very high pricepoint.

    A startup needs to figure out whether it is selling direct at a high pricepoint or self-service at a low pricepoint and follow that playbook. Selling direct at a low pricepoint is a nonstarter, even if one day you expect to be able to raise the pricepoint. VC's are not interested in that business model and your competitors will be selling a similar solution self-service and will therefore have a more scalable business model.

    In summary: keep it simple. Make software that is sexy with major features are easy to use, get people to come and check it out, and then tweak it to the point where people want to pay for it. Software today is decidedly product focused rather than sales focused. This is great, since building excellent product quickly is the competitive advantage of a startup. As a wise board member I served with said, "IBM already has a sales force, don't compete with it."
  • Tuesday, June 05, 2007

    Startup 101: The Platform Game

    I have been advising a few startups over the past few months and thought it might be useful to share some startup advice in a series I will call "Startup 101".

    The ability to identify a new trend early, turn on a dime, and capitalize on a market shift is what distinguishes a startup from a large company. A lot of what startups do is not actually new, but rather something old for a new platform. For example, NetDynamics/WebLogic/Kiva were appdev/deployment for Java/Internet, ActiveGrid was appdev/deployment for LAMP, MySpace is BBS for the web, Skype is phone for the Internet, Salesforce is CRM for SaaS, etc.

    The latest in vogue platform is Facebook's F8 platform, which is a supercool way for startups to deliver social features without having to build a social network. Kudos to iLike, which as one of the early adopters of the Facebook F8 platform has massively increased their number of users (850K new users in less than a week). iLike retained the ability to respond aggressively to market shifts even after years of survival mode through the .com bust. Following is a quote from Ali Partovi, iLike's CEO:

    "Our President, Hadi Partovi (my twin brother) took very little time to decide this was a huge strategic priority. That was a month ago. We re-prioritized everything else, and started moving our people off other projects onto this. First two or three people, then a few more, and by the end it was a huge group of engineers pulling back-to-back all-nighters for a week-long sprint to the launch." [BlogForward Q&A with iLike on Facebook]

    I have worked at startups that were able to move quickly to capitalize on shifts, and others that were not. Looking back, it is interesting to try to figure out the difference. Following are four characteristics that prevent a platform shift at a startup:

  • Age - One factor is the age of engineers. Younger engineers are much more willing (and often eager) to get yanked off of a project and put onto something new and interesting. Older engineers not so much, so before hiring them, make sure that older engineers have benefited from a sudden platform shift in the past and are amenable to having there tasks changed quickly.

  • Cultural Origin - People "fresh off the boat" from countries such as Russia and Israel with a culture of deep technical talent have a very high level of NIH and do not like to rely on unproven, emerging technology. Yes, Windows/Java/LAMP/Flash/JavaScript/Silverlight/F8 is new and has a lot of bugs. No, it is not as functional as the existing, proven technology platform. The reality is there is a bigger opportunity for a startup to deliver _less_ functionality on a new platform then _more_ functionality on the old platform. IBM is already delivering a ton of functionality on the old platform! So definitely hire smart technical people from other countries, just make sure they are somewhat acclimated to Silicon Valley startup culture.

  • Zig Zag Management - You can only change the platform once or twice if the age and cultural origin factors are not in play. After that, management loses all credibility and engineers just throw new initiatives under the bus. If your company is stuck on a deadend platform and is unable to zig or zag to a new platform, you are left with only two choices: package up what you have and try to flip the company or do a full restart to get to the new platform.

  • MBA Management - If a decision to support the emerging platform is made after a SWOT analysis, meetings with analysts, a series of management and board offsites, all day company alignment meetings, and customer focus groups, you will be lucky if you beat IBM to market, let alone startup competitors. This technique can only be successful when solving a new problem like SOX compliance. Shipping CRM for SaaS a year after Salesforce has launched is a nonstarter - another CRM opportunity did not open up until SugarCRM offered CRM for open source.

    Change is good. Very rarely do startups execute on a business plan from start to finish. Particularly with the accelerating pace of innovation of the past few years, the best of startups are agile and can capitalize on, rather than simply react to, platform shifts.
  • Wednesday, May 30, 2007

    Tools Have Consolidated to Three Platforms

    The tools market has consolidated onto three platforms: Eclipse, Visual Studio, and the Browser.

  • Eclipse - For enterprise class development, virtually all standalone IDE's have moved to the Eclipse platform. Adobe Flex, BEA Workshop, Zend Studio, IBM Rational, and JackBe are examples of independent IDE's that have or have announced a move to Eclipse in the past year. There are virtually no enterprise vendors at this point that are selling a standalone IDE that do not have an Eclipse strategy other than edge cases like IntelliJ and the NetBeans project. When I was at ActiveGrid, 100% (and I am not exaggerating) of Fortune 1000 customers I met had standardized on the Eclipse platform for development.

  • Visual Studio - The Microsoft camp is of course on Visual Studio with its myriad of extensions, but even Microsoft is experimenting with browser-based development with its new Popfly service.

  • Browser - The new and emerging market is browser-based, lightweight application development that used to be dominated by products like Microsoft Access and FileMaker Pro. There are a host of products including Coghead and Zoho Creator that enable a similar ease of use along with the ubiquity of a browser.

    Following is a chart that shows the array of companies offering Eclipse and Web Browser solutions for application development. I did not include Visual Studio in order to save space, it does not have as interesting an ecosystem IMO.



    It is interesting how the enterprise type of developer that in years past used sophisticated tools like PowerBuilder is still attracted to a full fledged IDE, and the line of business / SMB type of developer that used to use tools like Microsoft Access and FileMaker Pro can now use a web browser. Microsoft has added a ton of features to Microsoft Access over the years, but the core functionality that most people use can now be easily replicated in a browser. With the addition of tools like Yahoo! Pipes and Microsoft's Popfly, the Web 2.0 wave has finally hit application development in a big way.
  • Friday, May 18, 2007

    Microsoft vs. Adobe: Game Over

    Microsoft has just launched Popfly, the alpha of their new web page/mashup/widget content creation tool that uses their new Silverlight rich application engine. With tooling like Popfly, Silverlight is going to absolutely cream Flash. Flash apps are a pain to build, especially data-driven flash applications, and are expensive to deploy. Popfly and Silverlight significantly lower the bar for creating rich Internet applications, and let developers share components via a social network to boot.

    After many skirmishes over the years (TrueType vs. Postscript, XPS vs. PDF), Microsoft finally has Adobe on its home turf. The growth in the content market is online - there is a more money going towards building a rich, interactive web property than a four color brochure. In order to create rich, interactive web properties, you need developer tools, and developer tools are Microsoft's sweetspot and Adobe's Achilles heel (checked out Flex lately? Yech!).

    Yes, the black turtleneck crowd will still use Photoshop and Illustrator on their Macs, but the developers building the websites are going to run from Flash like rats fleeing off a ship, and the server revenue is going to go from Adobe to Microsoft. Game over.

    Nice comeback from Microsoft. The industry definitely needs a counterweight to Google, so I am not surprised that people are suddenly more receptive to Microsoft's platform plays.

    Thursday, May 17, 2007

    What Happened to LAMP?

    As many of you know, I am a huge proponent of scripting languages and the LAMP open source stack. Four years ago, I founded ActiveGrid to bring these technologies into the enterprise. People regularly ask me, "what happpened to LAMP?" since at this pint it is clear the LAMP stack has not had much penetration into the enterprise. I thought it would be worthwhile to analyze why this has occurred.

    #1 - Java is now easy

    Over the past few years, it has become incredibly easy to build Java web applications, especially database applications. NetBeans is a great example of a Java RAD environment that walks developers through writing a standards-based database web application. For coders, the prevalence of simple frameworks like Struts2 for UI and POJOs (plain old Java objects) with Hibernate / Java Persistence Framework for persistence have made it very straightforward to code a database application, especially when compared to Java EE. Sun's recent endorsement of scripting languages within the JVM (JRuby, JavaFX) is also lowering the bar for Java web application development.

    #2 - New infrastructure software has hidden costs

    Even if it was quicker and cheaper to build a LAMP application than a Java application, the cost of getting a new software platform approved is pretty astronomical at a lot of enterprises. Adding staging servers, management software, security auditing, training staff in new technologies, etc. is very expensive. Linux and Apache have been enormously successful in the enterprise since they were brought in as a horizontal solution. Bringing in Linux to replace Solaris and running Apache for all static content significantly reduces costs. But running PHP or Python for some applications when an enterprise is already supporting Java and perhaps .Net is not viable for most enterprises, as the cost each added platform multiplies support costs. MySQL has been a bit of an exception to this since it is substantially easier to use and administer than its competition, but it really is a tough slog when enterprises already have enterprise-wide license agreements to Oracle and DB2.

    LAMP is still a huge success outside of the enterprise market, it is the stack of preference for Web 2.0 companies, SaaS companies, hosting providers, and legions of ISV's.

    At ActiveGrid, we made the transition to Java deployment last year, and as previously announced last year, there will be a tooling update this year. While it can be an inefficient use of time and capital to transition a startup from one trend to another (since it is cheaper and easier to simply shut down a startup and start a new company from scratch), I am glad the company has successfully transitioned and is pressing forward in its mission to simplify application development.

    Tuesday, May 08, 2007

    A CLR in Every Home

    The most interesting aspect of Microsoft's Silverlight software is the included mini-CLR (Common Language Runtime). It supports multiple languages including scripting languages, is much faster than JavaScript (at running JavaScript even!), and is much easier to program than Apollo. I think that Silverlight has expanded the talent pool of people able to create rich internet applications to the legions of Microsoft .Net developers. Once these apps start pouring out, most people will endup having the plug-in installed on their machines.

    Although Microsoft did not support Linux, they do support Firefox and the Macintosh, and the Mono folks have already said they will take care of the Linux version. I'm sure Microsoft is not complaining, they get Linux support without having to endorse Linux.

    Perhaps I am a luddite, but I still prefer Google-style JavaScript than RIA applets for most applications. Media-intensive sites and sites with complex UI like Yahoo! Pipes car manufacturer configurators greatly benefit from RIA, but RIA's are too cumbersome when filling in a form or adding a weather Widget to your homepage.

    Wednesday, April 04, 2007

    Aptana Rocks!

    I have been programming in JavaScript this past couple of weeks using Aptana's JavaScript Eclipse plug-in. It is a really nice Eclipse plug-in that makes creating and using AJAX components a breeze. The best part is their Firefox plug-in that lets you do step-by-step debugging of JavaScript using the Eclipse debugger. Beautiful! Jeff Norton, who used to be at ActiveGrid, is at Aptana now cooking up some kind of server, can't wait to see what that will be like.

    Update: Added link to Aptana, thanks for pointing out the oversight, Rektide!

    Thursday, March 22, 2007

    Moving On from ActiveGrid

    After four years founding and running ActiveGrid, I have decided to move on and start a new venture. Chris Keene has hit the ground running as ActiveGrid's new CEO, and I am confident the company is in good hands and will continue its success. While it is always great to start something new, I am sad to no longer be working with the incredibly smart and enthusiastic team of people that are at ActiveGrid. It was a great ride and it will be exciting to see ActiveGrid continue it growth!

    Friday, February 09, 2007

    Widgets - The JavaBean of the Web

    Widgets are popping up everywhere on web pages and blogs. Widgets that show you your horoscope, the weather, the top 10 downloads on sourceforge, Flickr photos, and YouTube movies. Widgets do anything and everything. Why are they so prevalent? Very simply, widgets are incredibly simple to use. They are a little of window of HTML that are one line of HTML that you can paste into any web page, wiki, or blog.

    The last time the computer industry had a standard way to present visual, interactive components were the Java Applet / ActiveX wars. As we all know, both of these were a dismal failure. What has cropped up instead is snippets of HTML that wrap

    While Widgets may seem like toy components today, they are well on their way to becoming a full-fledged component model. Widgets are driven by parameters embedded in their invocation URL, so consider it essentially the instantiator of a traditional component model.

    Types of Widgets:

    1. SCRIPT - A one line SCRIPT tag with a URL of parameters that invokes a new frame of HTML. This is the model used by Google Widgets and Widgetbox.

    2. EMBED - A tag used to embed Shockwave with a URL and defined parameters. This is a very common way to embed photographs from Flickr as a slideshow.

    3. IFRAME - A method that pulls in a separate frame of HTML that can display content. Google Widgets uses iframes that are launched by its script tag. You can bring in any URL content through an iFrame, such as Flickr's existing slideshow feature.

    4. DIV - A separate area of HTML, which is not parameter driven. Examples include Dojo toolkit. These are much more finegrained widgets that need to be handcoded.


    Widgets need the following features before they can grow up into a full-fledged component model:

    1. Layouts - Widgets that layout other widgets that are passed in as parameters. For example a Folder Tab widget or Accordion widget.

    2. Listeners - Passing in callback URLs to widgets so that when something is clicked in them they can tell other targets on the same web page that something happened. For example, embedding a Google Maps widget that plots out 5 addresses, each of which has an associated URL to refresh on the same page when they are clicked on.

    3. Passing Data by Reference - Passing in data URLs so widgets can access data to chart, etc. These data URLs can be composed of XML or JSON. Google Gadgets already supports this feature.

    4. Subclassing - The ability to embed a widget within another widget that can override the original widgets behavior. This can be done today, but it is a bit of a hack.


    These features can of course all be handcoded today, they just are not very prevalent. As widgets become more prevalent, they will offer a common way to do these things. The beauty of the Web is that these things will be accomplished in a simple, accessible way that lets any blog or wiki editor use the features.

    It will soon be viable to build corporate web applications and mashups out of granular widgets. What will be interesting are innovative new tools for building individual widgets, turnkey widgets that access corporate resources such as content management sytems, and tools to assemble those widgets to do new things.

    Saturday, January 13, 2007

    GOOG >= MSFT

    I am the first to agree that all of the continuing Googology (as I like to call Google analysis) is starting to get tiring. But I have been mulling on something for a couple of months and think it would be useful to through it out there. When Google IPO'd and everyone was running around saying it was overvalued, the makret actually had a value set for the leading web portal: Yahoo!. And Google went out the door at half the valuation of Yahoo!. Hindsight is 20-20, but even back then it was clear that Google was going to very quickly outpace Yahoo!.

    Today, a lot of people are saying that Google is overvalued. The market, aside from whether it is rational or irrational, has already applied a value for the pre-emininent software company of the microcomputer era: Microsoft's market cap is $300B.

    Google cleary is the pre-eminent Internet company of our time, and it's market cap is only $150B. By financial metrics, the supposition that Google will soon equal Microsoft is ludicrous given Google's inflated value relative to earnings; Microsoft's P/E is 26 with $44B in revenue, while Google's P/E is 64 with a mere $6B in revenue.

    But the way I see these numbers, Google only needs to double revenue to $12B and maintain its current P/E of 64 to equal Microsoft's market cap. I am not saying that all of this makes sense, but the market has spoken.