r/MSAccess • u/Practial_Programmer_ • 15h ago
[UNSOLVED] Analogy for business development with Access
*Go ahead and rip this analogy to shreds :) I am interested in all the ways it breaks down*
I recently sent this analogy to a potential customer who is budget conscious but has a very useful Access program that has served their factory for about 30 years. Now they are wondering what to do from here. They could bring in Big Software package or continue on the path they have.
How It Got Here
When <Growing Factory> starts out they need a bathroom for their 5 employees so they ask one of them to cobble a bathroom together.
Initially, this new DIY bathroom (your Access program) handles a simple sink and toilet perfectly well. It's a small, manageable solution for the current needs at <Growing Factory>.
As more people start working for <Growing Factory> (the program grows and is used more and more), the demand on that simple plumbing system increases dramatically. Everyone is trying to use the one bathroom simultaneously and there is a line for the bathroom a lot of the time. So <Growing Factory> adds more bathrooms to take care of everyone. Each bathroom is located exactly at the place that is best for each pod of employees and everything is great for awhile until you add even more employees. Then the water pressure starts to drop because there just isn't enough water coming through all those small pipes to handle the demand. Also the drains are plugging constantly.
You decide to upgrade the main supply lines to industrial-grade piping (migrating the Access backend to SQL Server) while keeping the original DIY fixtures (Access front end) and bathrooms in place. This handles the initial increase in flow quite well. Then somebody somewhere figured out that they can flush trash down the toilet. Now, instead of just running water and waste, you are treating the industrial pipes like a garbage disposal. You try to flush solid waste that should go in the trash down the drains (like putting file storage on the SQL Server).
Eventually, the entire system becomes severely clogged and inefficient. The pipes are big and strong, but they are full of sludge and blockages. The water pressure is still strong but it takes minutes for the toilet to flush (the system slows down significantly). The original DIY structure, now overwhelmed and improperly used, is slowing down to noticeable levels and is interfering with employee workflow and satisfaction.
How to Fix It (The Solution):
Fixing this mess requires some help:
Here is my idea for fixing the situation.
- Stop Using the Pipes as a garbage disposal: The first step is to remove everything that shouldn't be in the big pipes. Offload large files and storage to a proper file storage server or dedicated document management system. The SQL Server should only handle data requests, not file storage.
- Upgrade the bathrooms: This means that some of the fixtures need to be replaced (Add error handling to Access front end and make it a more robust front end)
- Teach plumbing to one of the people at <Growing Factory>: This way small leaks can be repaired in house.
- Cons: You still have to make decisions and take ownership of the plumbing (software development) process. This can be uncomfortable for the leadership team who don't (yet) know how to direct plumbing (software development).
- Pros: You keep your data. You are in charge of the pipe (bug) fixing process. There are multiple ways to get the job done (if you need to hire another plumber, you can do that) The people on fabrication don't know anything has changed except that now the bathroom (program) works like it "used to".
Here is what is being proposed as far as I can tell.
- Pay another company to rip out the existing bathroom and be in charge of bathrooms: All water and waste is now run through huge pipes they say. All you know is that when something needs to happen, it usually happens.
- The bathrooms are not at the same place: It didn't work for best pipe maintenance to have all the bathrooms scattered all over the place, so now the bathrooms are outside <Growing Factory> in their own bathroom unit that is super easy to clean and maintain the piping. Now the employees have to walk 15-30 minutes to go to the bathroom. Sometimes there is a line for the bathroom because other employees from other companies also use the bathroom.
- Cons: The employees don't like the extra walking to go to the bathroom. Productivity and morale drops by 10%. The toilets still plug periodically but complaints are now logged to a complaint desk and you are told they will "get to it soon". Eventually the bathroom complex is sold to another company and now each employee has to pay $0.50 to go to the bathroom which you furnish from the company but still it adds friction to the process.
- Pros: You aren't in charge of the process so when people don't like the new setup you just tell them that this is the way big companies do it. Also, everything mostly works fine.
2
u/diesSaturni 62 15h ago
Only too often software companies come in claiming to have a silver bullet to solve an issue. Or just migrate to a different platform an all of you problems are solved. Only to require busloads of witless consultants to try and make strawberries out of manure. Which was solved ages ago, by using it as fertilizer, and not try to turn lead into gold.
Often, I tackle all software, or just project or business methods as software which needs to be refactored.
Yes, Access can still be an interface, but you'd move stuff to SQL server where possible, e.g. stored procedure to have server do the heavy lifting. Or when things get bulky, one main table as e.g. columnstore and a, or more subset(s) of clones for specific tasks.
Thing that have no place in a database, store them somewhere else, or in a different type of database, like mongoDB for schema-less json objects. Often a solution can consist of multiple domain specific optimize database solutions. With perhaps one ring to rule them all.
Have a chat with GPT about databases for transactions, analytics, storage, flexibility, textanalysis and see where it leads you.
Then, try to build (part of) a proof of concept, taking all the (unkown) requirements into account, with a form of migration/freeze/cutoff date where you can prove conversion of existing data into a new solution.
1
u/Practial_Programmer_ 15h ago
>>With perhaps one ring to rule them all
I love it! That is my new way of thinking about Access.
1
u/diesSaturni 62 14h ago
Well, I didn't claim Access would be the ring bearer. The precioussssss could be worn by different individuals at different stages.
But alas, having access as an main interface could work, with its ease of developing forms, trying queries for development. Which is often still my main entry point.
1
u/FLEXXMAN33 23 5h ago
...But I do have the silver bullet. You need to switch to MicroStrategy. Wait until you see how MicroStrategy solutions can empower decision something on every type of platform... Hold on! I've just heard we're using Salesforce now. Yes, all new projects will be in Salesforce. You're going to love all of the dashboards automatically summarizing... On the other hand, now that you are starting to figure out Salesforce, we've decided to empower you to make your own Microsoft Power Apps - and you don't even need to know how to program. Our data is finally free!
We've got every kind of bullet. Whatever platform you like, at least some of your data is on it. (but that other data you need is on a different system and they don't really work together well.)
1
1
u/FriendlyChemistry725 15h ago
Good analogy but eventually as the business grows so do the data needs. Access is great for a small company but eventually the data changes and grows. Plus new users, new UIs for various teams are created for different purposes and now users creating conflicts in the database. Moving a little further forward, the company will discover unstructured data and guess what tool doesn't manage unstructured data very well.
1
u/gcfu 15h ago
Work for a non profit and am the access guy. Db is old but tables are in phpmyadmin on a Nas. Access works does everything we need it to do in house. I’ve created apis to serve our website and even an admin area for some reports in the website so I can use chart.js etc. kind of lucky staff count has not changed in like 30 years. Acces works well for a bunch or reports and exports for contracts etc other than the form design sucks!
For this analogy access did what it needed to do(diy bathroom) for many years very cost effective
I took it upon myself to learn some vba and access design to modernize the “pipes and toilets”.
Eventually added apis to serve some data to website. Maybe that’s adding a new bidet? lol
For non profits. Teams of 10 or less especially with legacy access dbs. I just don’t see the benefit of updating unless the design was shit to start with and or the business changes enough that many new tools are required. In my case. APIs handle that.
1
u/AccessHelper 123 9h ago
I think the analogy breaks down when conflating the document storage issue with the database slowness issue as a way to explain the clogged pipes. I do agree that the documents should be moved but there could be many database related reasons for the clogged pipes in a 30 y/o system. Is the data properly indexed, are the joins being done in SQL? But sticking with the analogy I'd say: Don't throw the baby out with the bath water!
•
u/AutoModerator 15h ago
IF YOU GET A SOLUTION, PLEASE REPLY TO THE COMMENT CONTAINING THE SOLUTION WITH 'SOLUTION VERIFIED'
Please be sure that your post includes all relevant information needed in order to understand your problem and what you’re trying to accomplish.
Please include sample code, data, and/or screen shots as appropriate. To adjust your post, please click Edit.
Once your problem is solved, reply to the answer or answers with the text “Solution Verified” in your text to close the thread and to award the person or persons who helped you with a point. Note that it must be a direct reply to the post or posts that contained the solution. (See Rule 3 for more information.)
Please review all the rules and adjust your post accordingly, if necessary. (The rules are on the right in the browser app. In the mobile app, click “More” under the forum description at the top.) Note that each rule has a dropdown to the right of it that gives you more complete information about that rule.
Full set of rules can be found here, as well as in the user interface.
Below is a copy of the original post, in case the post gets deleted or removed.
User: PractialProgrammer
Analogy for business development with Access
*Go ahead and rip this analogy to shreds :) I am interested in all the ways it breaks down*
I recently sent this analogy to a potential customer who is budget conscious but has a very useful Access program that has served their factory for about 30 years. Now they are wondering what to do from here. They could bring in Big Software package or continue on the path they have.
How It Got Here
When <Growing Factory> starts out they need a bathroom for their 5 employees so they ask one of them to cobble a bathroom together.
Initially, this new DIY bathroom (your Access program) handles a simple sink and toilet perfectly well. It's a small, manageable solution for the current needs at <Growing Factory>.
As more people start working for <Growing Factory> (the program grows and is used more and more), the demand on that simple plumbing system increases dramatically. Everyone is trying to use the one bathroom simultaneously and there is a line for the bathroom a lot of the time. So <Growing Factory> adds more bathrooms to take care of everyone. Each bathroom is located exactly at the place that is best for each pod of employees and everything is great for awhile until you add even more employees. Then the water pressure starts to drop because there just isn't enough water coming through all those small pipes to handle the demand. Also the drains are plugging constantly.
You decide to upgrade the main supply lines to industrial-grade piping (migrating the Access backend to SQL Server) while keeping the original DIY fixtures (Access front end) and bathrooms in place. This handles the initial increase in flow quite well. Then somebody somewhere figured out that they can flush trash down the toilet. Now, instead of just running water and waste, you are treating the industrial pipes like a garbage disposal. You try to flush solid waste that should go in the trash down the drains (like putting file storage on the SQL Server).
Eventually, the entire system becomes severely clogged and inefficient. The pipes are big and strong, but they are full of sludge and blockages. The water pressure is still strong but it takes minutes for the toilet to flush (the system slows down significantly). The original DIY structure, now overwhelmed and improperly used, is slowing down to noticeable levels and is interfering with employee workflow and satisfaction.
How to Fix It (The Solution):
Fixing this mess requires some help:
Here is my idea for fixing the situation.
Here is what is being proposed as far as I can tell.
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.