When I code at home, I typically do it in weekend sprints. I first come up with an idea. Then I spend weeks baking that idea in my head. Then I put the design and some pseudo-code on paper. The next step is about figuring out what external libraries I would need and I spend time getting familiar with them.
Then one weekend I basically decide, it is the time.
That’s when I sit down in front of my computer and code the initial version of the code in a weekend sprint. Then over next few weeks, I will spend an hour here and there and try to make the code a bit cleaner so it is worthy of being used as a POC. Then after using my application/code for some time, I would start thinking about the reuse and investing time into areas that will definitely make it enterprise-worthy. Why wouldn’t it work for some companies with minor adjustments to cycles and timings?