Sunday, March 9, 2008

20 Steps to Mashing, Testing, Selling & Supporting a Widget

Back in June of 2007, as we prepared for our first public appearance as Nth Penguin for the Wisconsin Oracle Application Server Users Group in Fond du Lac, WI, I wrote up a short list describing how I see building a widget in Mashup Studio.

At the time, it didn't seem appropriate for an Oracle users group demo. Eastern Wisconsin was busy learning about SOA. The idea of collaborative development in an enterprise world using shadow-IT department techniques was not taken seriously. Web-based application development or Platforms as a Service were just breaking out.

With the advent of Force.com, Google Sites and even Etelos' new LAMP app promotion tools, I'd like to get our foot out there by sharing my interpretation of our vision on a perfect Mashup Studio scenario - it's kind of like when Wayne looks at Tia Carrere in Wayne's World and that song by Gary Wright starts playing.

Here's my symposium of a step-by-step to mashing, testing, selling and supporting a widget...

  1. Login to your WebWidgetry account.

  2. Search using keywords that frame up the problem you are trying to solve (“IT cost analysis”,”monthly sales totals Gmap face photo”,”holiday vacation conflict project schedule notifier”),
    Alternatively, search by a known Widget (id or name), an author's widgets, top-ranked widgets, new widgets in the last (week, day, hour) or a traditional business function in software.

  3. Choose an existing widget, start a new widget, or place an order to the community stating your need, deadline and terms.

  4. In the Mashup Studio, drag a copy of the existing widget or new widget wizard out to the sandbox area.

  5. Using the studio browser, find your data source visually, or enter URLs for your data sources (Widget ID, Widget Search Criteria, local or remote Oracle Database, WSDL, RSS, XML, Google Gears, etc).

  6. Map data points from the sources to your Widget Service Adapters in the Global Service Bus.

  7. If using an existing widget, confirm auto-discovery maps from the GSB to your widget. If it's a one to many relationship, confirm the for-each logic, add basic business logic. Skip to step 9.

  8. For new widgets, answer basic questions to generate a skeletal DB Schema, DAL and Navigational Layout, or go right to custom design. The GSB points chosen for this widget assists in generating a list of suggestions.

  9. For both new widgets, and for extending existing ones, customize with base elements (boxes, buttons, images, videos, other widgets), re-arrange, style, personalize text, add logos and help doc info. Mashup Studio uses the WebWidgetry provider model of development libraries to create the latest interfaces.

  10. Save your widget to either the WebWidgetry repository as private or public, your enterprise repository appliance with SAN, a cloud service such as Amazon's EC2, or to your offline application engine (e.g. Google Gears or Adobe AIR ). Auto-save and / or Repository Versioning are now enabled.

  11. Select your GSB points for auto-mapping to your widget. Add any custom nodes. Check the example data test results.

  12. Invite others to collaborate on your widget through team-chat. Collaborators can make changes that you see in real time.

  13. Publish a request to the community for QA Testing.

  14. Use the Service Level Agreement wizard to create a WebWidgetry managed SLA.

  15. Use the Licensing wizard to create a WebWidgetry managed Licensing agreement.

  16. If you're not selling this widget, skip to step 17. For individuals and businesses selling their widgets, choose from a variety of monetization methods including Exclusive, Per Use, Subscription, Ad-supported, etc and become a Widget Vendor.

  17. Work with QA testers collaboratively (chat, voip, virtual meetings) to authorize their solutions to discovered problems. QA testers that successfully complete the process with you are rewarded with WebWidgetry credits or by business contract.

  18. Publish a request for community beta testing and review. Repeat 17 and 18 until reviews meet expectations for final release.

  19. Release your widget into the wild! Choose a site to publish your widget to, or copy / paste a simple line of javascript code into your webpage.

  20. Stay active with the community as others ask you about your widget, how you built it and if it could be used to mashup with their widgets for bigger applications. Widget Vendors can monitor the sales of their widget and requests for new work via their account login.

...and this would be where I get knocked off my stool at the donut shop like Garth, after dreaming of his 'Foxy Lady'.

Well, back to building the widget-grinder.

"Game On!"