Thursday, August 28, 2008

Online Communities: Open Versus Gated

Online communities are all the rage, but just like in the real world, online communities can be warm welcoming neighborhoods or cold, haughty gated communities.

Connie Benson at the Marketing 2.0 Blog has a good post on the importance of a community manager in keeping a company connected to its users. But the community manager themselves are limited by how motivated the community participants are.

It is extraordinary to me how low energy most enterprise software company communities are. With the examples of vibrant communities at MySQL and Spring, you would think that companies like Oracle and IBM could follow suit.

I think the real rub here is that it is hard to have a vibrant community with a closed-source product. Maybe this was possible in the olden days, with certain fanatical user products like Borland's Delphi. But increasingly, open sourcing a product is a prerequisite for obtaining an engaged community.

This sets up a contrast between open communities, where anyone can participate with little or no effort, and gated communities like IBM's labyrinth of interlocking forums, where just creating a user account is a daunting, 15-20 minute exercise.

In the week since the launch of WaveMaker 4, we have gotten 20,000 downloads and over 1,000 new members registered into the WaveMaker community. Now comes the hard part - turning newbies into active community participants.

In our case, I think that conversion is made much easier by being an open source product. I am not making the "freetarded" argument that free is always good, just that open source brings with it an expectation of community that makes creating a real community dramatically easier.

Tuesday, August 26, 2008

Tech-Smart, User-Stupid - Why Software Startups Fail

Over the course of three software startups and 10 years of teaching entrepreneurship, I have seen one flaw kill more software startups than all the other flaws combined. That flaw is caring more about your technology than your customers - failed software startups are smart about technology and stupid about who is going to use that technology.

Inexperienced technology entrepreneurs usually almost always focus more on what their technology can do, not what the market needs. If you don't have a specific customer in mind when you build a product, you are performing the marketing equivalent of walking outside on a sunny day and hoping to get hit by lightning.

Not having a clue about your intended market leads to all sorts of misguided behavior. In particular, there are two dead give-aways to user-stupid companies:
  1. Dog ball product management. There is an old joke about dogs and balls where the punchline is "because he can." Most of the Ajax products on the market today are stuffed with features for which the best explanation is that the developer added it just because they could. For example, there are roughly 2 bizillion Ajax toolkits out there, but every week someone introduces a new one, figuring no doubt that what the world really needs right now is yet another color picker widget. Adding random features does not make you look cool, it just makes you look confused.

  2. Leaky marketing. When you have no idea who your target customer is, all you can focus on is your competition. Just like a celebrity stalker believes that if they scare off all the boyfriends, then the supermodel will have no choice but to fall in love with them, the leaky marketer believes that if they take a leak on everyone else's products, then the market will have to come to them. Among other problems, when you have a number of companies in a small market doing this to each other, all you really do is convince potential customers to wait until there is a serious provider for the technology. Making other companies look small does not make you look big, it just convinces customers to stay with IBM another year.
The simplest antidote to being user-stupid is recruit a business partner who is externally focused. Entrepreneurship is a team sport - it takes a passionate techie and an equally passionate business person to make an idea go (think Gates/Ballmer, Jobs/Wozniak, Ellison/Miner). Successful innovation happens when a company is user focused and tech smart about how to solve that user's needs.

For more on this topic, see Top 10 Business Idea Mistakes.

Wednesday, August 20, 2008

WaveMaker in Top 10 Apple Downloads

WaveMaker was selected as a Staff Pick for the Apple download site, and broke into the top 10 Apple downloads today, edging out Google Earth for the tenth slot!

WaveMaker 4 features a Mac installer and the WaveMaker Ajax Studio runs best in the Safari browser (of course, to be fair, almost everything that runs in a browser runs best in Safari). 

WaveMaker's visual studio lowers the learning curve for building Ajax apps and greatly increases productivity over traditional hand-coded Javascript web clients.

WaveMaker uses a Model-View-Controller approach to building Ajax web applications, making it an ideal tool for developers who are familiar with Apple's xCode development tools (or any other visual development tool for that matter).

WaveMaker was also written up on the MacNN web site as a one stop shop for developing web applications. MacNN also particularly taken by how WaveMaker democratizes the development of web applications:
The folks at WaveMaker think big, calling their Visual Ajax Studio 4.0 web app development tool "a fundamental breakthrough" -- and they may just be right. In a demonstration for MacNN it took about three minutes to build a simple database web app -- something that traditionally takes a team of developers to manage the complex weaving of web and server functions. This could be especially good news for the growing number of Mac Developers, since WaveMaker is browser-based.


