From One Delivery to a Product.
Turning one client's solution into a product is hard not because of abstraction, but because of deciding which specifics deserve to survive.
Ask AI
One sample does not support induction.
The first client teaches you that the work can be done this way. It never tells you the work must be done this way. That difference only appears with the second and third.
So before the third client, allow obvious special cases to live in the code. They are ugly, but they are honest: they record exactly what you do not yet know.
Two sources of specificity.
Some specificity comes from the industry. Production scheduling in manufacturing really is harder than in retail, and switching companies will not change that.
Other specificity comes from history — a field is named that way because of a migration ten years ago. Keep the first kind. Drop the second the moment you meet the next client.
Config flags are not a cure.
When you cannot tell whether to abstract, it is tempting to expose a setting and let the client choose. That looks flexible. It actually hands the judgement to the person least equipped to make it.
Every flag adds a branch to test and a page to maintain. Real productising is subtraction: work out which way is right, then offer only that way.
— Discussion
GitHubComments.
Comments are powered by GitHub Discussions. Keep the conversation focused and respectful.
Comments did not load this time. Refresh to retry, or join the discussion directly on GitHub.