Technical Collaboration Guidance/Private planning

Transparency is an important value and principle in the Wikimedia movement, including software development. Transparency fosters collaboration and discussion, distributing responsibility for success to all of those working on a particular project. With this in mind, the stages of the product development process must be as transparent as possible in order to facilitate the process itself.

Writing in public places
There is nothing wrong with private discussions about ideas. Privacy is often important when an idea is at its infancy, so that the thought can be developed and presented with minimal distraction. That being said, once an idea or a discussion turns into a meeting or meetings for further pursuit, you have likely entered the product development process. It is important at this stage that if things are being written down, they begin to be shared in a public venue. In this sense, documentation can mean tentative plans, meeting agendas and notes, or early technical specifications.

At this point it is important to begin public documentation because it is likely the product is now in stage one, "Understand", where the problem that is being solved is defined, and previous attempts to resolve the issue may need to be reviewed. Shifting or beginning work in a public space at this point, allows for the opportunity for collaboration with volunteer developers and community members. These stakeholders likely have a definition of the problem and institutional memory of past attempts at resolution, and can make the product development process work much more smoothly from the start. To make things even easier, strive to document everything you do not understand yet, as well as what you do understand, and to put forward for discussion any potential negatives and drawbacks as early as possible.

In short
Loosely speaking, once a product is being more than just discussed casually, it's time to start writing things down on a wiki. Documentation will inform others, which will enable people to collaborate on the project.