I recently came across a simple (but powerful) software program called FBA Machine for completing behavior observation data collection using a Windows or Macintosh computer written by a special education teacher named Josef Hoffman. My inquiries to him about running the program on Linux led to a general discussion about behavior observation software, its use by professionals, and our perceptions of limitations in much current software for this purpose. The following is the second of two posts written by Mr. Hoffman based on our email exchange. — Matt Welch.
I decided it would be a good idea to also include a little addendum about the characteristics of good observation software. It just so happens I came up with ten characteristics. I wish I could call them axioms, but I’m not sure they’re that profound. Good observation software:
- Outputs simple files with universal extensions. It’s unlikely that you, the software developer, are smart enough to remake the wheel. It’s hard to find a computer that doesn’t have some program that can read and manipulate both .txt and .csv file formats. Data analysis is king of the hill in the education world, and it isn’t going anywhere. Each professional is going to have slightly different ideas about what they want to do with the data. This leads to the second characteristic.
- A good observation application gives the user access to all of the data it generates: Don’t withhold data from the user. Remember, this software is for professionals, treat them as such. If your application generates any kind of data, store it in the final output files somewhere.
- Only outputs data, no display or analysis: There is this application out there called Excel. It can do all kinds of neat things with data. Don’t waste your time coding something inferior that tries to predict what the user is going to want to do with their data. Accept that for whatever reason your application will not be available to interpret its own data two years down the road. Just make it save the files somewhere and leave the display and manipulation to the far more sophisticated tools designed specifically for that purpose that the user already has on her computer.
- Uses a simple interface that adopts the operating system theme: Professional users don’t care that you have a friend who does great visual design. Just use a GUI framework that adopts the visual themes of the native operating system and leave the cartoonish buttons and goofy skins to the bloatware the user deleted from their machine when they took it out of the box. You’ll save time and save the user from frustration.
- Acknowledges that it is not clairvoyant: There will be situations you can’t predict. Leave some blanks for user specified events. That being said, I limited mine to a maximum of three events, because it’s best practice to limit the number of behaviors tracked in any one observation session.
- Allows recording of notes, and time stamps them: One thing I was trying to get away from by using a computer instead of a clipboard was the “X” in a box type of observation that didn’t allow for notes. If we had perfect memory, we wouldn’t have invented writing. Make sure the application you design utilizes the dual innovations of written language and time keeping to keep time stamped notes. Make sure the date is somewhere in there too.
- Utilizes a physical keyboard: I know, everyone loves tablets and smartphones. I love tablets and smartphones. But tablets and smartphones are not good for fast note taking. Physical keyboards are great for notes. They’re faster than a pen! This does necessitate the use of a capable laptop and not your Iphone. I’m sorry for this, but it’s just a fact of life. Also, I’m not about to learn Java or Objective C, and it’s sort of a bitter disappointment that Google and Apple needed to rely on these languages for their smartphone platforms. As an aside, Python frameworks do exist for Android, and as the ecosystem evolves around smartphones and tablets, they’ll become more and more accessible to lowly neophytes like us. For now, however, I don’t feel that smartphones and tablets are a mature enough platform to really draw my attention from the traditional PC architecture.
- Uses keyboard shortcuts: This is crucial to time based observations. You’ll notice if you install it that my application can be navigated with the TAB key and has keyboard shortcuts for toggling between on-task and off-task. Mice are inaccurate and require too much attention to operate as cursors drift around the screen. Give the user some way to access basic features with a simple and fast keystroke.
- Is open source: We can look at this a couple of different ways, but the folks over at the free software foundation have thought this through better than I have and they can explain the ideology better than I can. So, for their views on this, go to www.fsf.org They are a fascinating organization. Now, here’s my two cents: the easiest path to customization is through the source code. Because I already put the hours and hours in to make the basic framework for a time based observation function the way it should, someone else who knows Python can go into my code and steal the parts of my code that work for them and add to it/modify it. So, if you don’t like all my buttons that relate to classroom based observations, no problem! If you’re really community minded, you’ll navigate to my Github and build a fork for your own needs. Or you might just copy my code and modify without my knowledge. Again, no problem! Remember what I said about clairvoyance? This applies to customizations. I could try to code customization into my app, but then it wouldn’t be simple anymore. On top of the added complexity, I can’t predict what you’ll want to customize, so we’ll just end up with the worst of both worlds: complexity without the desired features. I wish I was as ideologically pure as the people over at the Free Software Foundation, but I’m writing this on an Apple. My reasons for promoting open source are primarily practical and have to do with professional concerns.
- Is free to use and distribute: Software used in publicly funded enterprises like schools and departments of human services should be free. We should be trying to make the best use of public funds we can, and blowing 300 dollars per license on proprietary applications because the money comes from someone else’s budget is irresponsible. Now, that doesn’t mean you can’t support the developer; you’ll notice I have a “donate” button on my website. I probably spent around 500 hours or more on my app, mostly because I was learning as I went. I think it was time well spent as I got smarter in the process and I ended with something very useful to me and my co workers. Obviously this means that I was committing the mortal sin of “taking work home.” But there will always be people in every profession who don’t leave their profession at work. Just be thankful that they don’t have kids and are married to workaholic partners so they can get away with distorted priorities in order to make everyone’s lives easier. All that being said, most people distributing free software do take donations, and that is a great way to provide feedback and encourage further development if you like what they’re doing. — Josef Hoffman