Earlier quoted context omitted.
Carpenter analogy is as bad as the "book author" analogy. You write a book and let it go. Nothing to support, all updates are to be paid by customers in a new release.
"Book author" is at least closer to the truth. There are editions and old copies floating out there, it's hard to estimate completion dates, and authors have many of the same copyright problems. The difference is that software must live in a dynamic and shifting 'house' where everything gets rearranged by vendors, probed for weaknesses by attackers, and new features are constantly demanded by the users. Solutions to…
Finish your stuff
91–100 of 177 posts
Re: Finish your stuff
#92"Real artists ship" "if you are not embarrassed by the first version of your product, you've launched too late" https://en.m.wikipedia.org/wiki/Release_early,_release_often I'm sure there are many others, but these ones keep me shipping.
I think there's a lot of truth in this. I've been working on a video game on and off for the last year and a half. For most of the development time, I would agonize over every little detail and take weeks to implement even minor features, because I'm an Artist (TM) and genius takes time damn it. Finally, two weeks ago I said "fuck it, I'm just going to focus on getting things working as fast as possible and I'll make them good later." And I've never created content or implemented features as fast as I have in these past two weeks; I actually have a working demo, instead of just notes and an empty engine. None of it is what I consider "good" right now, but I know that it'll be good eventually.
Re: Finish your stuff
#93The point of the article is not "Finish your stuff", but "Tackle smaller problems".
Re: Finish your stuff
#94Am I the only one that really hates the carpenter analogy? As someone who does woodworking on the side of my programming, there's a million reasons why it's a terrible way to think about software development. The chair doesn't have supported platforms, new security issues, or the need to be updated so that people keep buying the same chair. Someone else isn't going to have to come along later to maintain the chair an…
Re: Finish your stuff
#95"Real artists ship" "if you are not embarrassed by the first version of your product, you've launched too late" https://en.m.wikipedia.org/wiki/Release_early,_release_often I'm sure there are many others, but these ones keep me shipping.
If you're embarrassed by the first version of your product (i.e. suppose it's buggy, or is lacking in it's UI) then it's probably not ready to ship? There is nothing worse than shipping a half-baked product.
Re: Finish your stuff
#96Now what if your home regularly changed in such a way that your old chairs didn't sit upright anymore? There are limits to the carpentry analogy.
If your chair covers the area of Los Angeles, it'll sure have problems with changing landscape. If it's a regular-sized chair, less so.
Re: Finish your stuff
#97Am I the only one that really hates the carpenter analogy? As someone who does woodworking on the side of my programming, there's a million reasons why it's a terrible way to think about software development. The chair doesn't have supported platforms, new security issues, or the need to be updated so that people keep buying the same chair. Someone else isn't going to have to come along later to maintain the chair an…
Taking this to the next level: I come across people all the time that put tremendous effort into building similes for... everything. Not every concept needs an analogy to be understood if we can explain things using correct and simple language.
> Not every concept needs an analogy to be understood if we
> can explain things using correct and simple language.
That's a pretty big linguistic 'if', actually... how do you come to understand the 'correct and simple language' in the first place?Re: Finish your stuff
#98This is absurd. A finished project is a dead project. If it isn't improving, it's dying. Never finish your projects (unless you're just doing homework). Software is a system. Systems of any non-trivial complexity are living things that must adapt and evolve. Constantly. (Also, there is absolutely nothing wrong with abandoning a project. Gain as much as you can from your experience and quickly move on to something bet…
(not least if you consider the actual contents of the linked article, which makes it clear that by "finish" he means to make it functionally complete, not to stop fixing bugs or e.g. ensuring it still compiles)
Re: Finish your stuff
#99I thought the Unix philosophy embraced the idea of "small tools that do one thing really well." > Please join me in my effort and do finish your projects. Hear, hear. A friend and I hosted a "Finish it! Weekend" once (as opposed to a "Startup Weekend"). The idea was to get people together for one weekend and finish that last 10% or whatever of a project. Sadly we were the only two to show up. (And we both finished ou…
Re: Finish your stuff
#100Oh, come on: software is usually much more than a table or a chair. It grows, it needs care, it is more like a plant than something static. What does it even mean to "finish" a program like 'ls' given the increasing complexity of filesystems with time?
The semantics of POSIX dirents haven't really changed, and any file system complexity is abstracted by the kernel's VFS subsystem to provide generic data in all cases. So, yes, it is possible for something like 'ls' to be finished, or at least for really long times.
But at the same time, consider things like UTF-8, localization, etc. They appear at the least expected moment and someone has to do something unless the tool becomes useless.
I understand you get the idea, though.