Today most software developers create their code directly, often from beginning to end, all with individual people's experience guiding the design process from start to finish. There are a few shortcuts like code libraries that can be shared between projects, but generally, one person will be imagining, creating, and completing each application with a single set of hands, which can take large amounts of time to complete larger projects. Compared to the world of commerce and industry, it is very much a pre-industrialized, craftsman's trade, despite all modern appearances.
The benefits of industrialization are vast and diverse, but in the case of programming code, industrialization would greatly speed up the time it takes to create software while lowering the costs of doing so significantly.
Famous mathematician Douglas Mcllroy wrote volumes about how we'd modernize and industrialize code development in the future, a subject he calls “software componentization.” His first book on the subject was published in 1969, but programmers who follow his work to this day still find that making an assembly line out of the software coding process, at least on any large scale, proves to be very hard to pull off. Not only is it problematic to make software components from different authors speak the exact same language to each other, but finding a way to structure fair rewards and payments for the different developers involved has proven too difficult as well, at least until now.
Australian technology entrepreneur and Bitcoin advocate, Noel Lovisa, founder of Code Valley, claims to have a full solution to the industrialization problem. He had the basic idea for the platform as early as 1994, and then incorporated Code Valley in 2000. However, it wasn't until after discovering digital currency in 2011 did Lovisa figure out what he needed to do make the vital payment structure work. A “software supply-chain," he said, "fueled by a Bitcoin blockchain, would make a dangerous combination.” It led him to make major changes to his long-running project, adding bitcoin as the primary payment channel by 2013. In late 2015, he and his team had put together a working platform that uses bitcoin as a fluid payment mechanism for all micro-tasks, solving the fair rewards and payments problems completely.
“We propose to shift developers from the ‘code-domain’ to a decentralised peer-to-peer network operating wholly in a ‘design-domain’, where engineers now co-operate to make design-contributions. This shift offers a viable medium for capturing their special capability in a product, thus preserving prospects for repeat business, and ultimately reinstating specialisation. With its most vital basis restored, McIlroy’s long-awaited industrialisation of software can begin.”
- The Code Valley whitepaper
In January, the team used an early version of their system to very rapidly produce their own website. Upon arrival, it proudly tells readers that their machine is currently executing software built using this technology: “To build this website, we simply engaged the supply-chain with our requirements. A few minutes and 512,278 contracts later, an executable was returned to us; a webserver (including the JS now running on your machine).”
Why so many contracts to build one small business website? The way Code Valley is designed is for each task to be broken up into sub-tasks, and each sub-task to be broken up further into sub-sub tasks and so on down to the most basic level, several levels deep. Most of these levels are totally automatic, with humans taking care of tasks at the top-most levels of work, where they can flex their creative input.
On the bottom level, each tiny task would be a single, specialized action like 'create account' or 'paste text here,' which can easily be carried out by a program. The layer above that commands many on the bottom level what to do and in which order. It continues this way, all the way up to the 'Principal,' which “is a software program that is an expert at capturing requirements and translating these into contracts to the supply-chain.” It's how the human requesting the job enters the specifications. Given all of the levels involved, the many tasks done side-by-side in this manner can easily add up to over a half million 'contracts,' and yet still all be completed in a few minutes.
To update their website, they can simply open up their Principal, make the tweaks where appropriate to the project file, and have it export another finished version of the website from scratch, including the web server and everything generated the first time. During normal operation, the principal will require a bitcoin payment, and then “pay” all of the human nodes below it for their fair share out of the original payment, automatically. Before the invention of cryptocurrency, this payment structure simply wasn't possible.
Already hailing it “Bitcoin's killer app” in front of audiences at FinTech Week, Noel and his team have heard a full range of responses from those who are madly in favor of their project, to programmers who are highly defensive against it.
A post about Code Valley at developer community Slashdot last September ruffled many feathers, with 68 comments all against the idea, such as “writing significant software is managing complexity. No amount of syntactical sugar can hide this” and “No No No! A thousand times NO! Software is a service sector, not manufacturing.”
Since that time, the software has created their website, and a January follow-up Slashdot post referred to the first one, telling them about the website. It has received no replies at all.
Earlier this week, Lovisa and his team have officially launched their “Whitney” version of the platform, named after Eli Whitney, inventor of the Cotton Gin. It's a closed-beta version, but anyone can ask for an invitation on the website's homepage. Throughout this phase, and the two that follow, they will continually be encouraging developers to sign up as “vendors,” bringing their specialized skills into Code Valley and become part of the matrix that can produce any software in time.
To begin with, however, there is a learning curve for vendors, so getting started as soon as possible is a good idea for those looking to earn a bitcoin income. “At present, we are in a phase of education, and welcome interested developers to join the conversation,” the website explains. Soon, however, it promises to pay vendors in bitcoin for working on their specialty within the system.
“Upon capturing requirements, these vendors swiftly carry out their design (in exchange for bitcoin) to satisfy these requirements before returning their filled construction-site portions to their client – simple.”
- Code Valley
As more coders migrate to 'the valley,' the efficiency of creating software with it will continue to grow, according to Lovisa: "[Code Valley is] the first development process of its kind capable of approaching optimal software solutions. Current methods will find it difficult to not only keep up on the productivity front, but will be hopelessly outclassed on a technical front as well, making this technology very competitive indeed."