Chuckvigeant

Chuck's Reporting and Technology Corner - October 2009

by Chuck Vigeant October 06, 2009

What is the IPP and how does it compare to the SDK?   And what is cloud computing anyway?

In response to several member requests, we are going to take a slight detour from the reporting arena, and educate our group about the new IPP (Intuit Partner Platform) offering from Intuit - and how it resembles/differs from the SDK (Software Development Kit) that so many developers have used to write third-party add-ons for QuickBooks products.

We will do this in two parts:  This month we will look at the overall success of the SDK and its inner workings, and then provide a primer on cloud computing.

Next month, we will provide an in depth look at how the IPP works, so our community can better understand how the applications of the future will interact with QuickBooks.

First, let's review the last few years of the SDK environment:

In 2002, Intuit realized that for QuickBooks "one size does NOT fit all", and decided to expose "hooks" to its data so that third party developers could create add-on applications that would supplement what QuickBooks could not do out of the box.

The SDK provided a secure, consistent framework for reading and writing QuickBooks data to ensure data integrity, and it allowed hundreds of third party apps to interact with QuickBooks.  They didn't give users a direct connection to the database; instead they used something called XML (Xtensible Markup Language), which is a hierarchal text language - similar to HTML (Hyper Text Markup Language), which is used in every website in the world.

This frustrated many who were used to talking directly to databases to read and write data, but Intuit decided that this was the most secure method.  From this standpoint, it certainly was the correct decision - data integrity is paramount.  From a practical standpoint, there are some who would still argue that this made things too cumbersome, slow, and difficult.  The debate is still present, but moot.

