Years ago I had the fortunate and frustrating experience of working with Charlie, a hardware and software developer of much experience.
Charlie told me of a guideline he used which I have found to be quite valuable over the years, and accurate too. I have taken to calling it Charlie's Law.
Let's say you're writing code that makes some work function much easier, or you develop some gizmo that's really cool and you want to spread it to your group or create a marketable product. It only took a day, a week, maybe a month to get it working pretty well for yourself. Call this one level of effort.
To put a little polish on it, get away from quirky steps that are difficult to explain (but you understand completely) to show it to a few coworkers will take about three times the level of effort. If it took one day to make something you were happy with, it will take three additional days to move it up to level two.
Showing a few close coworkers your problem went well or your gizmo was well received by your close friends, so now you want to present it too a bigger audience – your whole work group or people to review a potential product. Now the program has to shine. No unexpected problems. A good looking product in final from. Instructions and documentation. Charlie says three more times the effort of level 2 to get to level 3; nine units of additional effort to reach the next level, and 12 units more than it took to start with.
I'm going to extrapolate from what Charlie explained to me. The product level, ready to ship. Polished to a high degree. No errors. If it's hardware, plans for manufacturing in small to large quantities, packaging, user's manuals, the list of details is long. A million details to settle. Charlie's factor of 3 is a starting point, but a bare minimum in my experience. So to go up to this level, it's at least 27 units of additional effort from level 3.
This just covers "the thing" and not the business requirements supporting "the thing."
I've found Charlie's Law mirrors reality pretty will. I'm curious if others have similar experiences.

Charlie told me of a guideline he used which I have found to be quite valuable over the years, and accurate too. I have taken to calling it Charlie's Law.
Let's say you're writing code that makes some work function much easier, or you develop some gizmo that's really cool and you want to spread it to your group or create a marketable product. It only took a day, a week, maybe a month to get it working pretty well for yourself. Call this one level of effort.
To put a little polish on it, get away from quirky steps that are difficult to explain (but you understand completely) to show it to a few coworkers will take about three times the level of effort. If it took one day to make something you were happy with, it will take three additional days to move it up to level two.
Showing a few close coworkers your problem went well or your gizmo was well received by your close friends, so now you want to present it too a bigger audience – your whole work group or people to review a potential product. Now the program has to shine. No unexpected problems. A good looking product in final from. Instructions and documentation. Charlie says three more times the effort of level 2 to get to level 3; nine units of additional effort to reach the next level, and 12 units more than it took to start with.
I'm going to extrapolate from what Charlie explained to me. The product level, ready to ship. Polished to a high degree. No errors. If it's hardware, plans for manufacturing in small to large quantities, packaging, user's manuals, the list of details is long. A million details to settle. Charlie's factor of 3 is a starting point, but a bare minimum in my experience. So to go up to this level, it's at least 27 units of additional effort from level 3.
This just covers "the thing" and not the business requirements supporting "the thing."
I've found Charlie's Law mirrors reality pretty will. I'm curious if others have similar experiences.
