Software Club Guide
Software clubs coordinate sharing the common costs of process analysis, software development, service provision and cost sharing within a particular domain (or area, line) of work.
Since each club addresses one domain of work, and club members work within the domain addressed by their club, each member can expect to have much in common and much to share with the others.
Sharing is increasingly beneficial, because objectives and their accomplishment are tending increasingly to involve information, and information can be shared without being given away. For organization development, dramatic improvements of provision (or reductions of cost) are available for all but the smallest number of similar sharers.
The method consists in flocking together with birds of a feather, and together extracting and pursuing common propositions. That's why each club addresses a single domain of work and gathers members from within that domain.
The following gnuplot diagram illustrates how individual costs fall as membership increases - how fast it falls depends on how much the members have in common.
Software clubs offer strategic and economic benefit on several levels. Benefit follows from a more refined analysis of the work, from the public nature of the analysis and the software licensing, from the improved level of service that is obtained, and from the increased capacity to share common costs.
The club host generally proceeds by following the operational cycle. The diagram below below indicates the steps involved in the operational cycle.
Before starting the cycle, the host researches and qualifies a proposal for the club, and then tests its viability. If the club is viable, then the host prepares to launch and begins to repeat the main cycle.
The operational cycle starts when the host invites members with a call for participation. Shortly after, the host calls for proposals. The proposals are qualified, discussed with the members, and assembled in a prospectus. The prospectus is distributed, with a call for expressions of interest.
All members expressing interest are called to agree how the proposals are to be realized. Resources are committed after agreement has been reached. The proposed work is then commissioned, with progress reported at regular intervals.
After a review, the club is tested for continuing viability. The cycle is restarted with another call for participation.
All software clubs have a name, a host, a status, and a service desk. The name of a club indicates the kind of work addressed by the club. The club host works through the stages of the operational cycle. The status of a club indicates the club's current stage in its operational cycle. The club service desk aids communication between the club members and the club host.
Members and Services
Software clubs register members and provide services. A service is anything that members find useful. Expectations for a service are recorded in a service level agreement. Each service has a status which is monitored by the service desk. Members register with the club, request services and raise issues at the service desk which works to be as responsive as possible.
The following BOUML diagram highlights the core of the club model.
Proposals for enhancements to club services are registered at the service desk. Proposals can be written by the host, or by a member. Proposals may seek to resolve a set of issues, but issues can be resolved without any proposal.
Proposals have a status. New proposals are considered to be qualified once they have been evaluated for cost and benefit, and once members have had time to make comment. Qualified proposals are progressed once they receive adequate support through the prospectus.
Clubs regularly publish a prospectus of qualified proposals, seeking approval and contributions from the members. Members approve the prospectus, agree contributions to realize the proposals, and review reports of progress.
Services are enhanced as proposals are realized, and issues resolved.
The Member View (A Quick Tour)
Each club maintains a responsive service desk, with up-to-date information about the club. The service desk makes it easy for members to become and remain involved with the club.
The club host will guide members through the following four stages in a 13 weeks cycle (the Club Schedule page shows the current timetable).
Call For Participation (weeks 1,2)
The cycle starts when the host calls for participation in the club. Interested groups are invited to join. Existing members are encouraged to invite their colleagues.
Call For Proposals (weeks 3,4,5,6)
The host calls for new proposals, and sets a deadline for submission in 4 weeks. The members are encouraged to discuss their work, and to submit proposals to address common concerns (or needs).
The members are alerted to new proposals as they are received, and are encouraged to consider them and to make comments.
A prospectus of new proposals is published shortly after the deadline has passed. Proposals submitted after the deadline will be taken forward in the next club cycle.
Call for Interest (weeks 7,8,9,10)
All the members are then invited to respond to the prospectus by indicating which of its proposals benefit them, and how much of the cost they might be able to cover.
The host sets a deadline for responses of 4 weeks from the publication of the prospectus.
Call for Agreement (weeks 11,12,13,...)
Draft agreements are issued, based on the received expressions of interest. Discussion is sustained until the costs of the proposals have been somehow shared between the interested members, but stopped if that is not possible.
If agreement about cost sharing can be reached, the members commit to contributing resources. The club host will then commission proposed work.
Proposals that cannot be shared in this way are recycled for further discussion.
Reporting on Commissioned Work
Progress of commissioned work is reported three times each cycle: just before the call for proposals; just before the call for interest; and just before the call for agreement.
The Host View (A Quick Exercise)
This exercise is a passage through the operational cycle - in miniature form. The purpose is to walk through the steps, creating an image of the routine.
Step 1: Research and Qualify Club
Name your club's domain. Think of just a hobby.
Take the name of your hobby as the name of your domain, unless there's a better name. Then, simply add the word 'Club' to the end of the name of your domain. This is the name of your club. Write it down.
Step 2: Decide Viability
Is it a good name? Will people join your club? Of course they will. Carry on.
Step 3: Call for Participation
Think of others who do the same kind of work. Perhaps make a quick list of friends who also do your hobby.
Step 4: Call for Proposals
Spot things that can more usefully be done with others than alone. There is always something. If there isn't anything obvious, first make a quick list of the sorts of things everybody is doing. Then look at the worst things. Imagine a few improvements - things that will make what is already happening better.
Ask people to help you. Give people a little time to think of things.
Decide what each proposal costs, and learn how it might benefit people.
Step 5: Publish Prospectus
Assemble all the proposals together into a prospectus.
Make your prospectus attractive (in some way or other), and distribute it to your people, asking them to contribute to the proposals that benefit them.
Step 6: Call for Interest
Ask people to say which proposals in the prospectus are useful or interesting to them. Give people a little time to decide.
Step 7: Call for Agreement
Suggest to each person a tentative agreement to share the cost of each proposal they are interested in with others who are also interested.
Step 7: Do Work
Arrange for the improvements to be made. Magic wands can help here if you don't have much time. Keep the members informed of all your progress.
Step 8: Review and Regroup
Have a nice cup of tea. Or other refreshing beverage or activity. How did you do?
Step 9: Repeat! [Optional Step]
Go around the cycle again, with more people and new proposals. It's easier second time around....
Please let us know about other related projects.
Industrial Haskell Group
The Industrial Haskell Group (IHG) is a software club for commercial users of the Haskell programming language.
The main activity of the IHG is to fund work on the Haskell development platform. It currently operates two schemes:
- The collaborative development scheme pools resources from full members in order to fund specific development projects to their mutual benefit.
- Associate and academic members contribute to a separate fund which is used for maintenance and development work that benefits the members and community in general.
Our view: This looks like exactly the sort of active sharing that we're talking about!
Manifesto for Mutual Media
Our view: The message appears to be "it's all about sharing" rather than the more common "it's all about open" - a welcome difference. At the same time we see another totalizing theory, and instead suggest that "it's all about a number of things". In particular, it's all about open, incremental, patterned, shared, adequate capabilities to do analysis, development, provision, and coordination. Check our Approach page for more information.
"Social Sourcing" for PloneGetPaid and eduCommons
Our view: This looks like exactly the sort of active sharing, sympathetic to and coupled with other modes, that we're talking about!
APC Guide for Multi-Stakeholder ICT Partnerships
Our view: The sections on "What are the guiding principles for multi-stakeholder partnerships?" and "How do you drive a multi-stakeholder process?" are of particular interest.
Cofundos helps to realize bright ideas by providing a platform for their discussion and enrichment and by establishing a process for organizing the contributions and interests of different stakeholders in the ideas.
Our view: An encouraging project. Appears neither to use domains to precipitate clusters of interest nor to be oriented towards services. Perhaps that's why the registered proposals appear to be a scattering of mostly unrelated features?
The CriticalPractice group at the Chelsea College of Art and Design have published budget guidelines for open organizations.
Our view: Interestingly they suggest to organize resource allocation around clearly articulated tasks, services, needs, specific people, goods or projects. Appointing a resource coordinator is recommended in these guidelines.
United Nations (UNESCO) Multi-Stakeholder Partnership
This consultation seems to be interested in volunteerism.
Our view: Volunteering mostly doesn't put bread on the table. ;-)
Related Academic Work
The term 'club' is predominantly here an economic term. Recent economic literature both expects markets to fail in respect of optimally providing semi-public goods (such as appropriate software services) and suggests clubs can offer a remedy to their failure.
Whilst we take the name 'club' from economics, in the first instance we were following the tendency towards multi-stakeholder software development within engineering.
The economic narrative refers to the positive externality which semi-public goods present. Without co-ordination there is an under-provision of the goods because taking an easy ride on the productions of others is the best position for each individual. Organizing a club involves establishing exclusion of benefits to non-members.
From an economic standpoint, appropriate software clubs work because non-members are excluded from securing suitability of the software for their particular working process. That is, it isn't necessary to identify the code license as an exclusion mechanism, so clubs can work with open source.
One challenge of developing a system for multiple stakeholders is maintaining conceptual integrity. Model driven approaches, such as domain driven design, are being used to support a ubiquitous language for the domain of work and the system functionality.
This paper discusses how model driven approaches can help involve multi-stakeholders in software development requirements work. The problems of having many model editors, such as merging and showing model differences, is discussed.