What the SDK WAS good at:

  1. In general, programmatical procedures followed manual procedures.  This was the primary message I gave to developers:  "Figure out how it is done manually, and you will know the proper procedures to create the routine programmatically".  This prevented developers from zeroing inventory without accounting for the dollars (You wouldn't believe the number of times I was asked "how do we just zero out the inventory?").
  2. Providing the ability to import web sales information into QuickBooks
  3. Allow applications like FishBowl to handle the "heavy lifting" and data storage, which in effect extended the capacity and capability of QuickBooks
  4. Expand QuickBooks abilities e.g. QCommissions, which queries the data, and uses it to produce an end result that couldn't be attained other than exporting to Excel, cutting, and pasting.

What the SDK was NOT good at:

  1. Not all of the data was exposed, or was difficult to manipulate (e.g. budgets, payroll).
  2. On larger files, certain data queries across a network were very, very slow.
  3. Data extraction for reporting and data mining purposes was excruciatingly painful - especially on larger files.
  4. Finding out what data had changed in QuickBooks - for certain queries - required around the box thinking
  5. Security did not always follow the precise rules that were setup in QuickBooks

An easier way to use the SDK - the QODBC Driver:

The first developer to join the Intuit Developer Program was a company called FLEXquarters, and they created an ODBC interface that would allow people "easier" access to the data.  ODBC (Open DataBase Connectivity) has been around much longer than XML, and on the whole, a majority of developers were much more versed in using ODBC as opposed to XML.  Besides, you couldn't create any kind of report based upon XML.

I partnered with FLEXquarters for three years, in an attempt to create easier reporting capabilities using standard tools like Crystal Reports, Excel, or Access.  After working with their chief engineer day and night for many months, I was able to produce the first Crystal Reports for QuickBooks - and it was this ability - among others - that led to the product being licensed by Intuit in their Enterprise Product.

We did this, despite the fact that the SDK was NOT made for extracting data for data mining.  Make no mistake: The QODBC driver is still the best mechanism to extract data from QuickBooks - but in reality, the rewards of creating something like job costing, require too many hours to produce. 

We can only hope that Intuit will provide a better way to mine their data in the coming years - but after 6 years of no real progress in this arena, there are many who would say it is doubtful;  and it WON'T CHANGE with the new IPP offering.

Was the SDK a good piece of technology?

No matter what the trials and tribulations have been, the SDK would have to be labeled a huge success overall.  Just the difficulty of exposing all of the QuickBooks data and business rules in an organized format is an arduous task.

Extending the capabilities of QuickBooks not only kept customers IN QuickBooks, it created a community of entrepreneurs who could develop ideas and applications quicker and cheaper than Intuit.

But, as we all know, nothing remains stagnant in the technology world,  and now we are inundated with words like "Twitter" and "Tweet" and "FaceBook" and "YouTube"; the list goes on and on.  The latest fad terminology is "cloud computing" - but it is a phrase that we need to take full notice of, because Intuit is investing HEAVILY in this area.

Is cloud computing really the future?

Although there are a plethora of definitions for cloud computing, I am simply going to call it "data anywhere, anyway, anytime".  Your data can be stored on the internet, in another country, and you can access it using your desktop, laptop, or even a browser if it is written to be accessed that way.

People commonly relate to cloud computing as "data up in the internet", but it is really much more than that.  It is not just the data, but how you access it, as well.

Terms that are associated with cloud computing:

IaaS (Infrastructure as a Service).  Rather than purchasing servers, software, data center space or network equipment, clients instead rent these resources as a fully outsourced service.

PaaS (Platform as a Service).  This is what the IPP offering is.  Intuit provides all of the underlying hardware and software layers, and provides all of the tools required to support the complete life cycle of building and deploying web applications.

SaaS (Software as a Service).  End users avail themselves of this by purchasing a license to use an "on demand" application.

DaaS (Desktop as a Service).  Provides virtual desktop computing as an outsourced, subscription service.

Virtual Servers, Platforms, etc. all live in this "cloud space".  Even our company is using virtualized server implementations, where some of the data is stored in one place, and some of it in another - and to the user, it looks like a single entity.

Let's think of some easy cloud computing illustrations:

How about hotmail or yahoo mail? Those are early examples.  Your Email was stored on servers "up there somewhere", and you were able to access it using a browser - from anywhere.

Salesforce.com is considered by many to be the premiere Saas (Software as a Service) application, that is most closely associated with cloud computing.

How about Intuit?  QuickBooks Online, newly purchased PayCycle and Mint, Warehouse Management ES, Timetracking, etc.  These are all forms of applications that allow your data to be stored anywhere, and be accessed anywhere.  How about processing a credit card from your cell phone?  Magic.

Microsoft is putting their Office Suite online. SAP has a complete Financial Management Package that exists online. There are 75,000 iPhone applications - now THAT's impressive.

Have you heard of Amazon EC2 (another example of PaaS)

Here is an example of DaaS: a site that actually allows you to create your own personal desktop (http://icloud.com/en/get-to-know), and decide which applications you will use - you get to "rent" them so to speak.  So think about it, if you just wanted to use Microsoft Word to create a table of contents for a specific document - and you don't otherwise use Word much - this might have merit for your pocketbook.

Do we throw away the desktop model because "cloud computing" is the IN thing?

There are many challenges yet to cloud computing.  Most of which revolve around security and backup procedures, but also revolve around more technical challenges like data rollback, or data auditing; the latter two are VERY difficult, and keep bright minds up late at night.

Let's look at some other challenges:

  1. There are millions of users still comfortable keeping their data and applications right where they are now - on the DESKTOP.
  2. Reproducing the desktop features of an application is not always possible - or easy.  Think of the years it took to improve products like Quicken and QuickBooks, with year after year of added features.  You can't reproduce that functionality in an internet application at the drop of a hat; some features might be impossible to reproduce.
  3. What about the processing power?  If you have an application that is built in the cloud, it is sharing processing power with hundreds, or even thousands of other users.  To type words on a piece of "cloud paper", won't be a big deal; using Photoshop to render thousands of pixels would be.
  4. Psychology of the generations.  The younger generation is much more comfortable putting their whole life in pictures up on the web.  Many members of the other generations wouldn't consider putting their financial data in the cloud - never mind pictures of their last night on the town.

Better get used to it: the IPP is here, and it is a great improvement over the SDK

Intuit has invested in cloud computing in a STRONG way, by creating the IPP Platform.  Loosely modeled after the Salesforce.com developer cloud implementation, the IPP platform provides a simple and easy mechanism for developers to create- and sell - internet applications that interface directly with QuickBooks. 

The IPP platform contains tools for database creation, programming, billing, usage metering, licensing procurement,  security mechanisms, and even creates a listing for the product that can be accessed directly from within QuickBooks.  In the desktop world, this would be paramount to nirvana.

I have sat in several roadmap meetings, and my first notion is that they have learned from their experiences in the SDK implementation, and have provided a top notch environment for developers create a sellable application in a short timeline.  In fact, using the IPP platform and tools, a developer can bring an application to market in weeks, instead of months.

As good as the SDK was for creating rules for importing data into QuickBooks, it was still left to the developer as to how error checking was assessed BEFORE attempting to import data.  A good example of this was duplicate invoice numbers,  duplicate customers,  or duplicate sales transactions.  Smart developers would query the QuickBooks data to ensure that duplicates would not exist; but not all developers followed this method - or even knew how to.

My friend and Intuit colleague Peter Vogel created a great tool called " the web connector" which is the current standard for importing data into QuickBooks from shopping carts or online applications, but again, unless the developer brings the QuickBooks data from the desktop into the shopping cart database to check for duplicates, you would have to periodically check your QB data.

The IPP overcomes this limitation, because all of your QuickBooks data is brought up into the cloud by default - and all error checking, and data synchronization, is done IN THE CLOUD.  I personally welcome this improvement, and I strongly applaud the Intuit implementation of this process.

Does the IPP replace the SDK?

Intuit is adamant that the SDK will continue to be updated for those developers who maintain and create desktop applications - although having said that, there is no new SDK for 2010.  But for those who want to create internet applications that extend the capabilities of QuickBooks, the IPP is the way to go.

Get this:  Intuit even handles the billing of your application to your customers?  (Of course Intuit gets a piece of the action, but we will describe that more in detail next month).

Next Month:  How the IPP works and what this means to the Sleeter Group community.

5 Comments

  • Olive M says:
    October 06, 2009 15:27

    Chuck, thanks for some great explanations. I really enjoyed this article and look forward to part two. Very good for the accountant who has their hands full with just regular Quickbooks features not to mention new tax laws flowing out of Congress.

    Olive Murpy Riker

  • Mark S says:
    October 06, 2009 15:38

    Chuck great article. Where is your picture?

  • Robert M says:
    October 09, 2009 23:48

    very well done - sell the article to Intuit! - and perhaps plug your company - thank you - Robert Mayer

  • Dante L says:
    October 13, 2009 07:45

    Thanks Chuck.

  • Eric S says:
    February 23, 2010 22:37

    So if I'm reading correctly, I cannot use the new IPP unless my client wants to upload their data off their own servers? That'll be a tough sell.

Please log in to add a comment!

Sleeter Group Newsletter

Stay up-to-date with top-notch technical articles, event information, and special offers from The Sleeter Group by subscribing to The Desktop Accountant, a free e-newsletter.


 

Join the Sleeter Group Consultants Network

The Sleeter Group Consultants Network is a community of experts in accounting software. Sleeter Consultants provide the best solutions in training, implementation, and support for their clients, and are backed by each other and the resources of The Sleeter Group.

 

2010 QuickBooks Consultant's Reference Guide

The Sleeter Group's best selling QuickBooks troubleshooting guide is packed with techniques to diagnose and fix your clients' QuickBooks files.