The holy grail of Interactive Voice Response (IVR) programming seems to have been, at least since the mid 1990's, a graphical user interface (GUI) for programming what is the furthest thing from graphical technology: Voice.
This is because IVR vendors are increasingly going after the end user as their direct customer, and either ignoring developers completely or trying to create cottage industries out of marginally competent IT consultants.
Furthermore, IVR developers are all in competition with each other. The logic seems to be, at some point, the tools created by IVR developers become good enough that their users will be able to compete with them in their own market. The dust has settled on their being two kinds of IVR software products: Expensive, complicated development tools for sophisticated IVR programmers which target specific operating systems and equipment, and cheap, easy to use, drag-and-drop tools for users of a specific IVR.
(FYI, although technically Asterisk is not "Expensive", I still tend to categorize it in the former, because even though the software is free, I consider it to be an extremely "Expensive Mistake" unless you know exactly what you are getting yourself into.)
The trajectory of IVR development tools also seems to have symmetry with software in general. It used to be accepted, or at least acceptable, that in order to use a computer you were expected to have to learn a few things. This is no longer the case, and that certainly is not a bad thing. My 5-year-old is very proficient with the computer at home and I don't mean that in a cute way: She actually knows what she is doing. She knows how to search YouTube and Google. She sees ads for websites on TV and goes to the computer to visit them. She pauses the TV and writes down the domain names in big, sometimes reversed, block letters, then fires up a browser and types the domain name into the address bar.
Look at the iPad. It has become so easy to use that you don't even need a keyboard. But, now we're starting to walk down a different path. Frankly, as a cranky old man, there isn't anything you can do with an iPad that I'm particularly interested in.
Go back to 1999 or thereabouts: An IT consultant charged with setting up a simple database had two choices: GUI or Code. While Microsoft Access did have a robust programming language built into it, most users simply use the graphical User Interface, and only advanced users took advantage of the Visual Basic interpreter that ran behind it.
On the other hand, SQL (such as MSSQL or Oracle) and xBase apps (such as dBase and FoxPro) also had some kind of GUI that could work with files and process data, but most users of these systems worked with primarily the languages and only secondarily with the GUI to make things easier for their operators and end-users (such as a cashier or data entry clerk).
And it was not dedicated, brainy programmers who used these languages. dBASE was originally created so "Anyone" could make a database application. The "B" in BASIC stands for "Beginner". People used to talk about what language should be the best one for children to start with.
There used to be plenty of choices, but now, not really.
The growing chasm between GUI and Language has made programming with language almost impossible to learn. Yes, there are millions or competent, knowledgeable programmers in the world (including about half a million in the US, according to the Department of Labor, 2008) but compared to 76% of the population of the US in 2005 who actually owned a computer (about 200 million, according to research done by Seagate). When personal computers first came on the market, every one who owned one knew at least part of a programming language.
From my experience as a technical support engineer for a software company in the early 1990's, I would volunteer a guess that probably half of computer owners at that time knew how to write and run at least a BASIC program or batch file.
Now, using the best information I could find in 15 seconds on Google, the statistics would seem to indicate that less than one quarter of one percent of computer owners in the united states know how to write a program, or possibly even know what that means.
In 1990, being "computer literate" minimally meant knowing how to create a shell script (like a DOS batch file), knowing your way around the command shell, and knowing how to do useful things with a programming language like QuickBASIC.
In 2011, according to the salesman across the hall from me today, being "computer literate" means knowing the difference between a PC and a Mac. He's used to the Mac. He can't use a PC, therefore he considers himself to be not computer literate.
The implication is that being a programmer is now considered a form of engineering, perpetually moving away from the grasp of small hands and average young minds, and turning into a specialty that has little opportunity to jazz the imagination of the average American, and is consistently reinforcing itself as the defacto profession of the third world.
Anyone, anywhere in the world can sit down in front of a computer and, with little or no human intervention, learn to become an adequate programmer, compete in a global marketplace and earn a living. It only depends on how hard they are willing to work at it.
Much in the same way, anyone in the United States can pick up a shovel, dig a ditch that needs digging, and earn a living at it. It only depends on how hard they are willing to work.
(Incidentally, how many American computer programmers do you know? How many American ditch diggers to you know?)
My point is that Programming with Language has become such a specialty due to its increasing complexity, that fewer and fewer young westerners are being exposed to it, while on the other hand, more and more young people in developing nations are studying it hard because it is still a profession that can be self taught, and it is a geographically independent skill that can be marketed globally.
Most people refuse to consider programming anything with language simply because the language developers have made it too complicated for most people to learn, unless they have a vastly compelling reason to do so, like hunger.
But one of the results of this, is a proliferation of substandard software tools serving a market of vaguely skilled consultants who don't want to learn more than they have to, and who are largely unable to deliver services to end users that they really want.
I once heard a consultant tell an office worker, "Yeah, if you want to get out of that program you have to turn the computer off and back on again". God bless that man for printing up business cards and finding people to pay him, but knowing just enough to function is not going to compete with guys named Samir amd Rajiv.
My IVR systems have always given me a competitive advantage when using them for a variety of different businesses because I program them with language. It's not a complex, netty or perly language, just a simple IF THIS THEN DO THAT unstructured implementation of a BASIC-like interpreter.
When I originally developed the language, I imagined end users of evodialer.com and roboverifier.com using it to program their own IVRs. My clients were call centers, marketing companies, government entities, even Fortune 500's that all had IT departments of some type.
My experience with that shows me that people want few, simple choices, and if they really need something not accessible in two clicks, Samir needs to do it.
It seems like nobody realizes that they can still learn how to do things. That there's not just "An App for That", chances are, there's a language too, and the language is far more useful and powerful than the "App", and that learning it is not impossible, and probably not even hard, if you at least have a general understanding of what a programming language is and have had the opportunity to use one.
This refusal to program with language is parallel to a reluctance to repair one's own appliances or automobile. As long as it not a necessity to do so, why bother? I had to learn to fix a problem with the engine of my truck when I could not afford a mechanic. It turned out to be a lot easier than I thought. I mean, it was difficult, but I had first assumed it would be impossible.
Children need to have BASIC returned to them, so that they can grow up knowing what it means to use a programming language. Even Visual Basic has become way to complex for children to do anything useful, simply because there is too much you need to fully understand before you can do anything useful, and that commitment needs to be developed. I can learn any programming language in just a few minutes, partly because I've had decades to familiarize myself with most of them, and partly because I know that it is learnable if I just move in that direction and don't stop until it's learned.
Programming languages are designed to be learnable, and as learnable as possible, within the confines of its purpose, just like cars. I am not lamenting the loss of our ability as a nation to write a program or fix a car; if anything I might only lament the loss of yours and mine, and all of the little children.
Programming languages are designed to be learnable, and as learnable as possible, within the confines of its purpose, just like cars. I am not lamenting the loss of our ability as a nation to write a program or fix a car; if anything I might only lament the loss of yours and mine, and all of the little children.
Erik Olson, COO
14001 63rd Wy N
Clearwater, FL 34695
Cell 888-LEE-ERIK (888-533-3745)
Offc 727-COO-ERIK (727-266-3745)
Skype: ProtelResearch (same as office)
ProfessionalTeleservices.com
QualityCallsInc.com
14001 63rd Wy N
Clearwater, FL 34695
Cell 888-LEE-ERIK (888-533-3745)
Offc 727-COO-ERIK (727-266-3745)
Skype: ProtelResearch (same as office)
ProfessionalTeleservices.com
QualityCallsInc.com
No comments:
Post a Comment