7/28 Design Critique Meeting Recap

Well, our first attempt to stream our meetings was a resounding success-slash-FAIL.  We had about 16 actual-real-life people in the room and a consistent remote viewership of about a dozen people (and about 20 all told over the course of the evening), with lots of chat feedback from the remote audience.  All of that was great.  But when I went to save the recording: FAIL.  Too embarrassing to go into detail (let’s just say I thought that CANCEL button meant, er, something else).  Better luck next time, I suppose, though I’m disappointed.

We’ll be trying a few things differently next go round. Aside from not breaking things, we’ll look into better views of the presentations themselves, rather than a shot of a darkened room with blobs moving around.  Options include picture-in-picture or two simultaneous streams, or dumping the “room view” altogether when the presentation is heavily projection-driven.

In any case:  the meeting itself was very informative and dynamic, with lots of participation from the in-person audience.

Loreli Voltmer of MATAAC presented first.  Loreli’s company, the Blue Bell, PA headquartered MidAtlantic Trade Adjustment Assistance Center, manages the disbursement and management of Trade Adjustment Assistance federal grant funds, with the objective of improving the global competitiveness of Mid-Atlantic based US businesses.

Loreli brought several design problems to the group for discussion.  I’ll just cherry pick one as an example, since we spent about 40 minutes talking over the various design patterns in the file and possible solutions.

One feature in Loreli’s system requires the selection of a consultant from a list.  Currently this is implemented as a pop-up menu using a value list tied to a consultant table with 500 or so names.  There are several issues with the current implementation:

  • The list doesn’t filter for only ACTIVE consultants
  • Type-ahead, while it works, is cumbersome in long lists
  • Even if filtered for ACTIVE consultants, the list would be about 150 names

Loreli had already worked on one solution for the ACTIVE issue, suggested by Tim Dietrich – namely to create calculated fields that return the ConsultantID and ConsultantName, respectively, if an ActiveFlag field has a value of 1 (e.g. an Active checkbox on the Consultant record).  One then points the value list references to these fields.

This made the list more accurate in terms of what one might select, but raised another problem:  on historical contract records where the consultant was now no longer active, only the ConsultantID displayed – the Name was “gone”, so to speak.

The group hashed out some of the more obvious tactical solutions to the problem – change the way the consultant name is stored or displayed from the Contract context, etc.  But what eventually emerged from the conversation were two design patterns that addressed all three of the original issues.

One, proposed by Dan Stein involved the use of a portal driven by dynamically assigned filters that are updated via script trigger.  A user types into a Filter field, and the portal contents filter accordingly.  One can make a selection from the portal using a script to grab the portal row’s ID, and then do whatever’s needed with it.  Various flavors of this have been built in the past, and since FileMaker 10 has come out, it’s been a very robust, solid design pattern.

Dan’s addition to this concept consists of a scripting method that’s fully abstracted, so it can be copied and pasted anywhere.  Dan’s committed to providing a sample file based on the solution he demoed last night, and once I get that from him I’ll post here.

The other design pattern we discussed is sometimes called a “picker interface”.  Basically it consists of a new window “dialog”, presenting the user with a list of Consultants.  In this design pattern there can be both a filter field AND a find mode option, so the user can filter the list as with the first pattern, but can also enter find mode and perform a straight up find.  Once the user makes a selection or cancels, the window closes.

SixFriedRice has a video example of filtering a list view (as opposed to portal) here:  http://sixfriedrice.com/wp/script-triggers-filter-as-you-type/.  And Excelisys uses a portion of this design pattern in their As-You-Type Search Filtering Demo, part of their Tips and Tricks offerings.

Both of the design patterns we discussed essentially solve the value list problem by not using a value list.

The list is the problem. And the solution is to provide an alternate kind of user experience to select the appropriate record. In the first design pattern a portal substitutes for the value list; in the second a list view layout is the substitute.

Dan Stein (of Digital Software Solutions) was up next, and presented a design retrospective of a large project currently in the completion stages.

The solution is a FileMaker front end to a very large mySQL database (millions of records) using ESS for the connection, along with some web driven content using conventional web technologies, using the same mySQL database as a data source.

Dan spent most of his alloted time sharing his anecdotal experience with setting up FileMaker as a front end for mySQL.  FileMaker doesn’t advertise ESS functionality as being primarily for this kind of usage – it’s billed as a way to easily view/edit mySQL data from FileMaker, but not necessarily the highest performing way to do it.  FileMaker has to do some legwork internally to make the process of connecting so seamless (it really DOES only take 5 minutes to build a connection) but that legwork adds cuts into the efficiency of queries in minor but sometimes very important ways.

Building a connection between FileMaker and mySQL, then, involves exploring these issues and taking pre-emptive action to address them so performance issues are minimized.

If anyone’s unfamiliar with this kind of connection, there’s a great recorded webinar on the topic on the FileMaker site, conducted by Rick Kalman, Product Manager for FileMaker Inc.:

FileMaker – mySQL Webinar

Dan mentioned, among other things:

  • the need to set up indexes in advance in the mySQL database – for performance reasons
  • methods for adding global fields to an ESS table (hint: use a calc field and reference a global in a globals/system table)
  • well… various other stuff my brain’s too addled to recall.

In the spirit of a design retrospective rather than a critique, we also talked about project challenges.  Dan brought up the fact that he engaged the services of SmallCo for design advice early on in the project – but not early enough, and based on some of the feedback from Albert Harum-Alvarez he had to refactor several aspects of the UI.  This actually brought to mind for me several conversations at PauseOnError a few weeks back, on the subject of collaboration between developers/shops, where the strengths of one complement the strengths of another.  Maybe that’ll be another post, as this one is getting quite long.

Anyway, all in all – great meeting!  Thanks to everyone who attended.

- Colin

 

3 Responses to “7/28 Design Critique Meeting Recap”


  • Colin- Sounds like it was a GREAT success! (even with the “technical difficulty”)I am sorry I missed it, but a family issue came up while enroute. Can’t wait for the next meeting!
    Paul

  • Colin,

    This is Minh Nguyen, how are you? long time no talk. This is the great group and I still check on the blog frequently.

    One suggestion I would like to give to the group about ESS discussion. To increase the performance between FileMaker and any SQL based server. Create a View on the back-end SQL with all the data that you need display in FileMaker. This will require the developer to learn a little SQL but tremendous increase in performance. In summary, developers should try to avoid using the join in FileMaker as much as possible, leave that work to SQL server.

    Minh Nguyen

  • Minh! Good to hear from you.

    Excellent point, and I’m pretty sure that’s among the techniques Dan’s using – we just didn’t have time to explore everything, since it was a large system.

    If you want to write a blog post on the technique, let me know – it would be useful, and we’d be happy to hear your voice here. I’ll send an email. Hope you’re well.

    By the way, Minh is a former IT Solutions colleague, and one of the folks who came up with the concept of using tab controls to create “sortable” portals, back in 2006:

    http://my.advisor.com/doc/17896

Leave a Reply