Need MS Access app re-written to something else.
-
@dragon3303 said in Need MS Access app re-written to something else.:
Are you saying that it's not an IT issue that @JasGot is trying to solve here?
IT has a problem: the customer is using a crappy product that they should not use. So there is an IT problem
But let's think of it in the context of cars. IT is like a professional driver (chauffeur, race car driver, taxi, whatever makes sense to you), and software engineering is like an automotive engineer that designs and builds the car that IT drives.
IT can easily identify when they have a crappy car that doesn't meet their needs or when a car is broken or needs maintenance. But as a chauffeur you don't design and forge a new engine, you buy one from a car maker (who employees automotive engineers.)
Having your taxi driver or chauffeur design and build a new car sounds insane. But this is how people approach IT. "Well, they 'do car things' so they must be the right people to design and build a car from scratch." Sounds crazy, but people say that about IT... "Well, they use computers so they must do all tasks that we don't understand." You could say the same thing about accounting, they "use computers", too.
Designing software is a big discipline, one with surprisingly little overlap with IT. To IT, software engineers are just end users, for example.
-
@dragon3303 said in Need MS Access app re-written to something else.:
@scottalanmiller said in Need MS Access app re-written to something else.:
@pete-s said in Need MS Access app re-written to something else.:
Also if I wanted to have this project done, I wouldn't waste my time trying to make some kind of program specification. Or make up answers for every possible question that the might come up. Or even figure out what hardware, software, database, programming language etc to use.
Use the developers expertise instead. Part of every project is to figure out what the goal, scope and expectations are and also potential problems and alternative solutions. The developer should be able to ask what he/she needs to know to accomplish your goals with the project. And come up with a solution for you.
Many customers waste their time trying to come up with some kind of specification that is not relevant or just completely unusable.
Yes, totally agreed. That stuff is for the engineers, not the customers. If I want a bridge built, I just have to know from where and to where and what kind of traffic it needs to handle. Trying to decide on the building materials and design is 100% wasted by me. A year of me doing research would not yield anything usable and a real engineer would throw out my work in the first 30 seconds and in two hours have real answers ready when I just wasted a year for nothing.
So I'm a little confused here...Are you saying that it's not an IT issue that @JasGot is trying to solve here? If one of your customers came to you with this exact question, you would tell them that they need to find a software engineer to get them their answer? Or do you employee software engineers that would tell you how they would move that solution off of Windows and MS Access to a different platform?
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...
As Scott mentioned - it is the responsibility of the person in charge of the project to find the right resources - and that might be with them starting by finding someone who understand the needed disciplines and then helping to hire.
Sadly - most businesses can't stand the idea of paying a consultant as a middle man - they just don't see/understand the value. -
@dragon3303 said in Need MS Access app re-written to something else.:
If one of your customers came to you with this exact question,
They do all the time. And we never try to do this ourselves. If the project is truly huge, we might offer to staff up an engineering team just for them, but it has to be that scale to consider.
-
@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.