Tuesday, February 22, 2011

Crossing the Chasm in Me

I am at a cross road now, if you are frequent reader of my blog (Thanks for reading), even the title of my blog is "Thoughts of Customer Development, Entrepreneurship, Project Management and Software Development", many of my blog posts still focus on Software Development topic, I am still very much a product development guy even gone through so many business books.

Is there any thing wrong with product development approach to launch a startup? I think this approach is not wrong, but a very costly approach when things getting ugly. For some products, it taken too long time and need too much efforts (could be few months) even to produce a minimum viable product. By the time you find out that it is not the product customer will pay to use it after customer validation phase, you may running out of iterations even to pivot.

I launched ProcessCanvas.com: A workflow builder that allow you to create online workflow in minutes two months ago to see whether is there enough customers need this kind of product. I launch this product is the result of Scratch My Own Itch, it is the first hand experience I gained over the past two years working as Business Analyst and Solution Consultant. ProcessCanvas.com is targeted to the following customer segments:
  • IT Consultant: Use it as fast prototyping tool to create workflow application demo/prototype.
  • Business Analyst/Business Process (ISO) Consultant: Create production workflow application for their customers.
  • Subject Matter Experts from different industries such as Insurance (Claim Mgmt.), Medical (Case Mgmt.), Customer Service (Help Desk) and Small Business Owner to create the workflow application by themselves.
Sadly tell you that the result of the launch is far from satisfactory (if not crying), I only received two e-mail addresses that interested in production launch of ProcessCanvas.com so far (where the e-mail sign up box is put at the end of process wizard by intention to ensure the user explored and used the tool prior to submit their e-mail address) out of 58 visits tracked by Google Analytics (I think actual visits lesser than 58 if excluding my own visits).

I had invested about 4 weeks to produce the process wizard and introductory screencasts (excluded time spent to produce the Grails Activiti Plugin), since then I invested another 7 weeks to produce the Form Builder plugin which just released version 0.1 on yesterday. It is foreseeable that many more weeks required in development to produce the working minimum viable product that support multi-tenancy and ability to create working workflow application.

I give myself a pause now from continuing time investment into ProcessCanvas.com and step back to review what had I done wrong so far:
  1. Invested too much time and effort to the product before knowing whether the product have market size that big enough to build a business on it. 
  2. Customers may not have the same problems that I faced. Even they faced the same problems, the problems may not pain enough until no choice they have to pay for the product to solve it. Over passionate about the solution without knowing it is real problem to paying customers is a problem by itself.
  3. Do I know how to reach the targeted customers? Frankly speaking, I have no idea besides posting the release news and announcement to the BPM (Business Process Management) community and hanging there (Developer is poor on marketing).
Some questions cracking my mind:
  1. How do I find out a product have big enough market size to build a viable business on it, with the least effort that maximize validated learning?
  2. Is the vision too big and too broad to fit into my goal as Micropreneur?
  3. Is the product too generic? If the answer is yes, how do I find a niche and pivot toward it?
  4. Are these problems worth solving?
  5. Am I targeted the right customer segments?
Next, I need to perform some finding and reading to find out the corrective actions to make the points listed above clear enough to further support my next decisions and actions. If failing is inevitable in my first web startup in order for me to learn, I wish to fail faster and lighter so that I can get over it quickly and start all over again in shorter time.

