I think it is a fun and compelling challenge to see just how much of the business you can put "on rails" with computers and various integrations. I have some background in semiconductor manufacturing, and the degree of automation I witnessed there got to me in a really deep way. Experiencing a massive factory that can literally run for hours-to-days without a single human inside is something else. I feel a lot of businesses can strive towards similar goals. Being able to fully-automate manufacturing of silicon chips is an incredibly opulent affair, but if you can simply automate a paper-bound business process that is on a hot-path (I.e. used many times a day), it could potentially save a struggling business.
Edit: Above was an attempt at digitization while this thread is about form automation. Understood. My point is that there was a lot of automation that could have been employed but wasn't. With that and good UI principles, the org could have made us more efficient. They chose not to because what they really wanted was a searchable database of patients treated so they could get more funding. EMT productivity was never a consideration.
I've seen a similar thing at a medical insurance company, not sure if this one was access (that they made IT take over) or winforms, but to make things even worse the list was un-ordered and semi-random. I only found out about it because the main user was bitching to me on a smoke break, but it had been this way for years and cost her at least a couple of hours a day. After the 5 minutes of work to slap an order by clause in there and the weeks worth work getting it though the bureaucracy (yay for that stupid process of billing internal clients) she was in tears.
Efficient and automated claims processing was the whole reason this company existed too.
I'm not saying the solution they used was a good one mind, but I bet that was part of the motivation to implement it that way
I once worked for an insurance brokerage whose in-house CRM had started years before as an effort to automate paper-based forms. The company's business model was based on having their sales advisers fill out insurance policy application forms on their customers' behalf and originally this had been done using pen-and paper, which was obviously time-consuming and laborious.
At some point, someone in the IT department had had the idea of scanning the application forms to image files and writing a simple PHP application to insert those images onto web pages with HTML <input> tags superimposed over the form fields, thus allowing advisers to fill in the forms using keyboard entry.
They quickly realised that once forms are filled in digitally, (a) you can store the form data into the database and retrieve it later for further editing, (b) some of the data can be filled in automatically from the customer's records and (c) when generating quotes across multiple insurance providers, the common parts of each insurer's form can be filled in from data previously entered elsewhere.
While the idea of superimposing HTML input fields over a scanned paper form isn't one I've encountered before or since, that company was turning over $3M per month by the time I joined, so there is clearly mileage in the idea.
Incidentally, it turns out that basing your entry forms around scanned paper forms completely kills dead any of the interminable bikeshedding that takes place around UX design with complicated, multi-section forms.
We built an internal tool that effectively converts any business form into a PNG @ 300DPI, and then defines a fixed element layout on top. This allows for pixel-perfect positioning of elements you'd like to fill on top of literally anything you can get into a PNG. Each definition is effectively just a JSON model specifying where everything lives, and then it is fed into some C# System.Drawing routines to fill the template image with expected data. The output is then converted back into whatever format is most ideal for downstream delivery (i.e. merge PNGs back into pages in a combined PDF).
The downside of this approach is that rasterization of PDFs or other upstream forms items effectively strips them of any textual data that you could mine out of the document. So, there are certain use cases where this would be a bad approach. For most businesses, I don't think this is usually a concern, especially if you already have the data you used to fill the document in a good structure somewhere for alternate delivery approaches.
You can also do this with PDF files, if you have Acrobat (or at least, it was possible - last time I played with it was several years ago - 2009-ish).
You've probably seen "editable" PDF files - where there are fields you can type stuff into - much like a paper document that you'd put in a typewriter to "fill out".
Well, it's actually possible (in Acrobat) to set up a "form submit" (virtually identical - IIRC, it was an actual HTTPS POST message) that you could point to a web endpoint. Add a button to the bottom of the page to submit the form, and it could also capture and handle errors (like if the service to receive the POST is offline, or has an error, etc).
I forget was Adobe called it - but it worked rather well. I worked for a web app company who was contracted by a doctor's group to redo their website, and part of that was automating the forms. They wanted some way that a patient could download and use their standard PDF forms, to both enter and upload the information, or print it and fill it out manually and return it, if they were more comfortable with that.
They didn't want an standard web form, or anything like you mentioned - because they might change the PDF for manual copies. Instead, we supplied them a template and taught them how to use it (and not to change particular parts - the parts handling submitting/errors and such) - so they could continue to use it. The backend was a PHP/MySQL system, everything was HTTPS, and IIRC we encrypted the data on the backend. I'm not certain that it was completely HIPAA compliant, but it was certainly as compliant as "form filled out with pen and filed in folder).
So yeah - there's clearly a market for this kind of thing...
Livecycle Designer?
That's funny. I work at a very large fab, and of all the places I've worked, this is the one that's most in need of the sort of in-office hot path optimizations you mention, and doubly worse is that it's the least susceptible to allowing someone to do anything about it.
(In fact, it's regressing. This month saw a fab-wide rollout of a document management system that has caused a ~10x increase in wall clock time for attaching files to emails or through forms on the intranet. Now consider what that means when the company exhibits a pathological form of the passing-MS-Office-documents-around-to-each-other mindset...)
I know what I'm doing with databases. I never want to use Access if I don't have to. But it has the enviable property of "no server administration required" which meant that we could backup the DB to a shared drive and people after me could modify the thing without being a DBA.
The amount of time that database saved really is mind-boggling.
We copied the structure to SQL server, built some stored procs ( only allowed way to access the DB at the time ) and fronted it with a bunch of aspx pages. They loved it beyond my expectations.
All of that was new learning as I had only ever done the LAMP stack at that time and this was all Microsoft stuff.
Then at least I could fix bugs in the UI and after a while that's where most of the bugs were.
So... I can completely understand why someone would be interested in making a more universal solution for this very common problem.
[1] https://www.filemaker.com/products/filemaker-pro-advanced/
I also tend to avoid it because it’s halfway in between Access and a real SQL database (Postgres, MySQL, etc). But also — have you seen how expensive it is? If you want an individual license, it’s >$500. Or you can get a subscription per user per month.
FileMaker seems like one of those applications that Apple has never really known quite what to do with.
This was before my time there, but I can imagine things were productive at first - the databases would have been simple and well-targeted to their business needs. However they were created without understanding of any database theory such as normalization or what makes a good key. Their authors had not been burned (yet) by the horrors that battle-scar devs, such as time zones, server moves, and decisions by the business to renumber identifiers one might naively choose as keys.
The quality of the database designs varied from bad to decent, but eventually most of the databases came to one fate: the original author left or got promoted, and their replacement knew how to add to the database but not how it worked. He/she came on board long after the Access Training Road Show had left, so hadn't had that training either.
A few business units noticed a sister unit had data they needed, and found it mutually beneficial to smush their databases together into one amalgamation. Lacking an understanding of both database theory and each other's database designs, much less their own, they simply built views, on top of views, on top of views. The resulting queries resembled a coral reef growing out of a subduction fault.
In due time the problems became too large for them to manage. New versions of Access would break things they couldn't fix. It bears noting that even if the databases had remained simple (which they didn't), the technology upon which they were built was emphatically not simple, which is itself a vulnerability. So the business had all these medium-sized systems they didn't understand running on a technology they didn't understand all catching on fire at once. It was the technical debt equivalent of having 100 balloon loans suddenly come due in the same 18 months after 7 years of low payments.
So then it became our problem (in IT). After multiple renumberings, correlating what physical location a store number (primary key) referred to required knowing or guessing the date when the row was created, so it could be looked up an historical cross-reference table. Comparing date/times required knowing the location the row referred to. And every business unit had developed its own jargon, re-using trendy words they heard other business units saying but using the words to refer to other things - so you could never really be sure you knew what an identifier really meant. Because of the mergings you might have one database where table "Accounts" refers to corporate accounts, but "Accounts2" refers to user log-ins.
The Microsoft Access program has versions. The Microsoft Access database format also has versions. This leads to a matrix of combinations you have to keep in your head as to which version of the file they have versus which version of the program they're using, and whether it will be bug-compatible or beneficial to upgrade one or the other or if that's even possible with the combination and database code they have. Don't even get me started on reports generated by Access...
During my internship 25 years ago I build a system to register aircraft accidents and near accidents. This system used access 1.0 (Windows 3.1) as the front end, storing the data in Oracle 6, I think connected through Odbc.
For SQLite there’s https://github.com/softace/sqliteodbc but at that point I might pick a different DB for a more established ODBC driver. Or just use Access...
It's also very bad at concurrent users if you do go down the path of dropping it on a network share if it's a normalized schema, since there's no server to cache queries or do optimizations... for strictly data entry against a simple schema you can maybe push it to low 100s of users, but backing up / restoring / rolling out new versions is a nightmare when the frontend and backend are commingled like that. You can deploy different versions of .mdbs if you have an external backend, though I've never seen anyone do so with an Access database backing an Access "UI" project...
There’s a huge need for a sql-compatible sqite-like database for this purpose in Go.
I may be wrong, but sqlite is used a lot on Android which uses bionic, not glibc right? So it seems like there should be hope of switching to another libc if you need.
https://github.com/mattn/go-sqlite3/issues/212#issuecomment-...
It ended up being useful enough that some folks up at division copied it and used it for tracking all of the laptops they were signing out, along with the paperwork, which you can't escape regardless of where you are.
It really didn't have much in the way of error checking to ensure that the state of the equipment was consistent i.e., you didn't start a generator or main engine twice in a row.
Which became crucial when I handed my baby over to the FNG at transfer time, and went on house-hunting orders.
Came back, ran the report, and he'd gooned the data so bad that we ran our equipment for negative time.
Which was an outstanding business opportunity! Run the hours off of the equipment! Yes! We can name our price for this device!
Other than the part where time doesn't exactly work that way, the idea was great.
But man, was it a fucking lifesaver. Just for one example, we often had to send equipment out to different labs since we didn’t have the capability to test them, and shipping stuff required a standard military shipping document with various mundane pieces of information about the stuff being sent. Creating these documents was a tedious process of looking up the data manually and then typing it into a Word file. I just recreated the document as an Access form, with fields that would populate from a query. Creating the shipping documents went from 30-45 mins to essentially the click of a single button.