What Is More Important? Having An API? Or Having A Well-Designed API?
I got some expected flack this week for some stories on database to API deployments, and allowing folks to just auto-generate APIs from database structures. This approach is notorious for producing very badly designed APIs, which is something that just reflects whatever legacy infrastructure you have as a backend. It is something that drives many of API design, architects, and pundits crazy. Just do things properly!!! Follow good design practices! Put some thought into your API, and have some pride in this interface you are putting out there. All of this is easy for us to declare from our vantage point, but when your entrenched within an existing organization, battling for every movement forward, and often times just to not go backwards, this isn’t always the reality.
As technologists we are always looking forward, and have a really hard time empathizing with folks who are stuck in positions that aren’t as forward leaning as ours. I know we have a well of experience we want everyone to see eye to eye with, but that isn’t always the reality. You can’t convince someone who is just trying to stay afloat within an organization that they should be investing in all of these possibilities in a future they aren’t tuned into. Not everyone holds the privileged position that many of us enjoy in the technology space, and I feel we can do a better job empathizing with some of them. I’m not saying we should give up on leading, and telling stories of a better future, but we need to work to build bridges to many who are less fortunate than we are.
You know what is worse than being in an organization where you are battling for every bit of budget, resources, skills, and other things that help you stay afloat? Having people in more privileged positions making you feel stupid for what you do not understand, or have the time to learn. I wish folks at startups, and bigcos would spend more time investing in the knowledge transfer to smaller, more underserved organizations. Not teaching them to use their software, but actually investing in their staff becoming more web, and API literate. Instead, of making people feel like they don’t have the knowledge, skills, and resources to do things right. In my experience, most of these folks are well aware of this, and they don’t need to be reminded on it.
I’m investing in organizations just doing APIs. Sure, I would like them to do it as well as possible, but I’m more invested in people just doing them. Making their data, content, and other resources more accessible so they can be just a little bit more successful in what they are doing. There will be some pain to go along with this approach, but I feel like it will ultimately be worth it. I can’t shield data stewards, and other would-be API providers from all the pain of doing APIs. I feel it is more important to me that folks have an API, and be on their journey, than having a perfectly designed API. This is where the learning comes, and hopefully I can convince more technologists, startups, and bigcos to invest in this journey, rather than shame people for not being well-equipped when it comes to doing APIs, and quite possibly never even doing them at all. That is much worse, than a poorly designed API in my book.