As I sit down at my desk, tea and muffin at my side, I am reminded of my favorite saying among parents with young kids: Monday morning is the new Friday night! After a weekend of family time, I am ready to fully engage and focus.
I check my calendar and email to see if anything new has come up. As usual, I have a few requests from ongoing clients to make changes, to create reports, and to schedule meetings for later in the week. After responding to each of the emails, I tackle the requests that won’t take much time. I put the ones that are going to take longer (hour or more) in my queue.
My first project of the day is to create a new database application. Last week we had a kick-off call with a new client. During the meeting, we went over the specifications for a new database and the requirements for the user interface. The client has experience with the platform so she was very specific about what she wants. This is not common. Usually we take time to describe options and potential features by demonstrating similar applications.
For those less familiar with databases, here is a definition I found online: a structured set of data held in a computer, esp. one that is accessible in various ways. Even if you have never built one, we all have experience with databases. When you enroll in school, your personal and academic information go in a database. When you search for gifts on Amazon, you are searching through their online database.
To build a database, you need to know the type of information that will be entered and how the pieces of information relate to each other. For example, a simplified database that holds student data may have a table for student information (first and last name, student ID), a table for classes (English 101, Biology 1A) and a table for test grades. In this example, the tables would be related to each other such that each student takes one to many classes and for each class, the student earns one to many grades.
I start building the database from scratch. First, I use diagramming software to draw a visual map of the design. When everything looks good, I create tables and their fields and the relationships between tables using a point-and-click interface. This is a small application, so this stage takes a few hours.
In general, I build databases with radically different usage patterns. Some will be used frequently by the same people while others will be used infrequently by many different users. The one I am working on today belongs in the latter category. The user experience needs to be clear and intuitive. I create ‘smart forms’ so that fields become required at the correct time, fields show and are hidden as needed. An application consists of multiple layers of logic. After the structure is built I test, make changes, and re-test to make sure the logic is correct.
My science background was good preparation for this, though not directly. Describing a research program is analogous to telling a story. First, introduce the characters. In my research these were plant and fungal species. Next, describe how the characters are manipulated. Lastly, describe the results. With a large list of characters and multiple plots (experiments) it is important to give the audience the information they need when they expect it. Collecting data using a dynamic form (one that changes depending on the data entered) is the same. The format should be intuitive and the user should be prompted for input in a logical sequence.
I work on the application into the early afternoon and then take a break to answer some of the requests that have come in by email.
Next I have a client call. It is scheduled for an hour and we have a lot to cover. This is the first time the client is viewing their new application (a different application than the one I was working on earlier). We do a ‘walk-through’ to make sure we’ve met the specifications. We brainstorm to determine if we have all the use cases covered. Towards the end, we discuss the different types of users that will be accessing the database and what permissions they will need.
Tonight is our company holiday party so I head out to pick up my kids so we can go to the family-friendly event together!