It is our choices ... that show what we truly are, far more than our abilities.
-- J. K. Rowling
How many of you understand the following?
00111110
00000010
00000110
00000100
10000000
No one? How about this?
MVI A, 2H
MVI B, 4H
Add B
One more try. Who can make sense of this?
2 + 4 = 6
Believe it or not, they all represent the same thing. The first example is machine code for an Intel 8085 processor. The second is Intel 8085 assembler language for that very same machine code. Lastly, I translated both into the equivalent math equation.
The point of this is not to prove that I have been around computers since dinosaurs roamed the earth. Rather, it is to demonstrate that the same thing is achievable in multiple ways. However, some concepts are easily understood while others are so specialized as to be useless to 99.999% of the world's population. Very few people can program in assembler language, but anyone with a first grade education can do basic math.
While assembler might be considered obsolete by today's software developers, programmers still speak in languages that most of the world cannot understand. For instance, how many of you are able to write Web services using RESTful APIs? My guess is that a few hands went up, but not many. While nearly every No Jitter reader is familiar with the core concept, the vast majority of you haven't sat down to read, let alone write, Web services calls.
APIs Rule
Are you familiar with Jeff Bezos's now-famous 2002 open platforms mandate? Among other things, he put forth that, going forward from that time, all teams needed to expose their data and functionality through service interfaces. To put a little extra oomph on his point, he added that team members who didn't abide by that principle would be fired.
While I wouldn't go so far as to send a coworker packing, you would be hard-pressed to find a bigger fan of APIs and open systems than me. In fact, I have strongly recommended that APIs be a part of every technology RFP. As Bezos so clearly stated, the days of closed software solutions has passed and locking yourself into products that wall themselves off from the rest of the world makes no sense.
That said, you can do things the easy way, or you can do things the hard way. Web services are table stakes when it comes to integration, but they should not be the only game in town. As I demonstrated at the beginning of this article, there is more than one way to write "2 + 4 = 6."
Zang Me
Almost exactly one year ago I first wrote about Zang, an Avaya company, in my article, "Zang from the Inside Out." While Zang's comprehensive and innovative Web services interfaces impressed me, I've moved beyond those. These days I want the power of those Web services, but I've been spoiled by the drag-and-drop programming of the Avaya Breeze platform. Thankfully, the folks at Zang felt the same, and have recently launched their own version of Breeze that wraps Zang Web services calls inside easy-to-use visual widgets.
The Zang Workflow graphical design tool looks a lot like Breeze in many ways, but unlike Avaya's on-premises implementation, Zang Workflow lives completely in the cloud, embedded in the Zang Cloud platform. This means users don't have to invest a dime in communications hardware to write powerful workflows that utilize voice, SMS text, email, and even other cloud services. In fact, a developer could potentially go from idea, to prototype, to solution, to a saleable product in less than a day.
Show Me
I learn best by rolling up my sleeves and immersing myself in whatever it is I am trying to understand. I recently did that with Zang Workflow, and in less than an hour I had written both a simple text bot and a carrier lookup application for incoming voice calls. Yes, I am already familiar with Breeze, but even the inexperienced developer would be able to pick up the basics in a matter of minutes.
To start things off, I created an account at Zang.io, put a few dollars into my account, and purchased two telephone numbers. You can use Zang numbers for both voice and text, but to keep things straight in my mind, I dedicated one number to my text bot and the other to my carrier lookup service.
Like Breeze, Zang Workflow presents me with "cabinets" of visual tasks that I can integrate into my workflows. While the Zang cabinets are not always as full as their Breeze equivalents, they contain more than enough to make me happy.
In addition to telephony functions, media services such as play announcement and collect digits, SMS text, email, decision logic, and integration with other cloud services, Zang Workflow has a collection of carrier services tasks that allow you to dip into the details of a voice conversation not otherwise available. In other words, my applications can act like a mini carrier and dynamically retrieve information such as billing data. While this level of sophistication might not be of interest to every application, I can think of several use cases in which it becomes essential.
Version One
As impressed as I am with Zang Workflow as it exists today, it clearly has the look and feel of a version one product -- it does what it's supposed to do, but could do more. For example, Zang Workflow lacks database integration or short-term data storage, as well as the ability to create custom events that are a powerful and innovative aspect of Breeze application development.
For the most part, the Web interface to Zang Workflow worked flawlessly, but at times it felt a little slow and on one occasion it got into a goofy state that required me to kill and restart the browser tab. As a longtime developer, though, these are things I am used to in a new product and nothing I encountered soured my impressions overall.
Mischief Managed
As I stated from the onset, there is more than one way to express an idea. As a part-time software developer with too many things on his plate, I love being able to write complex solutions in as little as a few minutes. While I will never give up my love for "real" programming languages, I find that drag-and-drop coding better fits my current schedule. This is certainly true for folks who haven't the time to even learn a traditional programming language in the first place.
Simply put, if you could write the exact same application in 20 minutes rather than 20 hours, which one would you choose? Zang and its new graphical design tool makes the right decision possible.
Follow Andrew Prokop on Twitter and LinkedIn!
@ajprokop
Andrew Prokop on LinkedIn