A better, structured brainstorming approach does the following things:
- Uses concise wording.
- Uses symbols and pictures, avoiding prose, when appropriate.
- Breaks out levels of detail into separate groups. Programmers should be adept at this.
- Lays out ideas to facilitate reorganization. One reason electronic brainstorming is very powerful.
- Gives multiple "entry points" for re-examination. If your brainstorm requires reading from top to bottom to make sense, then it's not as good as it can be. More entry points mean more opportunities for additions and updates in the future.
As an example of #3, breaking out levels of detail into separate groups: if a server needs to generate a token and send it to the client as part of some process, that's all I need to say for the top level. How the token is generated may belong to a different level of detail. Writing both together muddles the intent, and makes the notes difficult to read.
That's all I can think of now. If you have more suggestions, let me know.