(A research project and global conversation led by Mel Conway)
My search for a new approach has led me to thinking about building applications, not from what is particular to software development, but from what is universal to humanity.
Over the span of human history the understanding of three important technologies has migrated from the domains of priests to the domains of elementary school teachers: arithmetic, writing, and the calendar. Now software technology must join this migration. To take a first step in this direction, two changes must occur:
We must find a way for people to think about and build interactive applications that will be, in a word, humane.
We are still in the very early stages of this work. But we invite you to join the conversation via the #HumanizeTheCraft hashtag on Twitter.
Programs are living documents that look and feel like the application they implement, with no "source/object" duality.
Development tools and applications are peers, with seamless integration between the two.
Whenever a new component is introduced into an application, it is already running.
Every change you make is immediately reflected in the running application.
No surprises. Small changes lead to predictable outcomes.
It feels as if you have your hands directly on the working material.
You are in an easy dance with the tool and the working material, like a child playing with a construction toy.
You can undo your most recent changes and easily revert to a previous state.