Froebel’s Gifts were meant to be given in a particular order, growing more complex over time and teaching different lessons about shape, structure and perception along the way. A soft knitted ball could be given to a child just six weeks old, followed by a wooden ball and then a cube, illustrating similarities and differences in shapes and materials. Then kids would get a cylinder (which combines elements of both the ball and the cube) and it would blow their little minds. Some objects were pierced by strings or rods so kids could spin them and see how one shapes morphs into another when set into motion. Later came cubes made up of smaller cubes and other hybrids, showing children how parts relate to a whole through deconstruction and reassembly.
These perception-oriented “Gifts” would then give way to construction-oriented “Occupations.” Kids would be told to build things out of materials like paper, string, wire, or little sticks and peas that could be connected and stacked into structures.
The decreasingly tangible product of code, i.e. that all we have are files on a hard-drive, may make it easy to forget that writing software produces a thing. If you produce a wonky chair or an overly long fork, it’s easy to see the quality of work was not great. By calling for a perception of software as a craft, we fight against that ability to forget or not notice the final quality of the product. You could watch two software engineers with different levels of experience, or in different domains, and it wouldn’t necessarily be so easy to guess which is which, at least from a distance.
So maybe there is something to be said for the value of software as a craft, for sometimes focusing on the practice of making better, or at least different, software just for the sake of it.