Chris Gerrard

mailto:Chris@Gerrard.net

mailto:Chris.Gerrard@Claraview.com

2014 - Tableau Practice Manager for Claraview, Teradata's consulting organization

It looks like Tableau is finally catching on with corporate America. We're focusing on helping organizations with their business data analysis needs and efforts.

2010 - 2014

BI consulting with a variety of clients, concentrating on bringing the opportunities Tableau provides to bear, improving the velocity and quality of business data analysis by adopting and adapting the principles of agility and, as much as possible, patterns to the practice of analyzing business data, and helping others become adept at doing so.

2010 - Managing Consultant in IBM's Business Analytics and Optimization practice in Global Business Services.

2009 - 2010

Have done a lot of work with Tableau, from Tableau Software, in Enterprise BI projects. I've found that Tableau is a supremely good tool for closing the gap between data and analysis, frequently to near-zero. There are implications arising from this across the full spectrum of BI, e.g.

2008 - Global Solutions Architect for one of the larger IT consulting companies. I've spent the past few years deeply immersed in Business Intelligence, is a sense returning to my original professional experience in everything to do with helping real people gain real insights into the information captured in their data.

One of the things I'm currently engaged with is: Is there a 'proper' approach to modeling real-world things in business intelligence systems? There are two opposing forces in my current situation. On the one hand, our end users want us to model the real-world surveys they're analyzing, even though it makes some analytical operations much more difficult, and is inflexible in incorporating changes to the surveys themselves. On the other hand is the 'elegant' approach of modeling the surveys with a level of abstraction that can perform all of their current analytics, albeit differently, is flexible in the face of change, and makes some analytics much, much easier and more straightforward.

Previously: Obtained my MBA from The University of MD Smith School Of Business, May, 2007.

Spent a good bit of time working for the Washington D.C. city government. Very interesting.

Worked in Columbia, MD at a very interesting place replacing their Perl customer-facing apps with Java/J2EE, where the challenge is to be aware of and take advantage of all the good stuff in the world of software development.

Worked for a software development company in Malvern, PA. 2001-2002. Very interesting, and ultimately futile. One of the things I knew, but learned concretely, was that a servlet that spanned 12 pages when printed out is a *bad idea*.

I have a deep interest in almost everything having to do with helping people augment their intellectual abilities with computing machinery, including:

Is there anyone else out there who wonders about the "nature" of the software we build? What does this mean? It seems clear that there is a conceptual collision between the types of software implicit in the Object Oriented world, where the application is composed of collaborative communities of objects, and the "business" world, where the "applications" are considered as veneers to (relational) databases, and the thinner the better.

I'm trying to come up with some descriptions of these concepts that make sense. Here's a stab at it...

The OO application type is something like ApplicationAsCollaboratingObjects. Then there is the ApplicationAsDbVeneer.

Extreme Programming

My first exposure to highly productive development environments was in the mid-80s using a first-generation 4GL (yup.) to create high-value information systems. I'm attracted to XP's characteristics that represent the same types of experiences.

Software Patterns

In early '97 as I was learning Java. The OO principles I'd earlier learned were brought to life in an approachable language. Good stuff.

At the moment I'm pondering the issues involved in trying to help my company learn how to develop complex software, and if there is a body of work or information, or other people engaged in similar pursuits.

On of my real wonderings is what are the linkages between the various forces that exist in an organization that can guide the selection of development processes. It seems to me at this point that organizations can be - roughly - be categorized according to their 'maturity', and that lighter weight development processes are more suitable for those more mature, while heavier weight processes provide more organized guidance for less mature organizations.

Here's a rough stab at those characteristics that seem to matter:

        * hmmm, I've stalled...

These thoughts aren't well formed; I'd appreciate any suggestions, directions, or pointers to areas where similar issues are discussed.

Other than that, I'm trying to come up with a cogent description of myself. It's difficult. ---

I've been thinking quite a lot lately about the "nature" of Web-type applications, particularly those on J2EE. Most of the common, or popular, information represents these applications as publishing mechanisms for the contents of databases. Relational databases at that. The implicit assumption is that the data the applications render is not the same as the "state" of the application. In this conception the application is itself a thing separate and apart from the information of interest to the user of the application.

This has troubled me for quite some time, although I've not been able to form a good firm idea of the disquiet, but keep trying.

There's nothing wrong with applications such as these. What I find objectionable is that in the J2EE space pretty much <b>all<b> applications are framed to be of this type. This is clearly a grossly limiting perspective that doesn't admit the potential for other more effective types of applications.

I'll try to explain with an example. In my last project the basic idea for the new product we were building is that an entity - organization, person, etc. - is involved in numerous relationships of various types with multiple other entities. This may be pictured as an arbitrary graph with the entities as nodes and the edges as relationships. To clarify, any given pair of entities may be connected with multiple relationships; whether these are combined into on aggregate relationship or not never was really well defined.

The application was intended to have these features:

In the end, the application is at once an application generator and the final execution engine for the generated applications.

My very strong feeling is that this situation calls for what I think of as a "classic" OO solution: conceive of the modeling application as a set of objects that provide the means to model the specific relationship network; provide the means to generate classes representing the specific entities and relationships in the network; provide the mechanisms for interacting with the relationship network itself.

Now comes the fun part - determining what the form of the running relationship network application should be. I think of there being two basic types: one is the aformentioned "standard" J2EE application where all the entities and all the relationships are kept in the database and only surfaced up through the application in response to queries; the other is more like the classic OO (and I'm thinking of the Storage Depot example in the Fusion method) model where the network is itself a community of entity objects and relationship objects referencing one another as appropriate. My classic model feels better. Why? That's what I'm trying to figure out.

---

CategoryHomePage


EditText of this page (last edited July 17, 2014) or FindPage with title or text search