I am an Android Software Engineer. Unfortunately, it's not about androids, but about Android OS apps.
Hello. I've created it. It's more about information processing, but useful to understand some communication-related stuff too. It's not finished because LW doesn't allow me to add more than five posts a day, but the main part is here: https://www.lesswrong.com/s/JsGa9AHEG3EgEq45s
I think, that sharing is like testing that your Idea is good and new.
In programming, we have a concept named "Fail Fast strategy". That means, that after some mistake program should fail as fast as possible. In ideal case - not even compile. Because the far your mistake stepping by "deploy ladder" - the more it costs. If your program does not compile then you set the wrong value to some variable - you'll pay seconds for correcting. If it was found during QA tests - you'll pay for switching from your current task to this one, because it's high-priority. If it's in production - you start losing clients.
In my opinion, the same stuff is working for Ideas. If your idea is junk - you should know about it before you've spent half of your life on it.
The situation looks like this: You have an Idea. You have Hypotheses that it's "good" and it's "new"You have two strategies:
1) Start work on your Idea only based on evidence of that you have hypotheses about "good" and "new"
2) Collect additional evidence to falsify or prove your hypotheses that the Idea is good and new.
Sometimes 1st strategy is worth the risk. For example, if you want to incredibly improve balance on your bank account. OR if your idea is a really dangerous one. OR "continuous list, there you lose something because your idea shared". In this situation, the second strategy increases the risks that someone else will implement your Idea, and that will decrease your chances of winning.
But if you don't want to make money on your idea AND your idea won't destroy the world if someone else will know about it AND "the other items of "loose if sharing" list" - I'd prefer the second strategy, because:
1. Your opinion on your Idea is biased. Communication is one of the power tools to improve your model of expectations from your idea.
2. Your Idea can be good overall, but you can be wrong in detail. Someone else will look at it from another point of view and can notice weak points, that you can fix.
3. While working on your Idea and improving it you will go far from the point where you had Insight about the idea. And the more that distance the more will be troubles about explaining that idea to other people because you will compress your long path to simple: "oh, I've been taking a shower and then realized..." The idea came not only because you've been taking a shower, but you also had a problem, you had observations, you had a path to your solution. And the more you live with your idea, the more chances that you will forget details about it. You already have a picture, there is no need for you to store data about how you've been solving the puzzle. But showing this picture to other people doesn't explain to them what problem have you been solving, and why, and how. Give your auditory THE ANSWER - and they won't get it. Giving them THE QUESTION and THE ANSWER is better but works only with some of them. But if you will give them QUESTION, and enough hints to make the path to the answer - you'll have chances to be understood. The more time from Insight - the fewer hints that helped you you'll remember.
4. As I mentioned, the more you wait - the more "Wrong Idea" costs. And most times better to look like a person that created the wrong idea than be a person who uses it. That's why I sharing my ideas about this question)
So, my algorithm is:
1) Testing my Idea for weaknesses and "the wheel inventing" by myself.
2) If it passed step before - share it.