Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

lol, I can already hear the responses of plenty of managers/management I worked with to these points.

> APIs need to be well-designed or the client may need to make multiple API calls when one should suffice. Or the API could be confusing and people will call it wrong or fail to use it at all.

That's fine. It's a first iteration we can change it later if people complain. Lets get something out there and iterate.

> APIs require authentication and authorization.

Lets not worry about authorization/permissions. It's just one key or whatever account they use to log in with now.

> APIs need handle data securely or you'll leak data you shouldn't, or allow modification you shouldn't.

You're saying you don't know how to do that?

> APIs need to be rate-limited or sloppy clients will hammer your API.

Either "Lets worry about that later when it happens" or "Here is the first github link from a google result for 'api rate limit open source free'. Lets use that"

> APIs require thorough documentation or they're useless.

Either "We need to have the API first, docs, clis, etc could come later after we have gauged the usage or had asks for them. We can handhold the customers asking for them for now." or "here is a github project that autogenerates docs, SKDs and clis from an OpenAPI spec"

> APIs need good error messages or users who are getting started will not know why their calls are failing.

You're saying you don't know how to do that?

"It doesn't have to be perfect. We have customers who are asking for it and to win them we need to implement something then we can work with them to improve it. Otherwise we will lose them"™



Then again, these answers are valid. Your fancy API documentation will only be skimmed, nobody is going to notice the elaborate and elegant URI design or the discussion around whether to use PUT or PATCH, and the super-secure token mechanism you come up with will be written on a sheet of paper in the office.

Most projects are far too fluid in their shape to warrant a proper design up-front anyway.


Recently I was working on a 12-year old project where the product people kept asking for "quick wins" and "leave the refactorings and in-depth analysis and difficult problems for later". When will they get to the "later", if 12 years was not enough? I eventually left.

Of course, YMMV. Every company and manager is different.


In every organization I've been in, "later" meant "never".


They’re really not. That approach is how you get “why do I need this account ID to look it up in the API but the only way I can get it is by using the UI? Why can I update this object but not see its current state?” and other complaints that users very reasonably have about a thing I worked on.


Don’t get me wrong, I love to obsess over that kind of detail, but complaints like these usually aren’t a deal breaker, and yet it’s reasonable to count those complaining users as successful conversions regardless.


Yep, helps a lot when your management is in the domain.

Phased implementation isn’t the worst idea, they just have to be committed to ending the experiment or seeing it through.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: