Like any fine wine/cheese combination, I found that there are certain kinds of music (or silence) that go well with the various kinds of things that I do as a developer all day. We are a “virtual” company (we all work from home) and so I get complete control of my sonic environment to enhance my productivity. Since I am MightyData’s “Maestro of Metamorphsis” I thought a brief tour of some of the items in my @work iTunes playlist might serve as a vehicle for elaborating on what a FileMaker developer does all day. Here goes:
Discovery = Silence
Discovery is the process of gathering information from our customer about the current system and the system he hopes to build. During this process, we gather documents and information and meet with our customer. In this phase of development (which can occur at any point in the process of working on project), I am working to discover how he manages information currently, what the fundamental problem is that he is trying to solve, and what the value is to the customer if that problem were successfully solved.
Naturally, this is a process that involves a lot of communication, and so silence is the best choice for enhancing the process.
Analysis = Silence
When a project enters an analysis phase, I gather the information collected in discovery and work to determine the best development solution. This may involve drawing sketches showing data relationships, building spreadsheets to model reports, brainstorming solution ideas, researching prior work, and consultation with the customer and other members of the MightyData development team. More than anything, though, analysis requires deep thinking, and integrating many pieces of information toward the goal of finding the most efficient and highest value solution for your company.
The concentrated thought of the analysis phase dictates that the best musical accompaniment is again simple silence.
Planning = Philip Glass – The Hours
Before a single line of code is written, before I even consider developing a database solution, I will spend some time planning. For this phase, I open Basecamp (our web-based project management solution) and create to-do lists for each discreet bit of functionality or database structure that needs to be created. For example, if your solution requires 2 new user screens and 3 scripts, I will create a list for each of these items. I then load up the lists with all the tasks that need to be completed for each item. These tasks might be “Create New Table: Interactions”, “Add field to Interactions::Type” or “Design Interactions report layout.” The goal of this planning phase is not to capture every action that will be completed for a particular bit of functionality. Rather, I strive to capture enough information so that I have a detailed-enough map of the direction I am heading. It serves as a check against my work in the analysis phase, helping to confirm that the analysis was accurate.
Since the deep thinking is already complete when I enter a planning phase for a project, I can then crank up iTunes and dig in. I find the best accompaniment for the planning process is a musical selection that is not too intrusive, but inspiring and moving nonetheless. For this purpose, I usually select The Hours by Philip Glass. Glass is a 20th century minimalist composer and this particular recording is the soundtrack for a movie by the same name. The compositions on this recording are deceptively simple and hauntingly beautiful and are a perfect background for enhancing the development planning process.
Layout Design = Kurt Rosenwinkel’s Our Secret World
A layout, in FileMaker terms, is what you would consider a screen where database users find, view and change their data. Designing layouts is a lot like working in Adobe InDesign or Microsoft Publisher. FileMaker provides an interface for the developer to add, move and resize the various elements on the layout. Colors, gradients and graphics can be added to make the user screen pleasant to look at. I know that since a you will be spending a lot of your day looking at the layouts I create, I want them to look as clean as possible, while simultaneously delivering all of the functionality that is required.
I am an old hand with InDesign, having completed many graphic design projects in my pre-MightyData career. So designing great FileMaker layouts are dead simple for me. If I have done a thorough job with analysis and planning, then I really get to enjoy my work designing layouts by cranking up Kurt Rosewinkel’s Our Secret World. Kurt is one of the finest jazz guitar players of his generation and for this recording he teamed up with a Portuguese big band – OJM (Orquestra Jazz de Matosinhos) to play some of Kurt’s most difficult original compositions. The result is a highly kinetic and richly textured jazz big-band album featuring dynamic arrangements and some of the most inspired guitar improvisations I have heard in a while. Great stuff, and a perfect complement to designing layouts in FileMaker.
Script Writing = Pat Metheny’s Orchestrion
Scripts are the work-horse of a well-designed FileMaker database. To click a button to run a report, navigate the solution or really do anything at all with data, there is likely a script (or many) running invisibly in the background to help accomplish the task. Writing scripts also requires analysis and planning. If I have done my homework in these areas, then the next step is to plan the script itself. I create a basic outline of steps of the script and what result it will create with the data or for the user. If I do this well, then the actual process of coding a script is fairly straight forward.
Well-planned scripts often require some concentrated thought, so my musical selection for script writing requires a more subdued work that does not intrude. For this purpose, Pat Metheny’s Orchestrion is the perfect choice. Pat is a multi-Grammy award-winning jazz guitar player of the generation preceding the likes of Kurt Rosenwinkel. I grew up listening to Pat in many musical configurations and most recently experienced his Orchestrion project live here in Gainesville, FL. For this project, Pat created a huge orchestra of mechanical musical instruments that included marimbas, percussion, guitars, basses guitars, pianos, and glass bottles. Pat could control this giant one-man band entirely from a computer and his guitar. He created a suite of compositions for the project and, of course, released an album to document the music. The pieces are dynamic enough to be energizing, however they have a subdued quality that allows space for the thought process of script writing to unfold.
Testing and Perfecting = Silence
Even the best laid software development plans can result in unexpected results in a database solution – otherwise known as bugs. When bugs are encountered in a solution (often by the customer), it is my job to analyze and fix the issue. Depending on solution complexity, this can often require some deep thinking and testing of the solution. Fortunately, FileMaker provides developers with some great tools for analyzing the state of state of a database step-by-step as scripts execute, making the debugging and perfecting process as simple as possible. Regardless, though, sometimes the problem is “between the keyboard and chair,” and it can take some supremely concentrated thought to determine the root cause of unexpected or undesired behavior in a database.
Silence, again, is the best musical prescription for solution testing and debugging.
Documentation = David Grisman’s Hot Dawg
Documentation is the critical process of developing a record of how I created a solution and how it is used. Generally, database solutions are documented internally as they are created. I create copious comments throughout with the mindset that if I get hit by a beer truck tomorrow, that another developer could easily jump in and understand where to pick up from where I so unfortunately left off. Even more important though, I need to document the solution for the customer’s benefit. For this purpose I will dive back into Basecamp and create to-do lists of Test Cases with instructions on how to use your system, complete with annotated screen shots and even videos when needed.
At this point, the project is mainly done, and the process of documenting the solution for the user is simple and fun. For this activity, I prefer a musical selection that matches the joy of delivering a well-hewn database solution to my customer. David Grisman’s Hot Dawg is perfect choice. David is one of the top bluegrass/new grass mandolin players with decades of creative output. Hot Dawg features a variety of joyous renditions of blue grass and jazz swing tunes in a configuration featuring mandolin, guitar, bass, and the violin of the great jazz swing master Stephane Grappelli.
Thank you for accompanying me on my brief tour of the development process and of some of the finest selections from my iTunes library. I hope this process has improved your understanding about what the development process is like and what it takes to create quality database solutions that can solve your real-world business problems. And, I hope now, you have more of a picture of the tremendous pleasure it is to help you and your company get out from working “in your business” to working “on your business.” It is an honor to serve in this way – and I get to enjoy listening to some really excellent music. What could be better?!