Monday, August 18, 2008

WaveMaker 4 Introduces RAD For Ajax

Since the concept of Rapid Application Development (RAD) was invented in 1991 by James Martin, much has changed in the IT world. Web-based application, web services and software as a service have dramatically changed application development. This in turn drives a need to update the concepts behind RAD, particularly for web-based applications.

What the web promises to add to traditional RAD is a more effective model for assembly and distribution of business applications. While newer development models like Agile and Extreme programming have gotten more attention recently, good old-fashioned RAD 2.0 has the potential to have a bigger impact in how business applications are delivered.

The essence of rapid application development is to convert database schema information (tables, columns, primary and foreign keys) into graphic interface forms. These forms in turn allow a developer to create, read, update and delete information from tables (while preserving relationships between tables)

Ruby on Rails (RoR) has a clear lead in bringing RAD to the web. RoR scaffolding allows developers to create simple Ajax applications quickly based on a database schema. Yet Ruby on Rails is focused on developers who work primarily by writing Ruby and Javascript code inside of an IDE. What about developers who want a visual way to build Ajax applications?

WaveMaker provides a RAD tool for Ajax developers, allowing developers to create rich internet applications without having to learn complex coding languages. WaveMaker 4 adds two significant features that put it at the top of the class in web application productivity: LiveForms and Templating.
  1. LiveForms: the most common task in a web application is to add functionality to create, read, update and delete information from a database table. Usually, this requires separate forms to create, update and delete data. WaveMaker 4 introduces the idea of a data and activity aware form: a single LiveForm widget is all you need to create, update and delete a row. More importantly, when you connect a LiveForm to a Grid, the form is aware of whether an item in the grid is selected, and so dynamically enables and disables buttons for update and delete.
  2. Templating: when we work with WaveMaker customers, the first big task in every project is to configure a set of widgets to match the company's user interface guidelines. With templates, developers have the ability to turn a predefined and styled set of widgets into a reusable template. This is a big change from client/server RAD, where there was less focus on the specific corporate look and feel. When you consider that a typical user interface can have 80-100 widgets just to set up the headers, columns and footers, having a few well-designed templates at the beginning of a project can be a huge help!

Thursday, August 14, 2008

WaveMaker 4 Introduces Point and Click Ajax (Post 1 of 4)

In February, WaveMaker introduced the first visual development environment for Ajax applications. Today, we have taken another big leap forward in productivity, by launching WaveMaker 4, a point and click development platform capable of creating a fully deployed Ajax application in just 9 mouse clicks!

I'm not talking about some proprietary hairball here - in 9 clicks, WaveMaker takes you from a blank screen to a fully deployed Ajax application complete with Postgres Plus database connectivity and running on a standard Tomcat/Spring/Hibernate server.

wavemaker 4 swamis releaseWith WaveMaker 4, we choose 4 areas where we wanted to be best in class. Those areas are:
  1. Lowest learning curve - WaveMaker 4 is the easiest way to start building Ajax applications.
  2. Highest productivity - our WYSIWYG Ajax studio delivers best in class productivity for basic business applications.
  3. Sheer beauty - our Dojo-based Ajax client produces jaw-dropping user interfaces.
  4. Easiest mashup tool - nobody delivers a better mashup tool for web services Java classes and databases than WaveMaker.
Over the next few days I will address each of these areas and talk about how we achieved our goals.

Ajax Learning Curve - WaveMaker Stomps Dreamweaver

WaveMaker exists to democratize web development. With WaveMaker, you can point and click your way to a running web application in just 9 clicks and without a single line of programming. We believe this will appeal to two kinds of developers: Java developers who don't want to muck with Javascript, and non-expert developers who want to avoid as much coding as possible period.

For Ajax client development, Eclipse, Netbeans, Aptana and Dreamweaver are all good tools, but require you to be a Javascript (or Flex) expert to build a web application, something that many Java developers would like to avoid. On the SaaS side, products like Coghead and Force.com have a low learning curve, but require you to use their proprietary language, architecture and hosting to just get started - a steep trade-off for ease of use.

How easy is it? Let's walk through the 9 click scenario:

Point and Click Ajax - How To Build an Ajax Application In 9 Clicks

Click 1: create new project. Start the WaveMaker studio. Note that it runs in a browser - note further that WaveMaker studio was built in WaveMaker, a pretty good indication of the power of the tool itself. Note that just for fun I am running WaveMaker in the same browser where I am writing my blog post - just because I can :-)


