1. Don't allow businesses to customize at all, make them fit to you. That can work with something like ADP, but little else. A lot of the cool B2B startups think they can displace incumbents by just building cool, fast software, and then they are perplexed why they can't gain marketshare when every other customer has some bespoke use case they don't support.
2. Build a general uber-programmable platform that businesses can customize themselves -- now you are in the "slow", "poor user experience" territory but at least it works and is cheaper than option 3
3. Hire consultants to write bespoke products from scratch for each business. That's the old IBM Services model.
So if your baseline is Microsoft Office, then the performance/user experience of your favorite online B2B platform is going to be terrible. But if your baseline is IBM Services, then it's a godsend.
I think it’s pretty sad that enterprise software is mostly stuck the way you describe. There are companies willing to invest in fast and user friendly custom software though; the company I work for is pretty successful at doing just that.
Really if you think you can do better than X, whether X is oracle forms or SAP or whatnot, it's important to understand where X went wrong. Hint: it's very rarely because they were "old-fashioned" or didn't realize that customers liked fast software that was easy to use. The founders of X were just as smart/capable as you are, but they faced a market challenge and made some choices with trade offs. If you limit your analysis to "they didn't know software should be fast", then you are not going to end up any better than they are once you reach their scale. I am not trying to say that every incumbent always made the right choices. But an understanding of where they went wrong needs to go beyond "they went wrong because they are old fashioned" or "they went wrong because they didn't realize software shouldn't be filled with bugs". There are real hard problems here that need to be understood before you are in a position to improve on what the incumbents are doing.
Then throw in all the regulatory and compliance stuff that businesses need to trust storing their data with you. Add EU regulations and you will end up building data centers in different parts of the world. Then you will want to spin up training to use your custom DSP. And localization packs. Then you will need APIs to pull data in and out as customers will fear lock-in and they'll want you to integrate nicely with some other service. Then you have to figure out how those APIs work with your metalanguage. Then other customers will demand the ability to reskin everything with their corporate logos, custom login screens, support for SMS and two factor auth, support for third party identity providers, scripts to enroll/unenroll users, admins will want scripting platforms to manage all the complexity created by adding the other features, Etc.
the problem is not everyone can afford a IT dept with software programmers that can build out custom software.
If IT is not their core most companies seek out software that is already out there with somewhat decent reputation.
edit: at one of my previous job, they have a in-house software that was build with older technology that needs to rebuild. they outsourced it to Capgemini. it started when i join the company and by the time that i was out (4 yrs). they still didn't get it covert. they kick out Capgemini around two years in and hand it to another consulting company and the new consulting company junk out Capgemini's code and start from scratch.
i'll like to know more details on how they botched this project, it always make me curious how they botch it up for 4 years and two million wasted.
Agreed, though isn't this often just a problem at a strategic level? C-level doesn't understand digital transformation, so there is no strategy and no budget, or they think they can just buy it with platforms like Salesforce.
Having custom software built is only getting cheaper because our development tools are getting more and more powerful and managed cloud infrastructure is extremely compelling due to removing most of the ops from devops and being cheap at the same time, so costs could hardly be an argument anymore, right?
But yeah, there's always the risk of hiring a firm that has a quality problem, or uses terrible tools to build software in the first place (which is what I was referring to with the joke in my first comment in this thread).
Enterprise software is a minefield, how can we fix that? :)
I am currently working on a large project, which unfortunately needs to communicate with DB2 and interact with AS400 (old ERP system). At this point nobody knows how things work and how the business operates exactly. Managers hold pieces of information but it is not documented at all. I have hit many road blocks because one thing was said, which turned out not to be true after a bit of investigation.
I could develop this software in 3 months, but it is taking 1+ years due to lack of documentation, developers not being on the same page, and nobody understanding the current systems.
Q: Can your system do X?
A: Yes (doesn't matter what the question is, or that an entire add-on would have to be built that could never be cost justified).
Q: As a company we do things like this, will your system work?
A: Yes, our product works with your process, no matter what it is.
I have observed this to be true. Customers particularly love the second one, so telling someone that they must change their process to work with your super simple un-customizable product can often be a deal-breaker.
Then I worked for a couple of big B2B companies (currently work for one) and it's basically the same thing except that two weeks becomes 6 months. But given how small the market is, you are still doing customization to drive deals. I think a big part of the appeal of developing these frameworks is so your own support staff can add the feature in without changing the core code. I'd imagine this would be the case for all the big B2B players. No way do any of these companies survive just selling off the shelf, and I have some admiration for the support guys that parachute into Penn State or the Foo Department of Bar or Nestle and help manage a whole massive deployment or roll out some brand new feature. They are working nights and weekends and I'm sure there's a lot of good war stories there.
It's a sliding scale. You have to pander to them to some degree - there's no choice. But it takes grit to refuse to e.g. branch your core code or otherwise compromise your architectural integrity.
The problems are when the sales team does not appreciate the downstream costs of just letting this one patch in. And when you're a struggling startup, sometimes they're right and the social proof of the deal (and the revenue) make it a good choice to compromise your principles this once.
Every time your client slows down, somewhere an executive was promoted.
And I say this out of experience with using it as part of a sales team at a car dealership I worked at years ago. Every sales person in the company was expected to log all the customers they interacted with, track phone numbers & other info, set reminders to makes sales calls, make notes of what you talked about in said sales calls, et cetera, et cetera. And management was adamant that we did these things.
And for good reason. Sales is a very data driven industry, so to your point yes, it’s great for upper management to be able to track & aggregate all of the data company wide.
It’s been too long since I used it for me to really remember or comment on the performance of the software. But if it’s as bad as the OP is saying that’s a real problem. If you have a whole sales team using this, and performance issues are constantly slowing them down and wasting time, that’s something that should seriously be addressed.
I guess you’re saying though that they just don’t care if the sales team experience sucks? As long as management gets their data?
Alas, intended users are seldom the ones writing checks. As the old saying goes, decision to go with Oracle happens on golf course, not meeting room.
This is geek poetry.
Or wined & dined.
Salesforce's response to the client-side half of the problem is migrating from Aura to Lightning Web Components. LWC is statically analyzable and Aura is not, so they can get some optimizations in that way. On the flip-side, LWC is a piss-poor framework because of how they've stunted it for optimization's sake.
Half of the beauty of Salesforce as a developer is the fact that I can build in a month what would typically take a standard web dev team a year to piece together. That's only true so long as my team works in Aura with all of the scaffolding tools and libraries we've built over the years.