Need MS Access app re-written to something else.
-
@jasgot said in Need MS Access app re-written to something else.:
I do not know the best database and software to write it in, perhaps we can start there and then I'll start looking for a programmer.
Not something that IT should be deciding, really. That's completely an software engineering decision.
However, there are some obvious options that should be at the absolute top of the list: PHP, Python, Ruby for languages.
MariaDB and PostgreSQL if you need an RDBMS, SQLite if you don't.
-
@jasgot said in Need MS Access app re-written to something else.:
My first thought is Java and MySQL or MongoDB.
These are basically your "never consider them" options. Java is a train wreck of an ecosystem and at this point, while technically a good language, requires so much unnecessary IT support and so much expensive development and development processes it really only exists for legacy support (like COBOL.) If you don't already have a Java shop using Java because it is technical debt, it should never be on your radar again. Same for .NET.
MySQL is the crappy Oracle product that no one touches anymore. If you want something like MySQL, it should always be MariaDB. But most competent devs use PostgreSQL over MariaDB... it's faster and more robust for most tasks.
MongoDB is totally off the table. You should never use this product, it has so many licensing problems that using it easily causes you to not own any of your code depending on how and where you deploy it. It's a huge IT undertaking to maintain. It's a nice database as data itself goes, but as the IT department you should be threatening your developers if they suggest maybe using this.
-
@jaredbusch said in Need MS Access app re-written to something else.:
@jasgot said in Need MS Access app re-written to something else.:
first thought is Java
Never my first thought, but could work. All platforms have it available. But I would want to reread Oracle license for Java again.
It CAN do it. So can COBOL. But they should both be on the "absolute last resort" list, not the short list.
-
@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.
-
@jasgot said in Need MS Access app re-written to something else.:
Fortunately, this too is already done.
Throw it away. Specs are not just worthless, but actively bad, when not coming from the engineers.
-
@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?
-
@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.
-
@dragon3303 said in Need MS Access app re-written to something else.:
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?
We do not, we would tell them to bring in a firm (and of course, we'd happily assist.) But IT and software engineering are incredibly different disciplines. It would be great if we were so large that we could do both, but realistically we can't.
But we can definitely help identify and manage an engineering project if that makes sense.
-
@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.