From your comments it sounds like you would just refuse a client that wanted you to build a large web application which also makes me believe you have never wrote one.
Survivorship bias / supposition fallacy.
I have written two web driven from scratch over the past 20 years, worked with dozens of them for clients over the past ten years. Pre-web I wrote a lot of really large applications, the largest of which being a double-entry accounting system with membership/development (as in fundraising) and retail side integration.
Everything my experience with them has taught me is that it's a giant mistake that screws over everything. That's why I'm so against the concept.
It's the classic "all the eggs in one basket' mistake so common to "Feature creep". It's like designing in all the problems "feature creep" brings to a project, but instead of them coming in over time they're put in at the start
on purpose!It ends up like the old Groucho Marx skit,
"doctor, doctor, it hurts when I do this!"Well don't do that!Breaking things up into smaller chunks with clear separations -- particularly isolating a web presence from the rest of the business -- gives you more robustness in the solution, greater stability, and makes it all-around just easier to maintain than one giant oversized codebase.
More so if you take rigid programming "models" and try to force every single task to share that internal working. An overall "director" by way of the filesystem paths being a far simpler, sensible, and extensible solution.
Part of why when people say "but it is harder to scale" I go "daf*** yew sae?"
But usually their idea of "scaling" involves integrating into the web presence or an existing system stuff that has NO business being combined that way.
It's a trap I fell into and blindly did 20+ years ago when I didn't know any better. It's not that I've not done it. It's that I've done it and it sucks.
See what happened when the floor manager at a plastics company wanted to me to integrate all their different motor control software into one unified interface. We did it, it worked, but what a ****show to maintain given the machines on the floor came from 40+ manufacturers and half the damned devices dated to prior to Korea.
Korea... Korea... perhaps you've heard of our war?You can huff an puff all you want about whatever but in the end, the client is King and if they want a large scale web application then that's what you build or you just don't take the job.
Sometimes taking the job isn't worth the money, if they want something that's going to screw them, or leave you liable. That's a lesson I really didn't grasp until my mid 30's.
Though liability in web development isn't really a thing until after the courts get involved, which is a shame. I often think we need something akin to the "Engineers oath" and a serious talk about responsibility and liability. It would greatly cut down on the number of snake oil peddling scam artists who sucker the suits who just don't know any better. Particularly if legal ramifications for doing a shite job became a reality like it is for architects and contractors.
I suspect my working on MORE than just web development is a great part of why I view this industry with a measure of disgust. There are so many dishonest, disloyal, lazy, sleazy, dirtbags out there suckering nubes and rubes alike with "websites" that aren't fit to wipe with.
It is not your (our) decision to tell them how to run THEIR business. You can consult and explain to them but in the end, it is their decision.
And that's where what I do for consulting differs from normal freelancing. It is my job to explain to them why their existing decisions are wrong, where their plan moving forward is going to fail, and if they're not willing to listen to what I tell them, and do what I tell them when I tell them, then it's in my own best interests not to take the job.
But that goes with the fact most of who I take for clients these days have a very short period of time in which to fix things before litigation goes further. Remember, when big names with deep pockets like Dominos and Beyonce can be raked over the coals by the court system, what chance do smaller businesses or larger ones with leaner margins have?
It's literally the job that organized crime calls a "Fixer". When things go bits up, get messy, and needs a good cleaning, that's when you call a "consultant".
Take the popular media examples: Winston Wolf from Pulp Fiction, Michael Clayton from Breaking Bad... when John Wick calls Charlie on the phone and says "I'd like a dinner reservation for 12".
"You workin' again John?"These fictional characters often speak to me in that they are dealing with the same type of self-sabotaging idiots. These people you're there to help, are in some deep manure, but seem to want to just keep digging deeper.
Same thing criminal defense lawyers have to often do with clients. You often have to grill and instruct them. They're the employer, but you're the expert. If they want to not go to jail, they better shut the **** up, listen, and do what they're told.
That's the attitude I often have to take with clients.
Do you want the bodies hidden, blood removed, and cops gone, or don't you? Nothing THAT drastic, but there are parallels.
Trust me, the one large app I did, the client wanted me to do many, many things I highly advised them not to do, but in the end, I had to do it. They are the ones writing the check.
Which I count myself fortunate enough to be wise enough and financially secure enough to comfortably say no. I can understand the sentiment, but there are some things that just aren't worth that check.
Again, took me a long time and a lot of abuse to realize that.
Probably why I'm so bitter and abusive on the topic. And yes, I am PAINFULLY self-aware of that. I'm like the pit bull who's owner kicked it one too many times, then everyone is shocked at how it keeps going off the handle."To win a negotiation you have to show you're willing to walk away. And the best way to show you're willing to walk away is to walk away." -- Micheal Weston