Need MS Access app re-written to something else.
-
@pete-s said in Need MS Access app re-written to something else.:
@scottalanmiller said in Need MS Access app re-written to something else.:
@dashrender said in Need MS Access app re-written to something else.:
This is where the lay person (and myself included at times) gets totally wallooped. The lay person has no idea what's needed - they only know they have a problem and want it fixed...
Exactly, even pretty seasoned IT departments may have little to no knowledge of what is needed here. IT should know that software engineering is needed. But beyond that, there is nothing in the IT realm that should help.
Sure, IT should know something about database options and that SQLite is likely their preferred solution for lots of reasons (I know IT should know this because it's in the book I just wrote last week, lol.) But will SQLite handle the data best for the application? IT can't know that, because IT doesn't know how the software is written, what drivers are used by the framework, and so forth. IT can't know enough to be useful. Not doesn't, but can't.
None of the decisions, like language, database, framework, hardware, etc. can be talked about individually, it's one large decision that has a lot of factors. So talking about them before the engineering team is engaged might be interesting, but pointless.
I agree with everything you say.
Wearing my software engineering hat, there is another dimension to this as well. IT should understand, but for some odd reason seldom do, that custom software has a life cycle too.
IT have no problem understanding the need for patching an OS, migrating to a new OS, upgrading old hardware etc, etc. But often fail to understand the need to do the same with everything custom built they manage.
So getting a bespoke solution is not a one-time project or a one-time expense. Software needs to be taken care of from the cradle to the grave. As the OS is updated, packages deprecated, frameworks have become obsolete, etc - the software needs to be updated as well. Even if no new functionally is added or removed.
This is also come of the consideration that goes in to selecting what technology to use.
Totally agree. But I've never personally seen IT fail at this. I've seen companies fail at this constantly, but never their IT people. I'm sure IT does miss this boat sometimes.
But my experience is that IT gets bypassed, the unsupported "ghost ship" software is handed to them and IT gets stuck with already abandoned software to deploy.
-
@dragon3303 said in Need MS Access app re-written to something else.:
@pete-s said in Need MS Access app re-written to something else.:
@scottalanmiller said in Need MS Access app re-written to something else.:
@dashrender said in Need MS Access app re-written to something else.:
This is where the lay person (and myself included at times) gets totally wallooped. The lay person has no idea what's needed - they only know they have a problem and want it fixed...
Exactly, even pretty seasoned IT departments may have little to no knowledge of what is needed here. IT should know that software engineering is needed. But beyond that, there is nothing in the IT realm that should help.
Sure, IT should know something about database options and that SQLite is likely their preferred solution for lots of reasons (I know IT should know this because it's in the book I just wrote last week, lol.) But will SQLite handle the data best for the application? IT can't know that, because IT doesn't know how the software is written, what drivers are used by the framework, and so forth. IT can't know enough to be useful. Not doesn't, but can't.
None of the decisions, like language, database, framework, hardware, etc. can be talked about individually, it's one large decision that has a lot of factors. So talking about them before the engineering team is engaged might be interesting, but pointless.
I agree with everything you say.
Wearing my software engineering hat, there is another dimension to this as well. IT should understand, but for some odd reason seldom do, that custom software has a life cycle too.
IT have no problem understanding the need for patching an OS, migrating to a new OS, upgrading old hardware etc, etc. But often fail to understand the need to do the same with everything custom built they manage.
So getting a bespoke solution is not a one-time project or a one-time expense. Software needs to be taken care of from the cradle to the grave. As the OS is updated, packages deprecated, frameworks have become obsolete, etc - the software needs to be updated as well. Even if no new functionally is added or removed.
This is also come of the consideration that goes in to selecting what technology to use.
This is why I'm confused a little I guess...Both yourself and Scott reference having software engineering knowledge/background, and you even said up above in your response to the original post that you've done many similar custom projects (probably close to 100), but then then you give no info such as we tend to use MariaDB and python, or we find that this combination has worked really well for us in our similar projects, etc. Instead you give him the info that he should talk to a software engineer, but here two software engineers are telling him to talk to a software engineer.
Right. Until we have ALL the details, giving any details would be worse than useless, because they might be misleading. Saying that Python and MySQL work for this often isn't useful beyond just a point of interest. To actually know what is needed, a software team needs to look at all of the requirements and the full scope of the picture (deployment needs, lifecycle needs, support needs, IT capabilities, political aspects, and on and on) and determine what is right. Nothing we suggest could be useful here.
This is different from an IT project where you, and IT pro, might say "Hey SAM, I have a project and was just wondering what you thought a good starting point for research might be." Because in our case, doing this with IT, you and I both have a full scope understanding of how to research the need, and that my advice should be thrown away the instant a new variable is discovered.
Doing the same with software to a non-software person just introduces the risk that the advice will be used in some way and there is no way to use it. Knowing that Python is perfect 99% of the time is terrible knowledge unless you are prepared to evaluate when you are the 1%. No matter what we say, the engineering team that will actually do the work as to do a full evaluation. A partial evaluation has no utility at all.
So it is basically all or nothing and we are opting for nothing, because pretending we can give advice based on what is here is misleading and wrong.
That said, example technology would be super simple and I can list lots of options. There are many potential ways to go with the project.
What is much easier, though, is ruling out (or nearly ruling out) technologies that would essentially never make sense like Java, VB, COBOL, Fortran, ADA, Forth, SmallTalk, LISP, MS SQL Server, Access, Oracle DB, IBM DB2, etc. Products that have no real possibility of fitting any bill regardless of the requirements unless the requirement is 100% political like "screw any and all evaluation and use X because I said so", at which point, no engineering advice is useful.
-
@jasgot said in Need MS Access app re-written to something else.:
The end user has no place to turn other than us-- without embarking on a search they have already decided would be better for their IT company to tackle.
Nothing wrong with that, IT overseeing software engineering is generally better than any other department doing it unless the CEO takes it on directly (which is where it should go, engineering should report at the same level as infrastructure typically.) Chances are no other department has the ability to oversee outsourcing something complex. That it is software is not really relevant. Could be any complex activity that is outside of the norm for some other department. IT tends to be the most well rounded.
-
@jasgot said in Need MS Access app re-written to something else.:
Continuing this topic appears to be more wasteful of my time than looking to the other sources we have available to us.
There are software engineering resources here, but we'd have to get into all details in order to provide additional guidance. I think from the 10K foot view, you have what there is to have. It's enough to engage a software firm at this point, for sure. There's really no step between this and that.
-
@jasgot said in Need MS Access app re-written to something else.:
@jaredbusch said in Need MS Access app re-written to something else.:
This is something the company I work for could possibly do. But I have no way to make any kind of intelligent conversation in forums posts without asking all of the questions I asked, then having you answer, then me asking more questions.
You did answer my questions, so now it is on me again.I just looked, for kicks...... The whole packages was written in 2006 with one modification in 2009 (running untouched since) and is 498 lines of VBA code plus one canned serial comms module.
We're talking super simple. I kinda wish I had 5 hours to dump into it. Heck REXX and a flat file read into an array would be perfect.
Often, if you have the dev resources, this kind of stuff is a weekend project to "do it right." Without digging into it, can't know that for sure. But there is a good chance that that is all that it is to write it in something modern in a good way that can be supported and isn't a high risk. It's often surprising how easy it is to do this stuff well, but it's "just too much" for many companies and so they skimp even on a weekend level project and end up with some real messes.
-
@jaredbusch said in Need MS Access app re-written to something else.:
@jasgot said in Need MS Access app re-written to something else.:
We're talking super simple. I kinda wish I had 5 hours to dump into it.
Super simple on top of the access backend.
Not a 5 hour job.
LOL, yeah, that doesn't make it fun.
-
@pete-s said in Need MS Access app re-written to something else.:
It's IT that is responsible for making their internal customer understand that there needs to be yearly maintenance costs on their custom software. Just as you would have with any software licensing or service agreement. There is no technical difference between software that the company themselves have commissioned and software that is stock from Microsoft, Oracle, vmWare or whoever.
There is. In one case, you are explaining vendor requirements to the customer. In the other, you are trying to tell the vendor the requirements. Remember with bespoke software, your company IS the vendor.
When I explain Windows patching to a customer, I'm passing on Microsoft's information along with my industry knowledge of how Microsoft behaves historically and some knowledge as to impact to us (how much effort patching takes, time, etc.)
But when the company has bespoke software, it is the company that has to tell this to IT. Technically you could say that we could have the company tell us and then us repeat it right back to them, but that would be awkward. The need for patching the software doesn't come from IT. IT knows that we need to apply patches that get released.
That's very different than overseeing the actual writing of patches. None of the information about how software development works should come from IT, that's not IT's job to know nor anything in the IT skillset. Knowing that software vendors turn out updates and patches for some products (not all) and knowing what patches and updates will be required or desired from bespoke software are radically different things.
So if you are my CEO and you tell me that I'm going to run your bespoke software... it's 100% on you to inform me of what the patch releases are going to be like. I might tell you how much effort I suspect applying those patches will take me, and I might decide when I apply them. But I have no input whatsoever in telling you what to patch, why or when.
-
@dashrender said in Need MS Access app re-written to something else.:
If it's an external team, then it's on the company for not listening when IT told them they need to hire someone to maintain it coding wise.
That, as well, is not ITs job. Think of IT like a chauffer here. I drive you around, I'm your IT guy. I might clean the car, I might change the oil, but I don't build the car.
Then you go and decide that you are going to design and build a car yourself and tell me to drive it. Nothing you do, no portion of that design, is my responsibility.
As IT, none of those things fall to us. Sure, a company might ask us to step out of IT and do some software oversight because we are "smart people" and that's the best that they have, or maybe we have experience in another arena. But we have to take off our IT hat to it. You might as well be asking the janitor or the receptionist - we all equally have nothing to do with it in our job title, but any of us might be generally smart and well organized or just use common sense.
JasGot was a good person to his company/customer to turn to to get general "where do we start on this" advice. But not because he has some IT knowledge, but because as an IT person he's likely better exposed and has more common sense than other areas of the business because IT has to just handle more things in more areas. He's just a "well read" worker, that he is IT is neither here nor there to the discussion.
That's important to understand in these cases. None of this can be blamed on IT as none of it is an IT function in any way. But IT tends to accept blame for any number of non-IT items and everyone is always thrilled to have a willing scape goat.
-
@pete-s said in Need MS Access app re-written to something else.:
@dashrender said in Need MS Access app re-written to something else.:
You're what - assuming IT just didn't mention to management that it needs yearly updates/etc? Well, if that's true, then some of the blame belongs to IT, but some is still on the manager/owner because they aren't considering their business holistically.
Yes, I'm assuming IT didn't mention it because they didn't think of it - as it's not immediately obvious to everyone.
If they did mention it and management decided against it, then it is what it is.
But we can say the same about any department. Why didn't operations, accounting, legal, maintenance, janitorial, etc. say something about it? Because 1) it has nothing to do with them even though all of those departments probably depend on it to some degree and 2) because anyone who would think of it would think that it is so obvious that mentioning it to the C-suite would be beyond insulting.
-
@dashrender said in Need MS Access app re-written to something else.:
@pete-s said in Need MS Access app re-written to something else.:
@dashrender said in Need MS Access app re-written to something else.:
You're what - assuming IT just didn't mention to management that it needs yearly updates/etc? Well, if that's true, then some of the blame belongs to IT, but some is still on the manager/owner because they aren't considering their business holistically.
Yes, I'm assuming IT didn't mention it because they didn't think of it - as it's not immediately obvious to everyone.
If they did mention it and management decided against it, then it is what it is.
A full life cycle of the device/solution should be undestood when implementing.. if not, you've already failed.
Granted, nothign says you have to stick to that.. but at least there's an understanding up front.
Right, this is something anyone in any management, owner, investor, or just generally an adult, should already know. If you commission something, you are responsible for ensuring the ongoing support.
Imagine deciding to start your own car company but assuming you don't have to worry about parts or support after you make them.
You can't blame IT for not thinking about the basics. It's not ITs job to figure out all the common sense being missed everywhere in a company and jump into other peoples' jobs and tell them what they are doing wrong. That's what AJ would have done, and you know how that works. IT is great to ask questions of when you want some general advice and you just need smart people, but no company wants IT acting like they are in charge of even the CEO and trying to run the company. There's a natural power grab that seems to happen in IT, it's some weird counterpart to the tendency to accept responsibility for absolutely anything and everything.
It's fine for IT to help wherever needed. But we have to keep track of when we are doing IT duties and when we are filling in the gaps of other departments (often a gap in the CEO, CFO, lawyers, etc.) because they are failing and know that IT will do expensive jobs for "free" if you ask nicely.
-
@jaredbusch said in Need MS Access app re-written to something else.:
Bar code: so RS485?
Gates: Does it need to stay a serial signal controlled bank? Can pins from a Pi board be used to trigger directly?
Computer: what kind of interface is needed? Are you adding and removing codes through this interface?RS485 - Yes
Gates - just closing a circuit with 12v / 500ma. PI directly - likely yes.
Any interface that can be operated from a Windows or Mac computer. -
@jasgot said in Need MS Access app re-written to something else.:
@jaredbusch said in Need MS Access app re-written to something else.:
Bar code: so RS485?
Gates: Does it need to stay a serial signal controlled bank? Can pins from a Pi board be used to trigger directly?
Computer: what kind of interface is needed? Are you adding and removing codes through this interface?RS485 - Yes
Gates - just closing a circuit with 12v / 500ma. PI directly - likely yes.
Any interface that can be operated from a Windows or Mac computer.Web interface is surely going to be the right option here.
-
Why not use Access?
-
@carnival-boy said in Need MS Access app re-written to something else.:
Why not use Access?
Lack of portability is the main reason. You might get lucky and find that the setup is simple enough to move from version to version, but then again, might not.
Also, why force yourself to have a $400+ Access license? Or a $20 OEM Windows license or a $100+ FBP Windows license, etc.
-
Not sure they're generally valid reasons. All systems require time and effort for upgrades, new versions etc etc.
Most companies already have Access licences as part of their Microsoft 365 account.
However, I see that Access doesn't run on a Mac which sounds like a showstopper.
-
@carnival-boy said in Need MS Access app re-written to something else.:
Most companies already have Access licences as part of their Microsoft 365 account.
Well, most companies don't have O365 at all. Many do, but not most.
And lots, maybe not most, don't get it with Access. But definitely lots.
Having access to Access isn't uncommon, but it is not the norm.
-
@carnival-boy said in Need MS Access app re-written to something else.:
Why not use Access?
Cost to acquire (assumed.) Cost to support (higher than something more robust.) Performance. Portability. Security. Reliability. And no need to lock in to SQL Server.
Access doesn't run on a phone, on a Raspberry Pi, on a Mac, on a Chromebook. Even in orgs that don't have any of those today, choosing Access means making a commitment to not having them without replacing that system... again.
If Access was cheaper or easier... there'd be a good argument for it. But I doubt that it is. PHP isn't hard and making an Access-parity app in it is often about the same time as making it in Access. But with so many benefits.
-
@dashrender said in Need MS Access app re-written to something else.:
@carnival-boy said in Need MS Access app re-written to something else.:
Why not use Access?
Lack of portability is the main reason. You might get lucky and find that the setup is simple enough to move from version to version, but then again, might not.
Also, why force yourself to have a $400+ Access license? Or a $20 OEM Windows license or a $100+ FBP Windows license, etc.
And don't forget that to have it be in any sense serious at all (not that any use of a client-server system is serious, but that's as good as Access gets) means maintaining a Windows Server license for the database and MS SQL Server. SQL Server might be free, but only at really small uses. If this grows or is large in any way, you might end up having to pay for and maintain SQL Server licensing, too.
The potentially for there to be lots of costs and lock-ins to those costs are high. Not guaranteed, but high.
-
I didn't get the impression from the OP that they were use SQL Server - less than 500 lines of code.
-
@carnival-boy said in Need MS Access app re-written to something else.:
I didn't get the impression from the OP that they were use SQL Server - less than 500 lines of code.
He point was - if you want to be "serious" about this project, and not be just someone's pet project.
While I think Scott's a bit overblown with the whole Windows Server and SQL server to be "serious" I see where he's coming from.
For example sticking with Windows 10 for example is likely fine because I'm assuming it's being run on and from a single machine connected to the gate system, not a remote server, etc...