Sygn System UseCases
We'll collect use cases for the Sygn System infrastructure here. The project's inspiration comes from the
Free Software Service Networking
The Problem
While free software, and open source development methods have proven themselves capable of developing great software and technology that has a profound effect on the direction of technological development and an equally important effect on the users who use open source software and systems on a day to day basis.
Nevertheless it's true that in some cases, open free software, has a hard time competing with proprietary software. This is due to a myriad of factors:
Free software is generally developed to "scratch an itch" of the developers of the software. This means that the people who are writing the software care a lot about the problem they're trying to solve (this is a good thing,) but it also means, that in situations where the users of the software have (an even slightly) different set of needs, the free software is sometimes comes short in terms of functionality for those users.
Free software has often "won the long fight," but suffered in short-term fights, because the initial development time lines are longer. Proprietary software, supported by venture capital and software licensing fees can often take a concept from a basic design to an implemented application much more quickly than it takes an open source development team to get a project off the ground.
Users of software, particularly "desktop" tasks ranging from media production (image, audio, video), to word processing, and "Office" functionality, are accustomed to very widely deployed proprietary applications. The previous two issues not withstanding, the adoption of free software is hindered by experience as well as extant habits and workflows.
If the wide adoption of free software is a goal of free software and open source developer community--as I believe it is--then these issues must be addressed.
There must be a way to compensate developers of Free software for their work, particularly in the development of features intended for "end users."
There must also be a way to distribute resources--both infrastructural and economic--to support projects without the mediation of commercial interests. While commercial support for free software is absolutely essential; for corporations and businesses it's difficult to separate the desire to spread free software from the desire to increase customer bases.
Finally there needs to be emphasis placed on "user centered" (e.g. cyborg) work that isn't custom programing. Free software developers and supporters need to work to develop workflows, strategies, documentation, and trainings for people who might use free software. These "cyborg" developers need to work with the software developers and users, to study software, and workflows, and help support the people who use--or might use--free software, work more effectively.
Often these kinds of "support projects" are either delegated to commercial organizations and sponsors of free software, or their absence is excused by lack of attention or human resources. While these are both valid responses neither address our core concerns.
Corporations which provide support for free software seem to be primarily guided by maintaining the size of their customer base, and by targeting large groups of users, usually institutions and enterprise. While this has its place and is of great value, I am not convinced that the support-centric businesses can scale into profitability sustainably, nor am I convinced that support-based businesses can scale down to address the needs of smaller groups of users and independent freelancers, and other likely free software users.
Secondly, I'm not convinced that a lack of human resources is the problem we're encountering above. There are a great number of developers, contributors, documents, and users of free software and open source software who are all very committed to sharing and enabling the proliferation of open source software. The issue that we see is that there is currently no easy way for people who are interested in using open source software, but don't have experience with that software to connect with people who have experience: training, modifying, extending and developing for that software. Free software has many potential users many proponents, and few tools to promote communication and collaboration between these groups.
Furthermore I don't think that the problem of limited free software adoption is the result of a lack of money/capital or a lack of viable opportunities for developers. Computer users (individuals and companies) regularly spend vast sums of money on software, software that is not free or open source.
The Requirements for a Solution
This problem, even when broken into the above constituents, represents one of the largest problems facing the larger free software community. And the solution to this problem is far from straightforward.
What I propose--to develop a way to match the people who need free software services, with the people capable of providing them--is but one solution that will contribute to the larger project of proliferating and improving free software.
Nevertheless, I have identified a number of requirements or goals for this project:
The system must be distributed: no company or individual should be responsible for certifying the validity of or authenticity of any or all developers and service providers.
The system must be both larger than any one project, as the proliferation of free software is the responsibility of the entire community; and project specific, as service providers need to be able to define specialties on the project and sub-project level.
The project must allow developers and providers ultimate control over the information they present regarding their specialties and availability.
The project must be able to incorporate and provide information about reputation, authenticity, and relevance to potential clients in an intuitive and transparent way.
The Wrong Solution
The free software community does not need a "social networking site," or an established authority to connect potential users of open source with developers and service providers. These possibilities currently exist in various and numerous forms and, as of yet, have not produced the desirable results. Therefore, we know that the solution to this problem is not:
A company that seeks to provide enterprise grade support and services for Open Source and Free Software. (eg. Red Hat, Sun Microsystems, Source Forge, IBM.)
A website that serves as a virtual bazaar for matching freelancers with consumers of freelance services. (eg. elance, oDesk, etc.)
An open-source themed social networking site.
The Hacker's Solution
Given these requirements and realizations, and given that the ultimate goal of this project is to "bring people to Free Software," I think the best solution to this problem would be one that displays the strengths of free software, and one that developers and "free software people" would be interested in, and would leverage as much existing free software technology. Therefore the following elements seems ideal candidates for inclusion in this project:
A system for tracking and identifying authority based on a ?web-of-trust model, likely by way of GOG/PGP key-signing. Ideally, this will be fairly transparent to end users.
The publication of aggregate/federated data should be separated and independent from the publication of individual data.
Projects (and individuals) should be able to benefit from this system, by compiling/curating aggregate data about service providers targeted to their audience.
Indeed anyone should be able to generate aggregated lists of potential service providers or records, and filter this list in a way that creates value for their specific audience.
Individuals should be able to update and have full control over their records, while everyone should share shared control over the aggregate data.
I realized when I envisioned these requirements that I had basically sketched out--as you see below--the loose framework for a distributed social networking protocol. While the solution described does serve the problem outlined, I can imagine this kind of distributed "social networking database," fulfilling many other related problems.
Your Use Case Here
I'm quite interesting in thinking about what else would be possible with a system like this. Some basic ideas that could be fleshed out:
Distributed content management systems. Provides a simple way for groups to contribute to a content system/knowladge base without needing to create fussy interfaces.
Other distributed "database," systems could use the same technology to acomplish systems that might look considerably different from what I've described above.
Job boards for posting RFPs and requests for services. Also a more formal Sygn Resume service
-- tychoish (we can break this into multiple pages as we need to.)
Links: externaldiscussion sygn
Last edited Mon Sep 7 11:06:16 2009