Can someone actually explain to me what Sharepoint does?  If I worked in Microsoft’s sales department the best pitch I could give is:

“It’s the greatest, most versatile product that has ever existed. You can use it to run any complex system that your imagination could dream up.” This however would only be what I would pitch, not believe.

I’ve asked the question “ What does Sharepoint do?” to Microsoft sales staff, developers, and consultants. It always starts with something like: “Well… it’s, you know, like… a collaboration tool… BUT! It can do a ton of other stuff too”.

And that is the best answer I’ve gotten.

I’ve asked the same question of SAP vendors, Microsoft Dynamics consultants, and IBM Watson Cloud experts. The answer is always some amorphous, borderline ridiculous answer consisting of “well it does a lot of things” and “it greatly depends on the user”. This was not me asking rhetorical questions either. I was not trying to be glib, or overly clever, or even to pull some sort of #iamverysmart coup de grâce. I was trying to articulate what I do for a living by standing on the shoulders of “giants”.

You see, my company builds a “platform as a service” (roughly) type product as well. Something that could be more than one thing to more than one person. I struggle constantly with explaining that our product is better than anything else on the entire market. This is not a brag, nor a marketing ploy – but only because what we do is so niche that only 100 or so companies in the world might care. And that is not the game IBM, Microsoft, and SAP are playing. They are ultimately the owners of your software. Sure the configurations, the modifications, and the custom programming on top of these platforms is yours, but if they take the platform away, or stop supporting it, what do you really have left? It’s even tougher in “the cloud” business because then if your subscription runs out you’re dead.

I recently made a prediction to a friend who was starting a project with IBM. I warned them of the potential lock-in problem by making a prediction something along the lines of “They are going to tell you they can build it quicker and more effienctly with IBM Watson Cloud. No project ever runs perfectly, and when you finally step in to set things straight, you will find out you have zero leverage. They will simply say you are more than welcome to fire them, because they know you would have to build everything over from scratch”. My predictions were to no avail. No one ever gets fired for hiring IBM. And guess what happened? The only upside is that I get to say “I told you so” a little more often.

There is hope! There are other ways that platforms can be useful but also safe. One way is to use an open source platform, one that if at worst comes to worst, you can fire all your consultants and hire new ones, and the platform is still going to be around.

This is a little tougher with very niche enterprise products like ours, but we’ve done something a little different to combat my lock-in loathing: Our  products are OWNED by our clients. We sign a three year, non-exclusive agreement with our clients for support and maintenance,  and a traditional license fee is baked in. They get all the source code, and agree not to resell it. But if we don’t perform, or our clients want to go a different way, they get to keep the software and build on it themselves. We earn our right to be at the table by being the experts in a system we designed, working with their developers, adding new features, bringing our industry expertise to the conversation, and hundreds of other small bits of value. In this way we hope to be at the top of the renewals list in three years.

The idea of someone taking your software away from me is abhorrent. If your car company one day sent you an email saying that you now had to upgrade your fuel tank, and there was going to be a new subscription service if you wanted to keep using the same type of gasoline, you would riot in the streets. The model of software is not what is wrong here, what is wrong is the lock-in. Vendor lock-in is amoral. If there is no ability to keep something running, and there is no TRUE data portability option, then you are basically being extorted.

I get that as a business you are trying to maximize profit. I try to do the same thing. However I want to my product and my company to seen as sticky because we are valuable, and not because we would just be too painful to get rid of.

Previous ArticleNext Article
I help companies turn their technical ideas into reality.

CEO @Sourcetoad and @OnDeck

Founder of Thankscrate and Data and Sons

Author of Herding Cats and Coders

Fan of squash, whiskey, aggressive inline, and temperamental British sports cars.

The State of AI-Coded Software, May 2025

I’ll probably regret writing this. At the very least, I’ll cringe reading it in a few months. But here we are.

Lately, we’ve been getting a wave of client requests asking us to evaluate software they built using AI tools. These aren’t engineers. These are business folks using increasingly powerful AI products to try and build functioning systems. And to be completely honest, the results are both impressive and a bit alarming.

People are building whole applications on their own. Backends, frontends, user interfaces, even some database logic. Sometimes they even look good. These are smart people who don’t know how to code but have managed to produce working systems.

The problems show up immediately when we start reviewing the internals. The code is usually a mess. In many cases, it would be extremely difficult to maintain or extend. And if you need to move that code from the platform it was created in to a cloud provider like AWS, you’re going to hit a wall. These platforms wrap everything in layers of scaffolding that make portability a nightmare.

Security is worse. We’ve found plaintext credentials scattered across files. We’ve seen SQL injection vulnerabilities that shouldn’t even be possible in modern frameworks. We’ve seen structural issues that would get flagged in a freshman CS class.

Despite all that, what people are creating are legitimate prototypes. They’re functional. They run. But when you’ve put a few weeks into building something, and you show it to a software engineer, it’s hard to hear that your shiny new thing needs to be rebuilt from scratch.

I want to be clear. I am not anti-AI. Almost everyone at my company uses AI tools every day. We use Copilot, Cursor, ChatGPT, Claude, and more. We build out frontends with tools like v0 and Lovable. These tools have changed how we work.

Some of our engineers report productivity improvements of 30 to 40 percent. That’s not a rounding error. That is a major shift. But they are still writing the code. They are reviewing it. They are checking for performance, clarity, security, and maintainability. They are not letting the tools decide architecture. They are using AI like they use autocomplete or linters, but with more power behind it.

This is also where expectations need to be adjusted. These systems will not save you 90 percent on development. They will not let you skip engineering altogether. But if they save you 30 percent, that’s a real gain. Imagine you’re building a house. The general contractor says it’s going to be $500,000. You tell them you already did the blueprints, filled out all the permits, and figured out the site plan using some AI tools. If they came back and said, “Alright, I’ll knock 30 percent off,” that would be the best deal of your life. That’s where we are today with AI-generated software. A solid start. A real value. Not a replacement.

For me personally, AI has made it fun to write code again. I haven’t been a working programmer in over a decade, and most modern toolchains are enough to scare me off. Now, with the right assistance, I can build something without getting stuck on Docker configs and dependency mismatches. That’s a big deal.

In the startup world, AI-first development is everywhere. Most of the current Y Combinator batch is using AI tools to write the bulk of their code. But those teams are highly technical. These are engineers using better tools, not tools replacing engineers.

So for non-developers using AI to build products, here are three things you should keep in mind:

  1. These tools are great for building prototypes. If you build something yourself, you will understand it better and will be a better partner to your engineering team. That matters.
  2. These tools can help you build usable frontend components. You probably won’t want to go live with them, but they can get you close enough to work with a real development team.
  3. If your app is small, non-critical, doesn’t store sensitive data, and lives entirely in its native platform, you can probably keep it running. That’s fine for internal use or personal projects.

One day, you’ll be able to speak an app into existence and deploy it with a voice command. It will be fast, secure, and beautiful. But today, you still need an experienced software engineer to check your work before you send real data through it. That’s just where we are right now.

The upside is huge. We can now get experts from other domains to build working prototypes and test ideas without needing an engineering team on day one. That’s powerful. But if your product is going to handle sensitive data or support real users, bring in someone who knows what they’re doing. Not because the AI is bad. Because the stakes are high.