Today the missing piece of the puzzle, the backend of blank.page was provided by a really talented fellow. He suggested that we migrate to webpack and transpile and lint and… No. Not at this stage, not at this time. Just let me store and retrieve json data, dev workflows be damned.
Should we use a standard dev workflow, every change would take a couple of seconds to recompile. When you are designing with code this trade-off is unacceptable, if you have to wait five seconds to test a 100ms transition duration change, the wait makes it impossible to assess which option is better because you don’t experience the options sequentially in time. You write code, you wait, you see its effects, you change the code, you wait, you see the effects. When you work with instant feedback you code, you see its effects, you change the code, you see its effects. What’s a five second wait? the experience dev asks, but truth is when we experience gaps between events we face difficulties comparing them.
This is acceptable when you know exactly what you are building. If I had a visual design, a functional spec and unit tests, it would even be a good idea! But blank.page has none of that. We freestyle a great deal, and it’s plenty of fun.
But I also know that—if things turn out right—devs will collaborate in the codebase, and I will have to break apart my neat little workshop in order to make way for a production line where features are clearly defined and designed. I will break my flow hunting code style violations and debugging npm dependency shitstorms. In the past I would have thought I was incompetent, now I know it’s a different way of building.
An industrial designer builds a chair in his workshop with the intention of mass producing it at a factory. The technique he uses to build the chair is completely different than what happens at the production line because he is exploring form and function. He may build the seat, sit on it, and decide it needs a different filling. He changes the seat, sits again, and decides it’s nice and fair. Let’s say the same happens with the backrest and the legs. When he has settled on the form, he then produces a document which allows it to be built at a factory.
The fact that the designer enjoys building a chair in his workshop does not imply that he will enjoy assembling his creation on a factory line. The parallel should be understood by creative developers: most devs can put things together, not many devs can build from scratch. Their time is best invested creating blocks rather than putting the blocks together. Most dev work is information age factory work and creative souls suffer greatly because of this, they get into coding because it’s fun but then they discover that the industry has made coding frustrating.
Would it be possible to share a workshop with another person? Yes. But scaling into a factory should only happen at the right time. When is the right time? When the workshop proves to be so uncomfortable that a bigger, more organized space becomes appealing.
Meanwhile, I will continue having fun in my little workshop.