Hacker News new | past | comments | ask | show | jobs | submit login

I've been working on infrastructure to support a certain class of applications (medical imaging devices) that have a lot of complex functional and nonfunctional requirements. I initially developed much of the system I own alongside the first product team which made use of my systems, and together we ran into a lot of painful issues and added functionality to support these use-cases.

Working with a new team who haven't yet shipped such a system to production has been supremely frustrating, because they haven't gotten far enough in the process to understand the classes of problems that my system solves. I've gotten a lot of pushback simply because they simply didn't have enough context to understand why you'd even care about this stuff - "Why are you bothering us with these problems? I'm sure we can figure this stuff out eventually."

But now, after working with folks for a year and a half, they're starting to come to me with questions about how to resolve certain things - and that's when I say "remember that stuff you didn't care about at all last year? fortunately my system already knows how to do that for you!"

Glad to know this is a systemic problem with humans and not a personal failing on my part!




I'm curious if you can be more specific about the kinds of problems they eventually came around on that they did not care about/understand at first?

I like this kind of "meta-problem" and would be interested in known how to get people more interested in ideas that I intuitively know are useful.


Problems included things like:

* input validation at ingestion time vs processing time

* access control via a proper IAM system with defined roles as opposed to granting access to individual users

* various multi-tenancy, multi-region, and multi-regulatory-regime concerns

* relying on standard frameworks/platforms which provide rollouts, monitoring, test harnesses, etc. as opposed to rolling your own

Some of the things were simply "we know this is important, but we have to hit this deadline so we're going to cut corners", resulting in rework later to do things properly in production


That's why when you are using a polished product, all that detail is hidden from you, and not explained or mentioned at all.

It's just how it is, take it or leave it. To get away with this you need to have sufficient authority and agency however.


Not much to go on, but my first guess is that you need to expose the functionality in a piecemeal "as needed" manner, rather than all at once.




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

Search: