Ask HN: Do you start with a visual prototype or backend code?
I've started working on a project from a visual prototype before I get into the backend code. I wanted to find out what approaches others use.
I find it easier to understand how to hook up the backend code, once I know how the product should work visually.
7 comments
[ 237 ms ] story [ 226 ms ] threadEven if you're not creating an api, treat your back end as such to avoid that tight coupling.
That's how I approach it anyway. Generally works, there is always exceptions but for the most part it works out ok.
Crappy programmers always start with the frontend first because they don't know anything better. Good programmers often start with the backend, and specifying a huge database schema. In my experience that invariably leads to a rigid system with way too many complicated relations and features no one need or asked for.
One concrete example I've seen a million times is someone making a feature for advanced access controls, privilege levels, user accounts, who can edit this, who can see this etc... And in the end it turns out all users are using the admin account anyway!
To me, everything makes more sense when you work front to back and it's easier to de-couple things when requirements change.
Everyone else seems to enjoy working from the back to the front for some odd reason. I really think it's a if you started with databases you prefer databases or if that's what you've worked with longer you prefer that. I also think it has to do with databases being easier for upper management as they age and move away from programming.
But then again I just spent an hour figuring out a complicated function being used to parse a semi-comma delimited list being stored in a single field by someone with '10 years SQL experience'. AKA SQL anti-pattern 101.
No-one really knows what they are doing dude. Things evolve too quickly. Some people are really great, they end up outside programming. Some people are really good, but age and time still get you. You fall back on what you know intuitively even if it may not still be best practice from 2-3 years ago. It's like CSS. Things just evolve and shift so quickly, it's hard to keep up even with the amount of professional study we do.
In one case, I started with the back-end because I figured that, to make money with the product, I could coast with a minimal front end for quite some time. Then, in another project, I thought the front-end was the selling point so I went with a minimal back-end.