Taking the principles of building open source software identified by Eric S. Raymond, I applied them to my idea of building an adventure playground for grown ups. Here are the results:
1. Every good work of software starts by scratching a developer’s personal itch.
Going to a gym is boring and the advertising for gyms is looks-related, rather than feeling-related. I would like a fun place to play in (specifically an adventure playground), with a by-product of getting fitter, with a community feel to it.
2. Good programmers know what to write. Great ones know what to re-write (and re-use) – it’s almost always easier to start from a good partial solution.
I came up with three options:
It could use a derelict building – the playground equipment could be something that can fit into any building and each installation will be unique because it responds to the building’s physicality.
It could be built on land, as a ‘permanent’ structure, from biodegradable rubbish, using natural build techniques.
It could be an art installation that tours in an unusual vehicle that transforms into something bigger than imagined and kickstarts the imagination of those who enter (a yurt or it could be a different structure in each place built from what is available). I’m influenced by the following on this option:
- The Imaginarium of Dr. Parnassus (Terry Gilliam, 2009)
- Wicked (Gregory Maguire, 1995)
Researching Wicked turned up What-the-Dickens: The Story of a Rogue Tooth Fairy by Maguire. This quote is included in the description: “when the real world seems unbearable, stories told by candlelight have a way of coming true”. This made me cry. Wonder Land was originally based on all my favourite childhood stories (from Blyton and C.S. Lewis, for example), which I used to escape from the ‘unbearable world’. This led me to thinking Wonder Land could be a play about a woman building and adventure playground for grown ups, who realises, in the process, it’s another way of trying to escape reality.
3. Plan to throw one away; you will anyhow (you learn more by starting over).
In number 2, two are ‘permanent’ structures and the third is temporary or on tour. Which of these will be thrown away?
4. If you have the right attitude, interesting problems will find you.
Curiosity? Open-minded? What is the essence of Wonder Land?
5. When you lose interest in a program, your last duty to it is to hand it off to a competent successor.
This doesn’t seem relevant right now, aside from: if it is a touring exhibit, what happens when it finishes touring? Burn it? Sell it? Give it away (a la Charlie and the Chocolate Factory)? Keep touring forever?
6. Treating your users as co-developers is your least-hassle route to rapid code improvement and effective debugging.
Sally Potter did this with Ginger and Rosa (2012) – she kept a blog and took note of what the public wanted during the filming process. It was an okay film. Not her best. Who are my users?
Online: I could send an email/text telling people I know (on Facebook/blog/google contacts) about Wonder Land and asking if they would like to be involved/kept informed/know of other people who might be interested. They would need to do something (ie. reply or click onto a survey or something) to show their willingness, therefore I might have few responses but the ones I have will be willing.
Local community: If it was a local build, I could contact the council for help and advice. I could write a letter and post it through all the doors of my building, and those nearby, asking people to contact me if they’d like to be involved. The letter could state: we will not ask you again – we trust that if you would like to be involved (how? what, specifically, can people do?) you will respond to this request.
Local charities: I could contact charities like Survivors Network, Rise, and Oasis, for example. It could be a project that builds, as well as the playground, a sense of togetherness, working for something bigger than ourselves, empowerment and safety. In hindsight, these things may be lofty ideals, but they may be good things to write on a funding application. I could write to the ‘right’ person at the charity and ask them to contact me if they could see this working.
Change the future: I know a couple of guys who have obtained some office space at Prestex House, near Preston Park, and they are using it to have discussions about social structures with a view to creating an online platform for people to create their own projects that change the things that don’t work. I could go there and talk to them about this – there is potential to hold an event there for people to come and get involved in building Wonder Land – could use Open Space Meeting technology.
7. Release early. Release often. And listen to your customers.
Sally Potter also did this one by updating her blog regularly and inviting feedback/suggestions. I could update my blog and feed it to Twitter/Facebook (which I already do); write a paper newsletter and post it; have regular meetings.
8. Given a large enough beta-tester and co-developer base, almost every problem will be characterised quickly and the fix obvious to someone.
When a problem arises, communicate it to everyone involved and ask for solutions.
9. Smart data structures and dumb code work a lot better than the other way around.
Smart data structures – flow – how does this work? Something to be worked out immediately before the build.
10. If you treat your beta-testers as if they’re your most valuable resource, they’ll respond by becoming that.
Gratitude for everyone involved. Lots of thanking.
11. The next best thing to having good ideas is recognising good ideas from your users. Sometimes the latter is better.
This feeds into regular contact with ‘users’ and asking for feedback and suggestions.
12. Often, the most striking and innovative solutions come from realising that your concept of the problem was wrong.
What is the concept? What is another way of looking at it? And another?
13. Perfection (in design) is achieved not when there is nothing more to add, but rather when there is nothing more to take away.
What can be taken away?
14. Any tool should be useful in the expected way, but a truly great tool lends itself to uses you never expected.
Aside from the fact that anything can be used in more than one way, what are the unexpected uses of building/using Wonder Land?
15. When writing gateway software of any kind, take pains to disturb the data streams as little as possible and NEVER throw away information unless the recipient forces you to.
Systems and processes. When someone shows an interest in being involved, their contact information and how they’d like to help must be recorded somewhere – a spreadsheet?
Sustainability. The principle seems to be a good metaphor for a healthy ecosystem – the environment is treated with respect and everything is re-used. This is a basic principle of Wonder Land.
16. When your language is nowhere near Turing-complete, syntactic sugar can be your friend.
When describing Wonder Land, without knowing how it will be when it is finished, use — no. I don’t agree with this. Research or collaborate and reflect and communicate until understanding is reached and agreeable.
17. A security system is only as secure as its secrets. Beware of pseudo-secrets.
18. To solve an interesting problem, start by finding a problem that is interesting to you.
Problem: how to build an organisation/community that exists outside of capitalist ideology whilst existing physically within its boundaries?
19. Provided the development coordinator has a medium at least as good as the internet and knows how to lead without coercion, many heads are better than one.
Use the internet to ask for help and ask in ways that allow “no” as an answer.