Competitive Collaborative Specification of GUI Applications through User Test Cases and Merit-Based Conflict Resolution

Now that we have considered how users can help each other avoid bugs in GUI applications, we would look to think about ways in which users can have more control in software development.

One idea is to develop a system to help millions of users collaboratively build and evolve a specification for a GUI app.

For example, how would a million users specify a paragraph formatting dialog box?

How would a million users specify the behavior of the cursor in a scientific word processor with math formulas, tables, etc.?

Some issues:

  • users may not agree; CollaborativeRank might help
  • users can build the GUI (a partial spec) using something like Qt designer and their combined work can then be used by the developers directly; issue: how to automatically combine their suggestions into a coherent GUI?
  • non-standard GUI elements (e.g., the main view of a scientific word processor), the specification by users can't be used directly; but it probably should be visual and should be something that can be mixed with a running GUI app (e.g., as a visual placeholder for something that is not implemented yet)
Some connections to existing ideas:
  • extreme programming: we could have users develop higher level visual test cases (e.g., before/after images of cursor movement); developers could then compete to satisfy those test cases; How do you automate a visual test case? Is machine learning helpful?
  • intentional programming: like IP, we can focus features; application boundaries may be nebulous; perhaps we could have automated forking and merging of applications
  • wikis: this is sort of like a wiki with visual placeholders for non-implemented parts
Is any of this novel?

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

You can already see what happens...

...when you allow millions of people to design a font.

There are successful examples

There are successful examples of collaboration also (e.g., wikipedia). Also, with CollaborativeRank, not everyone has an equal say. In any case, I think the question might be worth exploring.

What's it like if you run sha

What's it like if you run sharpening filters on it?