You&#x27;re thinking about it wrong. Don&#x27;t think of it as &quot;prototyping&quot; or &quot;just works&quot;. If it just works, you&#x27;re done, there&#x27;s no need to rewrite it to make it enterprisey.<p>What about it needs fixing? If it works for 100 items but not a million then fix that. If it works but is difficult for others to change the code, rearrange things until it&#x27;s clearer. If it works by using some weird 3rd party dependency that wouldn&#x27;t be easy to deploy and update, just remove that dependency, etc. If it works but you don&#x27;t have an easy way to build or deploy it, then work on the build system. If it&#x27;s buggy, fix the bugs.<p>Don&#x27;t make things more abstract just for the sake of abstraction. Don&#x27;t add message passing or enterprise logging just because they&#x27;re enterprisey. Ask what problem you are trying to solve by adding these.