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

I disagree. Every product has a user, whether that product is in your web browser or a command line script. The way your user interacts with your product is its interface. I believe the author is suggesting that you must understand that interface first before you go off designing architecture.

If you are a security researcher designing a virus scanning algorithm, you need to understand how your users will interact with your scanner. Can they pause and resume? Can they tune the parameters of your scanner? Which parameters? etc. The way you answer these questions will invariably affect the architecture in some way.



> Every product ...

Again, a very narrow characterization of when development happens.


No, it's a narrow mentality of what a product is. If you are writing code, that code interacts with humans in some way. It might not be a consumer or even B2B product, it might be strictly an embedded library that interacts with nothing except other code, but even that should be designed to meet the needs of the other programmers who have to interact with it.

A lot of programmers want to be handed concrete requirements so they can focus solely on implementation, but in practice this leads to gaps. A programmer who thinks beyond their immediate scope to the end-to-end context and human players involved where their code is executed will deliver far more value and avoid so many common disasters that happen when non-technical people are solely responsible for requirements.


I am handed several terrabytes of data and is asked to find the needle in the haystack.

You tell me, that I should be concerned about the UX of the scripts I develop to go through all the data and hand me the result I will answer back with?

I would say that I should just solve the problem, answer with the needle, and get on with my life.




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

Search: