3 ms·
The lifecycle of a startup full of young arrogant naïve inexperienced souls: 1. Why is everyone doing all these complicated things?! We stopped doing them! We'
by 3cats-in-a-coat 3y ago
The lifecycle of a startup full of young arrogant naïve inexperienced souls:
1. Why is everyone doing all these complicated things?! We stopped doing them! We're much smarter than everyone!
2. Few years later.
3. At great financial, technical and business cost we redesigned our system to do all those complicated things, because our initial version was an unmaintainable spaghetti monster that wrapped up everything its tentacles touched and hugged it until it died.
There are situations when exposing SQL is a right call. I'd say those are pretty narrow, say when you have colleagues in a partner company doing integration. SQL is not a way to avoid having an API. SQL is an API. The surface of this API is gigantic, and it also binds your customers to a particular implementation of your database (the SQL vendor you happen to use). If those customers are few partners, this is easier to change. When it's the public at large... you're effed. This is all pretty basic systems analysis, but kids these days don't know the first thing about it.
But here's a basic rule of thumb: exposing SQL as your API may be the right call if you've spoken in person with every customer who will be using that API, and especially if this in-person contact is regular, say at least once a month. If you haven't, then SQL is not a good API for that customer.
- thinkingemote 3y agoThis is 100% the pattern. However most startups (and most software projects if we think about it) fail. They don't make it to year 2. This in built failure rate shouldn't be a reason against doing things right the first time but it might explain how many don't get to learn the lessons from year 2. Most of the time we will never get to redesign and realise the mistakes we made.