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.
-
@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.
-
@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.
-
@scottalanmiller said in Need MS Access app re-written to something else.:
@dragon3303 said in Need MS Access app re-written to something else.:
you would tell them that they need to find a software engineer to get them their answer?
Obviously. Other than the fact that I'm a software engineer by training and IT later. But as an IT firm, it would be totally wrong for us to pretend to be software engineers. Are you saying that you'd want the IT people, who have no knowledge or training around the needs here, to be making software engineering decisions? Why?
Other than the fact that the customer is asking the wrong people, why would IT volunteer to give information in an area that they know nothing about? Even if IT has guidance to offer, until you have the engineers to work with you don't have enough of the picture to offer useful guidance.
I agree, and think the fact an IT person made this thread speaks for itself its not an IT specific project.
-
Great conversation guys.
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.I too know it is something better handled by people other than my staff. I chose to turn here first, because I really like this forum and the people.
I already know what has been stated, save for the specifics about the specific languages and databases. Didn't really learn anything here today.
Continuing this topic appears to be more wasteful of my time than looking to the other sources we have available to us.
-
@jasgot said in Need MS Access app re-written to something else.:
Great conversation guys.
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.I too know it is something better handled by people other than my staff. I chose to turn here first, because I really like this forum and the people.
I already know what has been stated, save for the specifics about the specific languages and databases. Didn't really learn anything here today.
Continuing this topic appears to be more wasteful of my time than looking to the other sources we have available to us.
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.
-
@jasgot said in Need MS Access app re-written to something else.:
@jaredbusch said in Need MS Access app re-written to something else.:
Only serial? The gate controller has a serial port?
The computer monitoring the scanners has two serial devices attached.
One is an RS232 to RS485 converter, this is how we chat with the barcode readers.
The other is a serial-signal controlled bank of four relays. These relays are what trigger the gates to open. (Voltage raised - gate opens, voltage drops- gate closes.)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?
-
@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.
There is a specific reason for not talking specifics. First is that there is not enough information in this thread to make a decision on what technology and tools to use. Secondly is that the exact tools used are not important in themselves and would depend on the overall solution as well as the individual software engineers themselves.
For instance one maybe like to use php, while someone else wants to use python. Both are good choices. Someone perhaps would want to do the serial communication in C while doing the web backend in ruby. Perhaps the i/o device used for opening the gate are actually using modbus rtu and python had a good library for that so they want to use that.
The same goes for the database. What is the volume of data and what do you want to do with it? What hardware is it going to run on? These are things that matter. Not just performance and capability but also in what environment and how important the system is. For instance you might want to use a flat file format instead of a database on a small system, just to minimize the number of writes and also lower the likelihood of database corruption in the case of power disruption.
If you're running in an environment where there are real servers on prem, you might want to put the database and web gui on a VM and just use the simplest small fanless embedded computer the field that will only handle the actual reading of barcode and opening of gate. Or even forgo the computer completely and just use ethernet-to-serial devices and run everything from the VM.
That's why you need to find someone who wants to look at the project, come up with a solution how they want to do it and a price, delivery time etc. Then you as the buyer can make a decision.
The more parameters that are fixed, the more likely the end result is less good because you as the buyer don't know what the options are and you don't know what will be the easiest and most cost effective tools for the developers to do their job.
-
What I do agree on is that @JasGot as IT is the right person to handle this for his customer (the end user).
What he needs to do is find a software firm or developer that want to look at it and give him a solution and a quote.
Given that this probably have to be tested on-site, I'd say it has to be someone local or close enough to travel. If it breaks and IT can't figure out what the problem is, they need to have someone that support the the application.
-
@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.
-
This sounds like it easily could be done with something like an Arduino (or raspberry pi) to read the barcode and open the gate, and it would just send a POST request to some endpoint that would log in a database. That way the reader is decoupled from your database through a REST API, and you can use whatever language you like for the API interface.
-
@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.
-
@pete-s said in Need MS Access app re-written to something else.:
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.
Really? This is not an IT issue, but likely generally more a company/business issue. The chances that IT is what is preventing a rewrite are damned near zero - why do I say this - because it's not an IT spend, or at least shouldn't be viewed as an IT spend. This is a production spend - This solution is specific for something in production - no different than a million dollar printer is in a printing shop. They don't want to replace those printers anymore than they want to replace solutions like this OP is asking because production doesn't want to spend money on it.
It's likely that IT would LOVE to see this shit upgraded to modern solutions, making them possibly more reliable, or at least modernly fixable. -
@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.:
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.
Really? This is not an IT issue, but likely generally more a company/business issue. The chances that IT is what is preventing a rewrite are damned near zero - why do I say this - because it's not an IT spend, or at least shouldn't be viewed as an IT spend. This is a production spend - This solution is specific for something in production - no different than a million dollar printer is in a printing shop. They don't want to replace those printers anymore than they want to replace solutions like this OP is asking because production doesn't want to spend money on it.
It's likely that IT would LOVE to see this shit upgraded to modern solutions, making them possibly more reliable, or at least modernly fixable.Who pays for it is an internal accounting problem.
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.
It's because IT fails at this, they end up with a mess after X number of years. Because each year the software will get more and more out of date. Eventually it will prevent IT from running the latest OS, or updating the database or similar.
And I'm not talking about big upgrades or complete changes to the functionality. I'm talking about maintenance - keeping it working the same while the OS is updated, the database is updated, the software library/APIs/frameworks/whatever are changed.
I'm sure that there are companies that have this figured out and understands that they of course are responsible for keeping their own software current. I just haven't seen it much except in situations where it happens naturally. For instance when new functions are added.
-
@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.
Oh yes there is - there's nothing in the law requiring it. At lease with the licensing model, if they want to continue getting support/updates, they pay.
Granted same is true here - but as you said, I'm sure that the business was aware of this when they commissioned the project. Don't simply blame IT for this not happening - again, they likely don't control the purse strings in either of the above cases. -
@pete-s I'm not sure why you're blaming IT here.
It's bespoke software - IT didn't create it - some dev team, internal or not did (at least that's what we assume). If it's an internal team, then it's fully on them for not maintaining their software - i.e. providing updates to IT to install.
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.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.
-
@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.
-
@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.
-
@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.