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 first of two posts written by Mr. Hoffman based on our email exchange. — Matt Welch.
Recently I was contacted by Matthew Welch, who asked me to compile some of my thoughts and info about observation software. I’m not a psychologist; I’m a special education teacher. I had the good fortune to work closely with a school psychologist this year, and she asked me to do a Time on Task behavior observation for her one day, and while I was frantically moving back and forth between the clipboard and stopwatch, missing about 75 percent of what was going on, it occured to me that this was an observation that could be made far more accurate and a lot easier with the aid of a computer. It just so happens that I had recently taught myself Python, a high level (meaning easier to learn) programming language. I am not a programmer. I do tinker, but the reason I taught myself Python was actually to gain insight into what it feels like to learn something that is way outside one’s comfort zone. I figured it would make me a better teacher to stretch myself; I had no intention of actually using it for anything useful. But, as luck would have it, I knew just enough Python to write a simple little command line script that I could use to automatically time On-Task and Off-Task events and then have it spit out a .csv file containing the timing of all the intervals. The school psychologist caught me using it one day and got all excited and asked if I could make a version that would install on her Windows computer, so I took a few more months to learn even more about programming computers and finally ended up with a little application that I was able to port to both Windows and Macintosh platforms.
As I perused the internet searching for commercial software that does the same thing as my free application, I was disappointed, and I have some thoughts as to why it is that commercial software just never quite seems to meet the specific needs of skilled professionals like educators and psychologists. First of all, programmers, and I mean real programmers, the talented professionals who program because they love it and find it intellectually stimulating, don’t want to write software that’s as simple as what we need. I learned to program from an online book called “Learn Python the Hard Way” by Zed A. Shaw. In the epilogue, he states:
“Programming as a profession is only moderately interesting. It can be a good job, but you could make about the same money and be happier running a fast food joint. You’re much better off using code as your secret weapon in another profession.
People who can code in the world of technology companies are a dime a dozen and get no respect. People who can code in biology, medicine, government, sociology, physics, history, and mathematics are respected and can do amazing things to advance those disciplines.”
In other words, most programmers are not earning six figure incomes, and there are entire cubicle farms filled with programmers of the middling sort who are not stimulated by their work. Most programmers are not rock stars like Mark Zuckerberg or the guys from Google or any number of countless silicon valley start ups. The reason for this is probably somewhat related to the fundamental accessibility of programming in comparison to other technical disciplines: everyone has a computer, everyone has the internet, therefore for every professional coder out there there is at least one more 13 year old at a computer learning the next big language and getting ready to replace that guy in 6 years with the next big thing. As teachers and psychologists, we are relatively isolated from this anxiety.
There is, of course, another reason commercial enterprises aren’t truly interested in selling us software we need: there isn’t a good revenue model. The fact is that most of the software features I genuinely need are too simple to be worth selling, and once they’re done right the first time, they never need to be redesigned. It’s not like the newer, fancier software that comes with the WIAT assessments is really functionally any better than the now archaic looking application that comes with the Woodcock Johnson version 3, is it? There is little incentive for a software company to sell a psychologist or educator a simple application that uses standard file formats because we would only buy that application once and then use it for the rest of our careers. It’s far more lucrative to artificially control our access to the features that we really need, slowly releasing each one as a new feature with every paid update.
This is all well and good, except that we work for our patients/students/clients, not for the enrichment of software companies wasting top programming talent on projects of dubious value. Those programmers should be doing something worth their time and of greater benefit to all of us and we should be designing our own applications that do what we actually need them to do so that we can do what’s best for the populations we serve. The true value of a computer is that it is an endlessly configurable tool that can do whatever you can imagine it can do. We all have in our hands, in our laps, and on our desks enormously powerful machines, and there has been a dedicated group of very talented and socially minded programmers working tirelessly to develop a fast and accessible programming language that makes it possible for all of us to configure these machines to do what we need them to do without hiring an expert. That language is Python, and you can learn it for free. Consider programming in a high level language like Python to be just another tool in your professional quiver, no different than learning how to read and write.
So, instead of waiting for the next application to come along to do whatever you need, consider that it may never “come along.” I grew up around an engineer and jack of all trades. One thing I learned from a very early age (I’ve had a soldering iron at my desk since I was 12) was that there are just some things you’ll have to make yourself because the market cannot provide for all of your needs. This is far from a call for self sufficiency; there’s no such thing. Self sufficiency gets you nothing but a handful of wild oats and bleeding feet. But if you know how to to use the tools of the trade, you can create what others can’t make for you and then share what you create. This requires you to put in a lot of time learning how to use the tools that empower you to do that, but the investment is worth it, not least of all because you can enrich others with your work. You’ve probably already wasted a good share of your professional life looking for “the easy way” but like the Donner party you just end up stuck in the middle of nowhere with nothing to show for it.
I didn’t expect this to turn into an essay, let alone such an ideological tract, but I do think it’s important that at least a small percentage of professionals in every field pick up a little programming skill for the enrichment of the entire profession in which they work. It doesn’t need to be everyone. Software is reproducible; that’s the beauty of computers. I already designed the only time on task program special educators would be likely to need for this type of observation. It doesn’t need to be coded again, everyone can use it for free, and I’m only one person! I’m also only a mediocre programmer. I am not even close to an expert. Imagine the power that could be unleashed in your profession if even one percent of psychologists could program at just a mediocre level of proficiency. For example: Why wait for some publisher to finally computerize the evaluation and data tracking process? Why not just do it yourself within your own practice? Python is perfect for this, and with all the available web frameworks, including Google app engine, you can easily scale your creation across an entire organization and circumvent the IT department. This shouldn’t be a question of marketability; it should be a question of doing your job as well as possible. Right now, there aren’t enough computerized tools. With more people programming from within the profession, that could change. So, consider this a call to arms of a sort, or maybe just a call to keyboards. Make a commitment to really learn how to use the tools that are sitting in front of you to their full potential to really enhance the quality of the work you can do for those you serve. — Josef Hoffman