Click 2: import database (Model). WaveMaker can import the database schema information from Postgres or any other major database, thanks to our underlying use of Hibernate. WaveMaker comes with a schema editor, so you can actually create your database schema within WaveMaker as well. Importing the database gives you the Model part of a model-view-controller architecture.


Clicks 3, 4, 5: create application template (View). Open page designer, open template chooser, drag application template onto WaveMaker canvas. Templates are collections of pre-styled widgets that can give you a full UI in a single click, including a template that inserts a standard search box, list data grid and detail live form. Creating the widget layout gives you the view part of the model-view-controller architecture.


Click 6: create live variable (Controller). Our live variable will hold database customer information. WaveMaker uses a model-view-controller architecture that greatly simplifies the development of web applications. The Live Variables are the controller elements in WaveMaker's model-view-controller architecture. LiveVariables automatically update themselves when the underlying data changes, allowing the widget to be concerned only with data display and creating a clean separation between the Model and the View elements in the architecture.


Click 7: connect customer data to grid. WaveMaker provides an intuitive interface to connect the customer live variable to the data grid. Have you noticed that within the studio you get live data into your widgets? This means that the application is actually running while you design it, eliminating the typical build-compile-run-debug time suck. Is that the coolest thing ever or what?


Click 8: connect selected customer item to customer edit form. WaveMaker exposes the currently selected item as a data source that you can provide as input to the Live Form. The Live Form is data aware, so it automatically configures itself with the appropriate editors to support the underlying data schema, including auto-configuring drop-down selects to set foreign key relationships - seriously cool stuff!

Click 9: press run to deploy your application onto the built-in Tomcat server.


Presto - while any other Ajax developer is still waiting for Eclipse to load, you have built and deployed a complete web application. Give yourself a hand, and give the WaveMaker engineering team a hand to while you're at it!

Postscript

Our celebration launch included some very cold vodka shots and a group pose with the company mascot, a surfboard. Derek claims that if you chill the vodka enough and drink it in one gulp you won't get a hangover. I was not able to confirm this claim - maybe we just need a better freezer!

wavemaker celebration chris keene derek henninger chloe jackson reche kirkland frankie fu

Wednesday, August 06, 2008

Development Tools For Cloud Computing - Two Paths

For cloud computing to take off, there need to be tools available that enable a developer to build and deploy an application without having to download anything to their desktop. This requires an on-demand development tool that sits on top of the cloud and provides a development Platform as a Service (PaaS).

There are two paths that a vendor can take to create a development platform for cloud computing: cloud-first or tool-first.
  • Cloud-first approach to PaaS: first build a cloud platform, then build a development tool that runs on top of it. This is the approach pioneered by Force.com and followed by Coghead and Bungee Labs.

  • Tool-first approach to PaaS: first build a development platform that is host-able tool (e.g., studio runs in a browser), then "push" that platform into the cloud. This is the approach taken by WaveMaker.
For Force.com, it made a great deal of sense to take the cloud-first approach. SalesForce.com already had a robust cloud platform and expertise in building proprietary development tools to create their CRM application. There was also no requirement to make Force.com work on any other cloud, because SalesForce is aiming to be the only cloud you will ever need for all your enterprise apps.

For most software vendors, however, the cloud-first development process has distinct disadvantages. First of all, it puts you in the data center operations business, which requires a very different DNA than software development. Next, it makes development itself difficult, because the cloud adds a level of indirection and complexity to all development tasks. Finally, you will be forced to do cloud port eventually to get to a SaaS cloud people want to deploy on, like Amazon EC2 or Google App Engine (assuming they ever exit the Python ghetto).

A tool-first approach to PaaS development is much more straightforward. You start by creating a host-able development studio (pretty much rules out Eclipse plugins) and do your build and test on standard hardware. After you have build a solid product, you add multi-tenancy to the studio and customize deployment for your cloud of choice (or use a partner like Elastra to do the deployment and administration for you).

A final oddity of the cloud-first vendors is that they have all delivered proprietary development platforms. This provides a "roach motel" level of lock-in - your logic and data can checkin, but just try moving them to another RIA or Ajax platform! Again, SalesForce can throw its 500-pound gorilla weight around and make the Apex language successful. It is hard to imagine, however, that 5 years from now people who have learned the Coghead language will be in more demand than, say, Java developers.