[HN Gopher] Just Build the Product ___________________________________________________________________ Just Build the Product Author : davnicwil Score : 217 points Date : 2020-01-02 10:49 UTC (1 days ago) (HTM) web link (davnicwil.com) (TXT) w3m dump (davnicwil.com) | mooreds wrote: | Whenever someone asked me what language or framework they should | use to build their project, my default answer is "whatever you | are familiar with". The honest truth is that for the vast | majority of applications I have seen, the risk is in building the | wrong thing or getting wrapped around an axle trying to figure | new technology out, not choosing an old boring technology that | won't scale. | coffeefirst wrote: | And even then, your odds of handling scaling issues with things | you're familiar with are a lot better than with new things. | gprasanth wrote: | It's fun the first 2 times you do it as you like. Then you start | thinking about doing it right. | | Then you start thinking about building stuff right from the | beginning which is basically intelligence you've gathered. | | It takes finesse to craft things quickly but with quality. | | Bias to do stuff quickly is very hard to let go off. Doing things | in an organised way has its value. Basically if you're not going | to rewrite something in the next year, do it right now. Otherwise | you're just borrowing time from future. | | Short term hacks vs long term meaning. | gfodor wrote: | There are path dependencies. If the short term hack accelerates | your ability to get enough traction to increase runway, you may | survive to see the "right" solution implemented. whereas if you | pursued the "right" solution more directly from the beginning, | the additional delays would have killed you. Good technical | leadership embraces the short hack _and_ guides the project | through righting it when the opportunity is there. (To fail to | do either is an equal failure, and both are hard.) | | Anyone claiming there is a clear answer to these questions is | deluding themselves. Tactically, the best weapon is to | recognize your own weaknesses, and it seems to me that | engineers often have more of a bias towards performing tool and | technology analysis and research in the name of avoiding the | hard and often humiliating task of shipping software that users | will almost certainly hate in its earliest versions. | marcosdumay wrote: | After you learn some lessons, it's tempting to check any action | against all of them. But that slows you down, the more | experience you have, the slower you will be. You don't want to | do that either. | | Anyway, it is very hard to stay away from both extrema. It | requires constant self awareness, and even more learning, of | the hardest kind where you are required to feel stupid all the | time. | tombert wrote: | You know, one of these posts pops up on HN every few months, and | every time it kind of annoys me. | | If I'm building a project for fun at home, then it's typically | _specifically_ to learn about a new thing (which I kind of | assumed was the case for most people); either a new programming | language, or a new editor, or a new library or two. If I short- | circuit and "just build the product", then that is sort of | negating the purpose of the project. | | If I wanted to "just get something done", I probably wouldn't | have done any projects in Haskell (back when it _really_ sucked | for tooling), I wouldn 't have learned category theory, and I | wouldn't have gotten any work in research. | mathgladiator wrote: | It annoys me as well, and I think the intent is that "just | build the product" is about avoiding shaving the yak. | | Some of us poor bastards have to invent the stupid things that | let people get things done, and it isn't exactly clear that the | stupid thing is even good in the first place. | | For instance, right now, I am in the process of inventing my | own programming language. I've done this in the past with | varying degrees of technical success, but it tends to get deep | into the weeds of shaving the yak and polishing it up. | | I'm have a hell of time to pull myself from the technically | interesting problems to focus on the product that this language | enables, and I find myself having to balance between fixing the | language idioms and building the product. | | Balance will be a key thing to focus on if I make this product | a real thing for real customers... very challenging future | ahead of myself. | eckza wrote: | What kinds of problems are you trying to solve that would | make solving the (rather large) meta-problem of creating a | /whole new programming language/, easier / more effective / | more clear / more profitable - especially when compared with | "just solving the problem with more established tooling"? | | I don't ask this critically. I am genuinely curious. I wonder | about this a lot; there are so many languages that solve the | same problems in slightly-different ways, that I'm always | curious as to the motivations behind creating another new | language. | iudqnolq wrote: | The problem of them not being as good at creating a new | programming language as they want to be. | | So many amazing projects started as someone scratching an | itch, often completely unrelated to the eventual product. | And even if a project doesn't take off, if the goal was to | get better at programming (and not marketing, project | management, etc) it may be still be a success. Both forms | of projecting have value. It all depends on personalities | and where people are in their careers. | capableweb wrote: | > It annoys me as well, and I think the intent is that "just | build the product" is about avoiding shaving the yak. | | I think discussions in general on Hacker News, blogposts and | Twitter is missing context. Everyone assumes that others | context is the same that you yourself has. So posts like this | make sense, if you're in "startup - lets find market fit - | need growth - just build the damn thing" mode, which is | probably the mode the author is, or the context would have | been set in the blogpost. | | In the comment you're replying to, the context is a "explore | an idea and learn something new" with no intention on turning | that very thing into a product that sells to people. Maybe | that will happen, but it's not the intention. | | In the end, two very different contexts, both valid, but they | are both talking past each other. All the people using | different social networks (HN included), usually miss the | vital piece of context and just proclaim "You should do X, | because of Y". Then people defend their context, because life | is never "Always do X" and will never be. | beat wrote: | A lot of discussion of best language, etc, is just bikeshedding. | (See Parkinson's Law of Triviality) We talk about technologies we | use because it's easier and safer than talking about the actual | _product_. | kareemm wrote: | This is the right advice if you want to nerd out on technology. | But my experience suggests[1] that if you want to build a | __business __it 'll be cheaper to validate problem/solution with | phone calls and mocks / designs before writing code. | | This is because: | | * It's cheaper to make changes before code has been written | | * A functioning product isn't the best sign that you're making | progress - paying customers are[2] | | Don't get me wrong. I like to write code as much as the next guy | / gal. But I've made the mistake of writing code first. And I've | worked with clients who - despite my best attempts - decided to | forego validation to build a product that they spent a lot of dev | dollars on to fix once the market met it with a trickle of | interest. | | 1- https://uncog.com/archive/v2/why-only-fools-write-code- | first... | | 2- https://uncog.com/archive/v2/how-to-get-paying-customers- | bef... | opportune wrote: | Conversely, you cannot validate product market fit without a | product. Validation via "Is this something you can see yourself | paying for" isn't really a substitute for actually getting | people to pay for your product. At best it will filter out just | the worst ideas. | api wrote: | How do you get quality feedback? In my experience people will | often say yes when asked or shown a mock up but will not buy. | You don't find out who will actually buy until they try a | functional product. | | I really suspect that the lean startup method belongs in the | early web era when there was a ton of low hanging fruit with | simple market research and simple MVPs. All that low hanging | fruit has been picked. Today it's pick your brutally hard | problem and iterate for 1-2 years before you get a MVP that you | can test. | kareemm wrote: | > How do you get quality feedback? In my experience people | will often say yes when asked or shown a mock up but will not | buy. You don't find out who will actually buy until they try | a functional product. | | Ask them to pay you based on the mocks. If they say no, ask | why. If they say yes, take their money and give it back in N | days if you haven't built your MVP. I've done this BTW - it | works. | | > You don't find out who will actually buy until they try a | functional product. | | You'd be surprised how many people have gross business | problems that some well-placed code would solve and they'd be | thrilled to pay you for it because the other options suck. | shantly wrote: | I have real trouble wrapping my head around this kind of | thing because I can't imagine paying for a product under | those circumstances, no matter how useful it'd be. I get | that it must work since so many people say it does, but | it's totally alien to me. | | If you don't have something to sell me, now, why are you | asking for money? Am I an investor? No? Come back when you | have a product. I'll probably still say no because I won't | expect your business to last very long, but you'll be 100x | closer to a "yes" than you are now, which is about as far | from it as you could possibly be. Is this an unusual | attitude? | [deleted] | cik wrote: | This is the hard truth that people leave out. | | Just build the product - the purest most minimal version you | can. I mean be judicious with the knife, and slice like it's | going out of style. Accept it - you're throwing out 100% of | the code eventually - be fine with it; it's not ideal, but | you'll ship and be live. Add the analytics you need - test | hypotheses. Reach out to people who drop in and drop off, | they're more valuable than features. | | Don't agonize over "this isn't done", "this isn't perfect" or | "it needs X to be useful". Get it out, charge for users, and | you'll build a sustainable business, or it will fail quickly. | Sure, this may not be VC sexy - but you know what, you can | build product quickly, validate or toss and idea and move | along or improve, based on feedback. | | This ships. It ships repeatedly. It's not perfect, it's not | awesome, but it works, always. | onlyrealcuzzo wrote: | As someone who built probably 10 apps / businesses before I | read the lean startup, and learned to validate things first, I | think "JUST DO IT" is about the worst advice anyone can give | you. | | Maybe I was and still am a complete idiot. But I think a lot of | people would be like me and just assume that lots of people | want X, Y, and Z -- so go out and build the thing, and then | realize nobody wants X or Y, and no one is willing to pay for | Z. | | I started doing financial models when I get an idea. What I | always find out is -- even in my wildest dreams -- these ideas | wouldn't pay more than my current job. | | Granted, I make a lot of money. But I think the vast majority | of people on here make more money now than is reasonable to | believe their business could ever make, if everything worked | out. | theturtletalks wrote: | How much of that is just people wanting to make their own | mistakes? This is one of those things where people only learn | from making the mistake themselves. | | Most products are mainly built by people who face that same | problem their app solves. This gives them a reason to build | it. As worst, it's used internally. At best, it's a side | hustle or much more. | kerkeslager wrote: | Playing devil's advocate here: | | This is basically an attempt to gather more information before | you act. In principle, that's an Obviously Good Thing. But you | have to question whether that information is actually as | conclusive as you want it to be, and whether you're changing | the outcome by observing it. There's two problems with the | information you gather by making phone calls and showing | mockups/designs: | | 1. Mocks/designs only communicate a fraction of the product, | and often the parts that aren't visible in mocks/designs are | the most valuable parts of the product. Speaking in vague | terms: I'm working on an app where the main value is that it | calculates actionable numeric values that users typically | calculate in spreadsheets. The UI is certainly a selling point, | but users aren't going to easily understand the connection | between the new UI and the old spreadsheet formulae without | playing with the actual product. Phone conversations are likely | even less communicative. | | 2. Communication is a two-way street: releasing early allows | you to get information from your users, but it also leaks | information _to_ your users, which may not present the image | you want. Kickstarter has shown that with good enough marketing | you can get paying customers with literally nothing. But you | can also burn customers so they never want anything to do with | your product ever again. There are numerous high-profile | failures-to-deliver that have killed not only products, but the | reputations of individuals and companies. But failure doesn 't | have to be that catastrophic to lose customers permanently: all | that has to happen is for someone to pay for your product, find | it a bit lackluster, and decide to cancel their subscription. | That user is worse than a non-user, because they are never | going to be a user again, and might tell others about their | experience. Short term success not only isn't an indicator of | long-term viability, it can _cause_ long-term non-viability. | | Sure, it's cheaper to validate problem/solution with phone | calls and mocks/designs, but you get what you pay for. | | The best strategy probably lies somewhere in the middle: code a | minimum viable product, but really make sure it's the minimum, | and really make sure you think it's actually viable. A good | compromise might be to release a discounted beta for select | users--that lets you get feedback from paying customers up | front, but also sets expectations so that users don't get the | wrong idea about your product before it's mature enough for a | real release. It also limits the exposure, so even if you burn | a few beta users, you don't burn your entire potential user | base. | jt2190 wrote: | > I'm working on an app where the main value is that it | calculates actionable numeric values that users typically | calculate in spreadsheets. | | Even this sentence is a perfect tool for validating the | market: I have no idea if the product is for me! ;-) | | (I get that you may be keeping your product's specifics vague | here, but by doing so you've provided a contrived example of | how a simple description of the product itself can help find | information about the target market. I have no idea if I'm in | your target market, for example, so if I'm supposed to be, | that's a problem.) | dynamite-ready wrote: | It's fair to say this is line of conversation is tangential to | the original post, but respecting the passion of your reply, do | you think ideas like those represented in The Lean Startup | perhaps over-rationalise the creative process? | | Like, taking a rough guess, I wonder if there aren't as many | successful startups, as there are successful writers. But no | one takes those guides to writing a successful book quite as | seriously as those guides to running or starting a successful | business. | truculent wrote: | http://momtestbook.com/ | kyllo wrote: | I read it differently--this is not targeted at founders trying | to validate a business plan, it is targeted at engineers whose | job it is to build the product, and he's saying to quit | fiddling around with your tools and focus on building the | product--which is more fun anyway. | | "It's important to learn how to use your tools well, but once | you have, stop prioritising that. They're good enough now, you | know how to use them. Don't get trapped in this local maximum | of optimisation. Go and build stuff." | davnicwil wrote: | You're correct - this was the intended message :-) | chefandy wrote: | This was also my interpretation. | bluedino wrote: | 10 years ago, I wanted to learn Ruby on Rails, so I bought my | first MacBook Pro. Just grabbed it off the shelf at the | store. | | I got my first software development job, and everything was | great. I thought it was odd that the other guys didn't know | much about Macs (and didn't really seem to care), so when | they'd upgrade the OS I'd have to fix everything for them, or | they'd have issues with gems etc. | | I started buying every MacBook as they were relased. | Installing beta software, upgrading the RAM and HD just | because I could. Spending countless hours reading reviews, | posting on forums... | | The other guys just wrote code. Eventually I got tired of | keeping up with the crap (or maybe I just got older) and now | I crank out code on my far-from-the-latest MacBook, running | Mojave. _shrug_ | | It was fun stuff, but I could have spent that time (and | money) more productively. | shantly wrote: | It's really funny to me that someone could get excessively | sucked into tinkering with and "nerding out" over Macs, the | desktop/laptop platform that's by far the _least_ inclined | toward that. Usually stories like this start on Windows or | Linux and end up on Macs precisely to minimize time & | brain space lost to tinkering and esoteric platform | knowledge just to keep things basically working OK, as the | appeal of that sort of thing wears off. | | I don't mean that in a bad way! It's just one of those | "huh, so many different experiences out there, who'da thunk | it" things. | whatshisface wrote: | Not every problem can be solved manually. There are many | businesses where the technology itself is the valuable thing, | not just glue between humans doing all the work. "Don't write | code" is smart when the code could be replaced by a person and | a spreadsheet but that is not always the case. | | Examples include circuit board layout programs, finite element | modeling, any engineered hardware product, entertainment (like | computer games), or anything other than pure business, really. | kareemm wrote: | > Examples include circuit board layout programs, finite | element modeling, any engineered hardware product, | entertainment (like computer games), or anything other than | pure business, really. | | "Don't write code" really means "prototype first for your | potential users". So if your code won't have users/customers, | then write away. But hardware and entertainment can | absolutely have low-fi cheap prototypes. | | This approach is designed to elicit learnings to make a | better product that's cheaper and faster to build. Of course | you can write code first, but my experience suggests that | that's a slower and more expensive approach. | blowski wrote: | To further your point, there is always a risk that some | assumption you're making will turn out to be wrong. You | should build the product only when the risk of not building | it is greater than the risk of your assumptions being | wrong. | 0xdeadbeefbabe wrote: | Users fixate on low-fi even if you tell them it's a | prototype. Talk about a blocking bug. | [deleted] | Abishek_Muthian wrote: | I agree. Earlier in my entrepreneurial journey I've spent a | year building a product without validating it properly or | validating it with biases (validating it with like minded | people) only to find that not many wanted it when the product | was released[1]. | | Tangentially, recently this motivated me to build a platform | for validating problems by making people post their problems | and even validate startup ideas as solutions to those | problems[2]. | | [1]https://hitstartup.com/startup-ideas-vs-problems/ | | [2]https://needgap.com | Jasp3r wrote: | Read the second paragraph he is talking about: | | > Ok, now -- what language was it written in? Which editor did | you use? Use any open source libraries? | | > In the best way? How long did it take to run the build? Was | it easy to debug? | | > Was it as memory efficient as it could have been? | | > Were you building it on a really slick machine? What was your | keyboard set up? | | This article is about your improving your life as engineer, | questioning your technical way of working is how you grow, but | not always the way forward. Search this article for the words | "company", "business", "startup" or "customers" and you will | find 0 hits. | jasonlotito wrote: | This is not what the article is talking about in the slightest. | The choices are: | | 1) working on tooling 2) building the product | | Of the two, which do you prioritize? | | The article makes the case for #2. | | That's it. Nothing you say contradicts what the article is | saying, nor does it add to what the article is saying. | tuldia wrote: | It saddens me to see people growing a business and having to make | tradeoffs due to hosting costs or trying to catch up with new | tech. | | My (opinionated) take on this if you are just starting a new | business: 0. Lay your foundation on something | that is battle tested and well supported. | Rent/buy a real computer (dedicated/root server), not cloud. | Use software that is already included in major/stable GNU/Linux | distributions. 1. Build your stuff. Get used | to writing things. Beware tech news. | rooam-dev wrote: | Imho it's far from "just". The advice works for short lifespan | products and/or single "builder" and/or when requirements don't | change much. | | Getting the product fast out there is not enough. It's more | important to make changes fast, to allow product be shaped and | built further. | | It should be a balance (see "golden goose" tale). If you have a | team of "builders", than tooling becomes even more important, 1 | person's extra effort will make others more efficient. | | "Just build the product" sound like a consultant motto that ships | by specifications, but only that. You could "just" build a | product that needs 1 hour to be deployed. | | Edit: I would say a better advice to "builders" would be just | focus on the scope, it's very easy to get exited and overengineer | things. | pgm8705 wrote: | I couldn't agree more. For 5 years prior to 2019, I would | routinely get excited about building a project. Despite being an | experienced Rails developer, I'd spend hours upon hours | researching and learning all the latest and greatest tools and | languages. I did not even get close to shipping an MVP in all | those years. In 2019 I realized enough was enough and started | building my ideas with Rails. It has been a joy and I'm close to | having my 2nd project up and running. | iliomadfear wrote: | At the risk of seening facile, the "just" the title resulted in | my being hostile to the article. But, to try to be fair, I read | it. | | After completing the toughest gig of my professional life to | date, "just build the product" as an instruction/conclusion feels | both useful and flip. | | In my head, I have an idea for a product. Sod all money in it. | But as useful tool for something I care about, the "just build | it" mentality fits. | | However, in the roof-over-head world of making something useful | for an enterprise customer "just build it" feels trite. | | I went in to as a software consultant/developer to a fairly non | IT literate organisation and was tasked to deliver to their | specs. The big and costly challenge was to discover the product. | To understand and challenge their specs, see the gaps, refine the | UX and deliver. In my naivety, I thought the the customer would | be receptive to this approach. Turns out they were - but only | because I shouldered the cost of doing so. A massive learning | experience for me. The customer got a product that exceeded their | expectations - but, for a fixed price gig, commercially a failure | for me. | | I wouldn't change my willingness to jump in this time around, but | I won't repeat it - and would now walk away early from a customer | that thought they had the solution all figured out (as opposed to | having the problem figured out). In this circumstance "Just build | the product" feels trite and self-indulgent. Clarity on what to | build is hard earned. And the opportunities that iterative | development affords to a a software development organisation are | a hard sell to one whose core expertise lies outside IT. Possibly | a failure on my part, certainly room for improvement on my part. | overcast wrote: | Sure, if the product is something you don't intend to make a | business out of. Otherwise, you should be doing your homework | ahead of time, and seeing if this is something people are | actually in need of. Most ventures I've worked on have been | derived from the immediate needs that I found not being covered | in my day to day life from others. | marknadal wrote: | I love this quote from it: | | "Build features, not toolchains." | | https://www.urbandictionary.com/define.php?term=webpack | foxfired wrote: | There's been a change in sentiment here. Just build the Product | is still neat advice that needs to be repeated. Sometimes we get | too caught up with the plan, perfectititis, and only ever | fantasize about building it. | | In contrast, the more experience you get building products, the | more your repertoire of problems grows. You start to realize that | the code is only one part of the problem. Interacting with people | is what makes or breaks your product. So, you plan better, you | meet the right people to talk to, you figure out when to | outsource and when to do things yourself. You take more time to | build stuff. | | But, you can't do any of that unless you first build a product. | tristanstcyr wrote: | Rather facile advice. | | As a software engineer, it's your responsibility to build the | product according to the requirements. Sometimes that means it | needs to be built it quick because it's likely to have a short | life, or it needs to land quickly to market. Sometimes, you need | to get things right, otherwise you end with an insurmountable | amount of technical debt and a business that grinds to a halt. | | Given this, you should make the analysis to understand the tools | that you need. If that means learning, then so be it. Maybe you | can keep going with superficial knowledge. Or, perhaps you need | to find an expert, that's fine too. | | As for growing in your technical knowledge, that should be agreed | upon with your employer or whoever is paying for the work. If you | find that you work somewhere that doesn't allow you to learn then | perhaps it's not the right place to be. | | Think like a professional. | gfodor wrote: | The problem is it's extremely hard or often impossible to know | what are good choices before you've started building the | product. This, combined with the fact that software is highly | malleable, should lead one to highly prefer a bias towards | action vs analysis. It's not a hard rule, but it's much more | common for people to fail due to analysis paralysis than due to | poor technology choices. If you are able to get any form of | traction, opportunities open up to expand resources and time | that will be needed to adjust technologies. It won't | necessarily be fun, but when going through such an experience I | believe more often than not engineers have hindsight bias, not | a true recognition that early choices were made objectively | incorrect given the knowledge at the time. | hinkley wrote: | I've seen plenty of project grind to a halt from bad | decisions and high pain thresholds. I think you'll find and | even mix in the overanalysis crowd of white tower thinkers | and people exhibiting allergic reactions. If you are seeing | more of the latter I have two theories. One, those people | gatekeepe projects, so once bitten twice shy (ie they | accumulate and add friction) or two, you are looking at more | early phase startups than me. A seed phase startup locked in | analysis never sees my resume, so I don't see how often that | happens. | | But the trick is to start with the new Reversible decisions. | | We don't always know which are the reversible decisions, but | many of the irreversible ones are obvious. For some reason | developers always focus on the irreversible one. We reason | that we have to get this right, because it's very important. | And if it's important, we should do it first. | | No. No. No. | | If instead you start tackling all the reversible decisions | first, you can make those choices quickly (because changing | them is cheap, spending a lot of energy on making them is a | waste of time and capital). Start building something. Get | momentum. Get the team and ideas to gel. | | When you start to know what you're doing, then tackle the | irreversible decisions one at a time. | | But typically, everyone wants to Decide. And they want _you_ | to decide on short notice, right now, like some sort of used | car salesman. If we don't tolerate this from others, why do | we tolerate it from our teammates? | | Deciding for the sake of deciding is not productivity. It's | painting a floor when you haven't identified a workable plan | yet. There are always at least four corners, and rarely more | than two doors. The odds are not in your favor. | shantly wrote: | I'm having a hard time following what you mean. Could you | give some examples of an irreversible decision that can be | deferred in favor of some other specific reversible one(s)? | hinkley wrote: | Interesting. You know, I would've sworn I had a pat | answer to this question, but it turned out I had to think | about a little bit. | | They say that some of the most rewarding interactions for | teachers are the ones where they learn something, not jus | the student. Every once in a while I get an example of | that in real life. | | So what are some examples? Programming language is often | difficult to change. This is sometimes listed as a pro | for microservices. Because I get to change my mind for | every new area of the app, which makes it cheaper to | reverse directions. | | The most obvious answers that I have are load balancers | and external caches. I shouldn't have a big knockdown | drag out argument over haproxy vs nginx. Now, a load | balancer is almost a given. It's possible that someday in | the future, someone will invent an SMP machine with 256 | cores that gets some economy of scale by running a whole | website on two machines. It's easier to reduce the number | of machines behind a load balancer than it is to add a | load balancer to a mature product. So put one in, but | don't fight about which one. We don't know if we need | haproxy features, or if we want paid support from nginx | now. Just flip a coin and move on. | | Similarly, external caches are usually easier to turn off | than internal ones. With internal caches, people start to | pass around IDs instead of objects, assuming object | lookup is "free". It becomes integral to the information | architecture. A rat's nest of lazy and duplicate lookups. | External caches are cheap but never free. Access tends to | leave bigger footprints in the code. And there's some | small hope that you can get a direct lookup down to a | small multiple of the cache lookup time if it really | becomes necessary. | | Database architecture is another big one, for certain | dimensions. Going with Oracle is hard to take back. MySQL | vs Postgres is smaller. KV store versus MVCC SQL database | is also harder. For a prototype it might make sense to | pick one that is obviously a placeholder, like SQLite, | until you know what your customer's needs really are. Do | they need audit trails? Are they addicted to graphs? | Multitenant security? On and on. You can stave off fights | with SQLite because it's effectively a promise to revisit | this later. | gfodor wrote: | If you thread this up to the product-level, opportunities | abound. For example, instead of storing data for a | feature, see if you can get half the feature without the | data storage. Or, if a certain feature is going to | require a major shift in the way the UI looks or works, | perhaps there's a way to blend in a v1 to the existing | metaphors that can be replaced later. Etc | cs02rm0 wrote: | _As a software engineer, it 's your responsibility to build the | product according to the requirements._ | | Ah, the solid, dependable base that is the requirements! | | I'd question the reason to wait. Shove it out the door so you | can learn. I say that _because_ I 'm a professional and I've | seen many projects fail before seeing a single user. I've never | seen insurmountable technical debt grind a business to a halt. | Not once. | onebot wrote: | The point isn't "just start coding". The point is to focus on the | product(customer development and all) and not the | tools/technologies to build the product. I have seen many more | focused on the latest and greatest stack instead of using the | tools they are already good at. | hinkley wrote: | As with most things in our field, the opposite of a bad thing | is also a bad thing. | | When stuff is new, people have a higher tolerance for | repetitive, error prone things. For tedium. For bullshit. But | over time a portion of your team will lose patience. Their | allergy to bullshit will return. These are many of the same | people who pull off productivity gains, hard performance fixes, | who fix hard to find bugs. Who prevent whole classes of bugs. | If they don't get to fix the things that bother them, they will | go somewhere where they can. | | What will be left are the status quo people. If you don't have | your project in a good shape when that happens, it never will | be. You will have achieved mediocrity. | | If things are good and the allergic people are still pushing? | At some point it's appropriate to move on. Just make sure you | know for sure things are good and aren't just listening to | feedback from the status quo folks. | jimbokun wrote: | > If you don't have your project in a good shape when that | happens, it never will be. You will have achieved mediocrity. | | But most times the alternative is not mediocrity, but no | viable product at all. | ChrisMarshallNY wrote: | I've been working this way for thirty years. In fact, I can't | remember ever working on something that wasn't designed to ship. | | Even my test harnesses are fully-qualified applications. | | I remember a manager once saying "The number one feature of this | product is 'SHIP.'" | | Because of the nature of the companies in which I've worked, we | always worked backwards from "SHIP." | randomsearch wrote: | This is exactly the opposite advice I would give to anyone | starting a company - avoid building software at all costs. | draw_down wrote: | That's not what TFA is talking about. This is not lean startup | advice. | | It is advice for engineers to focus on the utility of the thing | they are making for other people, rather than focus on the | toolchain that allows them to build the thing. | aphextron wrote: | The best code is no code. | tylerrobinson wrote: | I don't think the article is saying "just start coding", it's | saying "when you code, use what you know instead of working on | the tooling". | volument wrote: | Haha. I see what you mean. Lack of market is the #1 killer of a | startup. | pezo1919 wrote: | Yes and no. | | I'd say if you have a set of features and a toolchain which | enables you to build them then ofc go for it. | | However that's not my usual experience with any of my projects | even personal ones. | | The thing is I don't know what I'm going to build, in the | contrary, I am aware it will take several iterations to figure it | out. Because of that I have to check out what is "out there" in | the ecosystem to make sure I can change directions sometimes if I | want to. I want to maximize my freedom in that niche. Because of | that every time I have some additional information about the | whole project (in which features come and go) it's an option to | step back and reevulate existing possible solutions in my mind | and go do some further research when necessary. | | My experience is when parts are not thought out in a project then | they will slow the entire workflow down over and over again. | | Just build or just not to build: I think this is a wrong | question. When start to build & how/what to research are much | better I think - and with real examples its much more useful I | think. | | Eg.: I'm totally done with relational and document databases. To | me it seems both suck hard so lately I am investigating graph | dbs. No, I won't start a new project until stupid rigid schemas / | migration problems / schemaless weaknesses (dupe) won't just go | away. | | Maintaining old shit is enough for me I really don't want a new | broken system as technical/real life debt. | | Ofc you can go out and build pages with jquery which do generate | tons of money for you, but others will be able to do the same | when they've figured stuff out. What then? | johnvega wrote: | It is great if it succeeds and useful, but if not, it's usually a | great learning experience. | flagpack wrote: | Thanks, just what I needed. Your use of those two paragraphs was | very effective. | davnicwil wrote: | Thank you - and really glad it was useful | ozim wrote: | Yar, funny those people who comment "no never build the product | first, do marketing and find if there are customers for it", | don't read the page. | | "davnicwil" is, guess what -> "Open source" "Freelancing" | "Consulting"-> motto "I turn ideas into products" | | He is just trying to sell his services to people who want to | build the product, and guess what he advises them to do that, and | that is his page. This is not some holy grail advice, get some | context and step back people. | | Ok I know everyone is reading only headlines here anyway... | vjeux wrote: | If you are interested in going further down the pit, you may want | to consider joining an infrastructure team at a bigger company. | This way you are able to use your skills at the bottom of the pit | to enable many more people to build the product faster. | draw_down wrote: | One consequence of this is that you're by definition far away | from the product and the end user. This is not necessarily a | direct problem, but it is worth considering. For example, a | coworker has been hacking away on our infrastructure pieces for | forever. Their work is in support of our large React app, but | this person basically never writes actual React code. | | It's possible to end up in a situation where your skills and | abilities become "purpose-fit" to the situation you're in, | which can be tricky to transfer elsewhere. Whereas most | organizations can appreciate the work and abilities of a | "product engineer", or whatever they call it. So there is some | risk to this approach. | XCSme wrote: | This rings a bell or two. After spending years of creating | projects with Webpack and wasting tens of hours on configuration, | I just started my new project with parcel, where I just run | "parcel index.html" and I'm done. I had fun configuring all the | stuff before, but now I just need to get the work done. | quantum_state wrote: | AAbundant past examples have shown if a business "just build the | product", it will soon does not need to build any product any | longer ... since it will be belly up :-( ___________________________________________________________________ (page generated 2020-01-03 23:00 UTC)