Bridging the gap between designing digital artefacts and implementing them is still an open issue, despite agile system development. Interaction design is a design practice, whereas software engineering describes itself as engineering and science. There is a long tradition in design of discussing materials and the craft of making artefacts. Thus, if we have a material, it is reasonable to say that we have a craft. If programming language code is a design material, then, making a finished artefact is the shaping of that material. The development process can thus continue as a design process up to version 1.0. This calls for a new the role of software engineering in project and a change programming education.