#HumanizeTheCraft

(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:

  • The conceptual model that people use to think about the internals of interactive applications must change to something more intuitive than coding.
  • The process of building applications must be redesigned to take full advantage of the human hand-eye-brain system, rather than staying rooted in abstract, disconnected thought.

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.


We imagine a world in which software construction tools are...
  • Unified

    Programs are living documents that look and feel like the application they implement, with no "source/object" duality.

  • Symmetrical

    Development tools and applications are peers, with seamless integration between the two.

  • Always On

    Whenever a new component is introduced into an application, it is already running.

  • Immediate

    Every change you make is immediately reflected in the running application.

  • Predictable

    No surprises. Small changes lead to predictable outcomes.

  • Transparent

    It feels as if you have your hands directly on the working material.

  • Interactive

    You are in an easy dance with the tool and the working material, like a child playing with a construction toy.

  • Reversible

    You can undo your most recent changes and easily revert to a previous state.