Why I Created YADA

YADA is inspired by what I learned about software innovation in over 20 years of dealing with constraints. As a developer, you innovate to solve problems: you don’t have a budget, you need to respond to change quickly, you have to use existing skills. Sometimes all of the above. Also, because you don’t get anywhere by standing still.

When I arrived at Novartis in 2011, my first task was to reverse-engineer a bunch of applications for accessing data that had been developed by a scientist who had left the company. We were going to decide whether to extend, maintain, replace, or kill them. But first I had to understand the code–including thousands of lines of embedded SQL queries and Javascript. I had a lot of autonomy to decide how to tackle the problem, and my overriding concern was that it not take too much effort.

I looked for a tool that would help me understand the data model and implementation without having to re-architect the applications–perhaps some zero-config middleware, or middleware-lite– but I didn’t find one. I proceeded the tedious way, reading every line of code to understand the developer’s patterns, conventions and rules; and to find bugs and dead code.

Then inspiration struck:  I put the queries into a database so I could use SQL to learn about the queries as well as the data. This saved me from wasting time writing  a one-off script just to parse the code.

The implications of this choice were immediately clear: if I could get the data, it wouldn’t matter what we did with the old applications. The queries were already effectively in an index, so I wrote a generic web service–a finder function–to extract the queries from the index and execute them at runtime. Anyone with a URL for the query could access the data.

That index and finder function evolved into  YADA. As we developed YADA further, into the framework it is today, we’ve adhered to four principles

  1. Simplify data delivery. Once YADA is configured with your data source, you can share queries securely using a URL. No more writing middleware.
  2. Stay flexible. YADA works with any JDBC, SOAP, REST and some Filesystem data sources, and it’s compatible with any HTTP client. It’s like a universal remote control for data.
  3. Favor prevalent skills. YADA is designed so that you don’t have to learn a new language or API to use it.
  4. Do less work. YADA eliminates steps from your workflow, so you can deliver data to users more quickly.

The YADA code and complete documentation is available on Github. I’m looking forward to your feedback, and to learning what you do with it.

Posted in Uncategorized
One comment on “Why I Created YADA
  1. […] As I alluded to earlier, it is this last risk in particular that many fail to acknowledge and embrace. As developers, the decisions we make about tools, languages, and libraries can be fateful. This desire for future-proofing and flexibility was a driving force in the creation of YADA. […]

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: