World's largest organism
Armillaria is the code name for a software project that aims to grow a fully distributed social reputation system.
Armillaria is a scale-free unifying construct of a directed, weighted, contextual semantic network that connects humans, their mental models, and their artifacts to enable swarms to reach collective decisions and solutions, based on ever evolving mutual social reputation.
Armillaria is not unlike the blend of Google's page ranking, eBay's marketplace , Orkut's social network, and the tagging power of Flickr, del.icio.us, and Technocrati.
You are kindly invited to develop a working prototype of Armillaria in the form of an extensible and well-documented library of Java packages that are, in turn, used to implement a small elegant and vibrant, yet to be specified, "serious game" that behaves like a self-organizing and self-healing ecosystem.
Emergent decision making in a web of trust
How do you balance individual equality and the collective good? How do you reach collective decisions in a fair, distrubuted, and bottom-up way? How do you aggregate individual preferences into collective mental maps? How do you multiply the power of top-down designed common vocabularies with the power of bottom-up "folksonomy"? How do you make sure that the system evolves over time and continually adapts to the current situation? So called stigmergency (on July 1st, 2006, Google only listed 23 results for the term "stigmergence").
Trust is key here. And trust relations are more accurate if they are domain specific. You can trust Mary's knowledge in the domain of diabetes, but don't ask her anything on cars. Trust is a measure of similarity of thought between two individuals within a particular domain. Weighted votes in a web of trust form a holographic model of the whole population.
Armillaria is a stigmergent system that determines the entities and relations in a particular semantic network data structure instantiation. Contained within any instantiation is a set of humans, their domains, their problems, and their solutions. Armillaria helps establish and evolve trust relationships between its members by providing the framework for aggregating perspectives. The Armillaria framework supports the full range of dictators and despots and fully social network based representative democracies.
Application areas are plentiful:
- Collective decision making;
- Co-creation of product features;
- Ranking of scientific publications and their authors;
- Moneyless payment system for barter deals;
- add to this list, please…
Feel free to read about The Wizard, the Rabbit, and the Treasurer to get an extremely raw feel of Armillaria's behaviour.
At the end of this fun project, we will have a party and look back at an exciting half year of work. We will evaluate what went well, what can be better, what we have learned and what still puzzles us. And we will celebrate our successes and have fun before we'll go off on our next challenge.
Armillaria will be launched at the end of the project. Journalists, investors, colleagues, friends and family will all gather and be touched by some great new original Dutch software.
The vibrant and agile software development process is characterized by a continuous flow of development sprints kicked off late summer, 2006.
The Proof of the pudding…
…is in the eating. So, the first release of the product will show:
- Working, tested, integrated smooth and silky working prototype that works as advertised:
- Proven resiliency against sudden or unexpected disruptions in data collections;
- Excellent online and offline behaviour;
- Never losing data;
- Available on current PCs, Macs, PDAs and mobile phones;
- Self-organizing and self-healing.
- Product website (public);
- Foundation for user ecosystem:
- Comprehensive user manual as Wiki;
- User community process to collect feedback and requests for enhancements.
- Foundation for software ecosystem:
- API specification (javadoc, when applicable);
- Sample code for demos;
- Compatibility test suite;
- Developer community process.
- Predictable personal and team velocity;
- Life-like personas;
- Steady release rhythm;
- Eating our own dogfood.
Unfolding Smart Software
The basic technology requirements are:
- Java 5 platform;
- RDF (or better) for all externally visible data;
- RDF (or better) for wire protocol over JXTA;
- JXTA for peer-to-peer communication;
- Protocol-centric as opposed to API-centric;
- Open Standards only.
Fully distributed. No central servers by design, only by emergence.
Agile Software Development
AardRock is fan of agile software development like eXtreme Programming and Scrum and wholeheartedly adopts the Agile Manifesto. Most valued are:
- Test-Driven Development
- Continuous Integration
- Customer On Site
- Daily Scrums
- Weekly Planning Games
- Big Visible Charts that track progress
- Regular Temperature Readings
Tools & Instruments
You will be using fine tools and instruments like:
- MediaWiki wiki for all documentation and discussion;
- WordPress weblog for blogging, for messages on personal, project, and company level;
- SubVersion for version and revision management of source code;
- Maven and/or Ant for automatic builds and continuous integration;
- Eclipse for development environment;
- Mantis for bug, feature, and feedback tracking and resolution;
Incremental evolving requirements
Requirements and specification will flow in during the project. There will be no detailed and complete set of specifications available at the beginning of the project. This is for the simple reason that we don't want to build YAGNI ("you ain't gonna need it") functionality. The project will not build the system, it will grow the system.
Open Source fuels Innovation happens elsewhere
The deliverables of the project are intended to foster both a healthy user and developer community. Therefore, all software, documents and intellectual assets will be released as commercial open source software. Open source, open APIs, open data formats, open standards, and open minds help grow the developer community. And a fair commercial licensing scheme eases adoption with users while securing a solid revenue stream for evolution into the distant future.
As you will be the original author of parts of the effort, you will retain your rights of authorship of these parts. At the same time, you will grant AardRock a perpetual, non-exclusive right to use any or all artifacts and intellectual assets developed and shared with AardRock and its team during the course of this project.
AardRock uses the Creative Commons Attribution-NonCommercial-ShareAlike as its primary license.
AardRock will pursue close collaboration with other disciplines who excell in the field of product strategy, identity, branding, interaction design, usability, marketing, sales, and customer care. Maximal cohesion and minimal coupling between the various teams of expertise will be the key approach to secure autonomous parallel activities across teams in a symbiotic way. The various disciplines will help, augment and embellish each other.
What you can expect from AardRock
Passion, energy, involvement, committment, dedication, inspiration, attention, time (≥ 1 day/week), joy. We expect this to be reciprocal.
Roles: customer on site, coach, mentor, wise fool, inspirator.
AardRock is all about PEOPLE | SOFTWARE | HAPPINESS.
Please contact Martien van Steenbergen for more information.