Explore how reaching setup completion can unlock your next project milestone.

The 90% mark is a strange place to stop.

3 min readMachine Learning

There's a familiar ache in the post from Crypton228, and we suspect it resonates far beyond the r/MachineLearning thread where it appeared. The setup is meticulous: dependencies resolve, the GPU lights up, the model finishes downloading, and the terminal finally stops throwing errors. Then, nothing. The project sits there, technically alive but abandoned at the 90% mark. That moment of "it works" turns out to be the finish line, not the starting gun. It's a confession that will feel uncomfortably personal to many of us who have built, configured, and debugged our way to a working demo, only to close the laptop and move on to the next puzzle.

The honest take here is that the confession is less about a lack of discipline and more about a misdiagnosis of what we're actually seeking. For many, the thrill isn't the project's purpose; it's the problem-solving gauntlet that precedes it. The satisfaction of untangling a dependency conflict or watching a training loop finally converge is a concrete, measurable win in a world where most outcomes are fuzzy. That's not a flaw in your character. It's a signal that you're optimizing for the wrong metric. The real project was never the model or the dashboard. It was the act of making the machine obey. As our guide on turning prototypes into products notes, the gap between "it runs" and "it's used" is where most good ideas go to die, not because they lack merit, but because the builder's energy has been spent on the environment, not the output.

So what do you do with that? First, stop treating the 90% as a failure. It's a natural off-ramp, and acknowledging that can free you from the guilt cycle. But if you genuinely want to cross the finish line more often, the fix is to change the reward structure. Instead of celebrating "it runs," set a new definition of done that includes a user, even if that user is you, using it for a real task within 48 hours. That means building the thin slice first: the ugliest possible version that does one thing end-to-end. The dependencies, the GPU setup, the model download, those are the seductive time-sinks. They make you feel productive without requiring you to make a single decision about the actual product. As our piece on avoiding setup paralysis points out, the setup is a siren song because it's finite. The real work is infinite, and that's terrifying.

Here's the concrete point to watch for: the next time you catch yourself tweaking a config file for an hour instead of writing a single line of application logic, ask yourself if you're building the project or avoiding it. The user's post is a mirror, and the reflection is that the hobby might not be machine learning at all. It might be the comfort of a controlled environment where success is binary. The specific takeaway to quote is this: "Getting it to run is the end of the setup, not the start of the work." If that feels true, then the next project should begin with the question, "What does done look like when I'm not allowed to touch the dependencies?" The answer might surprise you, but only if you're willing to stop at 90% on purpose.

From Machine Learning

I have a bad habit of getting a new project 90% of the way there and then losing interest.

Dependencies work, GPU is detected, model downloads, everything finally runs.

Read the original at Machine Learning