What do you think? Any feedback is very much appreciated.

    Monday, February 21, 2011

    JQuery and Grails Form Builder Plugin 0.1 Coordinated Released

    I would like to announce the JQuery and Grails Form Builder Plugin 0.1 Coordinated Released. This announcement is for coordinated released of two Grails plugins: JQuery Form Builder Plugin and Grails Form Builder Plugin. JQuery Form Builder Plugin is client-side implementation of the Form Builder using JQuery and JQuery UI libraries, where Grails Form Builder Plugin depends on JQuery Form Builder Plugin and implement server-side of the Form Builder.

    JQuery Form Builder Plugin
    What's New:
    • Initial release of form builder with Plain Text and Single Line Text (Text Box) field
    • Creating online forms that support multilingual (English and Simplified Chinese only)
    • Add field by click or drag and drop
    • Field ordering by drag and drop
    • Ready for server-side integration
    What's Next:
    • Number (Digit & Decimal) and E-mail Address field implementation.
    Find Out More:
    Grails Form Builder Plugin
    What's New: 
    • Same with JQuery Form Builder Plugin with additional two more items below: 
    • Initial release of Form Viewer that consists of list, create, edit and show screen with multilingual support (English and Simplified Chinese only)
    • Tested with Grails 1.2.5, Grails 1.3.6, Tomcat 6.0.29 and MySQL 5.1.41. 
    What's Next:
    • Number (Digit & Decimal) and E-mail Address field implementation
    • In Form Viewer listing screen, support search by non-String property such as Number field
    • Field removal support, especially for non-nullable property/column
    • Improve error handling when form instance not found in FormViewerController
    Find Out More:

    Saturday, February 19, 2011

    Grails Dynamic Domain Class Plugin 0.3 Released - Create domain class on-the-fly

    I would like to announce the Grails Dynamic Domain Class Plugin 0.3 Released.

    The Dynamic Domain Class plugin enabled Grails application to create domain class dynamically when application is running. 


    What's New: 

    • The demo application no longer install automatically. Created install-ddc-demo script to install the demo application manually.

    Find Out More:

    Friday, February 18, 2011

    JQuery Validation UI Plugin 1.2 Released - Client Side Validation without writing JavaScript

    I would like to announce the JQuery Validation UI Plugin 1.2 Released.

    The JQuery Validation UI Plugin will bring Javascript Validator, Remote Constraints, jQuery Validation plugin and qTip (jQuery tooltip plugin) under the same root and deliver comprehensive client-side validation solution.

    What's New:
    • Implemented 3 new custom constraints from jquery validation additional methods: alphanumeric, letterswithbasicpunc and lettersonly. (jqueryValidation.additionalMethods in Config.groovy need to set to true to use these new custom constraints.)

    Find Out More:

    Tuesday, February 8, 2011

    Language Specific Font Support in JQuery Form Builder plugin

    Just completed re-structuring of the plugin to support "Each language can have it's own font family". Please see previous post for reasoning behind. Below is the outcome of Form Settings tab after re-structuring (previous version on the left).

    If you can think of better way to layout the fields of Form Settings tab, I am happy to hear from you!

    Wednesday, February 2, 2011

    The Grails Activiti Plugin 5.2 Released

    I would like to announce the Grails Activiti Plugin 5.2 Released.

    Grails Activiti Plugin was created to integrate Activiti BPM Suite and workflow system to Grails Framework.
    With the Grails Activiti Plugin, workflow application can be created at your fingertips!

    What's New:
    • Update Activiti's jar files to 5.2. 
    • Support disable activiti engine by specify system property -DdisabledActiviti=true. Eg. grails -DdisabledActiviti=true run-app.  
    • Fixed java.lang.NoClassDefFoundError in unit test execution (grails test-app -unit) after the activiti plugin installed.

    Find Out More:

    Tuesday, February 1, 2011

    Typography: Should JQuery Form Builder Plugin Support Font Family By Language?

    Overview
    These few days, there is a pending decision in my mind that need to be made before I continue the development of new field of the JQuery Form Builder Plugin: Single Line Text field. As mentioned in the title of the post:
    Should JQuery Form Builder Plugin support font family by language? Each language has it's own font family.
    The 1.0 release of plugin is targeted to support top 2 languages of the Internet (more can be added later) such as English and Chinese. This decision is crucial as the current implementation of the plugin was support one font family for all languages, if I made up my mind to support each language has it's own font family, I will need to revise the structure of form settings and field settings of the Plain Text field, not a minor restructuring.

    Findings
    As typography is a new topic to me, I goggle it and done some reading. I heard of Google Font API and  WebFont Loader, but I curious to see is there other alternatives. First I found Cufon, then follow by Typeface.js, both of these are great web fonts technology, but they are not suitable for web form use as both technology using HTML5 canvas and VML. Also, Robert has good points why it is not for input components. Nevertheless, you may consider these technologies if you use it for presentation purpose only, you can learn more about these technologies in this discussion: SIFR vs Cufon vs Typeface.js.

    Many thanks to editorial team of LogoTalks written a post related to typography with title "From TypeKit To Google Font API: The Road To Web Fonts" provides great introduction of web fonts. From the post, it was the first time I saw the @font-face CSS rule. After few more rounds of reading, I find out that it is the way to go as it is web standard and supported by browser natively (even not all browsers supported yet). Thanks to Paul done a detail write up about @font-face.

    I can find out where to get or buy web fonts from these two posts: From TypeKit To Google Font API: The Road To Web Fonts and Where to get web fonts. The following are some sites offer free web fonts:
    Conclusion
    From findings above, it is clear to me that JQuery Form Builder Plugin should support font family by language especially Asian languages such as Chinese, Japanese and Korean should use font family different from English. The solution will be Google Font API and WebFont Loader (as it support custom provider, web fonts can be hosted in own server). Thanks to Cedric Dugas written a great introductory post about WebFont Loader. Lastly, thanks to James Brocklehurst created a Web Safe Fonts Cheat Sheet that will be very helpful for later improvement of the font picker plugin. Do you have better solution?