logoalt Hacker News

utopiahtoday at 6:24 AM0 repliesview on HN

Yes... and in fact I'm a professional prototypist (as in I get paid to do that) and this is 100% the process.

You do not, never EVER, start from a blank slate.

Step 0 is to actually challenge the value. Before you even start you spend a LOT of time with the person with a need to narrow down what they actually need. Not what they think they want but what's genuinely problematic for that. Again, NOT how to solve it but what's a thorn that's painful for them, not for what you imagine it might be. This honestly often get uncomfortable quickly because you have to ask "Ok but have you tried this? What about this quirky thing?" because it challenges their own attempts. If you don't spend a significant amount of time in that space you WILL implement faster, that's obvious, but you are very likely to efficient "solve" the wrong problem. You will solve what you can solve easily. Think about it like looking for keys where there is light, not where you lost them.

So... that's before one has even started to code, it's mostly uncomfortable discussions. Only once there is some confidence from both parties that the problem is identified can implementing might make sense. Then you don't! You do NOT touch a line of code. Instead you take whatever you can, post-it notes, Lego bricks, existing software, you tape all that together and you ask "Would THAT (very ugly barely working monster) kind of solve it for you?". So you do not build anything new, you ONLY stick together the BIGGEST existing parts.

Only then you might eventually build something but STILL you don't start from a blank slate. You are going to find the highest level of abstraction you can find. They want something related to the Web? You don't freaking build a Web browser, or a even PWA, you paste a code snippet in the console.

You always look for the way with the MINIMUM amount of new code. It's never about implementing faster. It's about NOT implementing faster.

Now the fun part (arguably) actually begins when you have done all that but it's still not enough. You use a CMS or a browser or whatever large exiting verified code base and the need is not solved. Then you rely on the built-in extension system of that code! Guess what, there might even be an existing plugin that does what you thought was novel.

Finally, finally you did find no extension for that existing quality open-source large code based so you HAVE to build it. Well, not so fast, is there another piece of code from another software that does it? Does it have an API? Can you connect to that API to get that functionality in that extension?

Then you have done it, you brought together 2 large pieces of software but you only coded the connector between the two.

Your prototype is, in practice, 10 lines of code.

TL;DR: yes, good prototypists code very little and yet still end up with genuinely novel work.