In the context of software engineering, Code Printing refers to:
The transformation of requirements into code by an algorithm
Code Printing is a broad term to cover a range of offerings, examples include:
This is a different paradigm to traditional programming, which is based on:
The transformation of requirements into code by a person
You see, traditional software engineering is focused on micro-delivery, so essentially:
Hand crafted delivery of individual code artefacts
You can think of it as:
A sequential process of delivering one program or change after another
And similar to hand crafted techniques in furniture making, tool making or manufacturing, each artefact has it's own idiosyncrasies associated with the craftsperson and that particular construction effort.
Code Printing is analogous to the capability a 3-D printer provides in the physical realm.
A 3-D printer can deliver any structure you need based on design meta-data, each instance of which may be configured slightly differently from the last. So there is a focus on the meta-data and it's transformation directly into a predictable target structure.
Code Printing does this for code artefacts, but because there are no physical constraints on the artefacts printed, the complexity is limited only by:
And of course, a code artefact can evolve rapidly – without wasting any physical material.
The key difference with a hand crafted approach is that the construction process is both very rapid and completely deterministic - every artefact will be delivered 100% consistently against its design, without idiosyncrasies or alternate implementations.
So like 3-D printing and CAD-CAM manufacturing it is particularly suited as an approach to large scale production against high precision requirements.
I hear you, why put additional effort into writing an algorithm to print code rather than just writing the code yourself?
I'm sure you would be familiar with Low Code and No Code (Codeless) platforms. Code Printing is exactly what they do!
These platforms have large user bases, so their transformation algorithms are used a lot! That's how they can deliver like magic - and how they can keep improving your work without you having to make any changes.
So why do they refer to No Code if they are printing code? Because their code patterns are proprietary - the code they print only works within their platforms, so you don't need to see it.
And of course if you ever want to change your platform you can't take that code with you, you will have to start again
So you are left with No Code.
Enterprises have many examples of their own internal code patterns. For example, an initial interface, pipeline, microservice or report may lead to 20 or 50 variations based on a similar theme.
And for any enterprise, software delivery is all about speed, consistency and scale.
So when a modern enterprise has a family of modules with similar requirements they try to focus on macro-delivery:
Rapid, consistent delivery of easily maintained code which can readily evolve.
Pattern based delivery is a key macro-delivery enabling strategy implemented by enterprises.
But it's something the best software engineers are not typically good at - talented engineers want to keep improving solutions or solving new problems, not continually solving the same problem the same way!
And between two code artefacts any engineer will evolve their approach slightly, as they learn, familiarise with the pattern and innovate. When you engage multiple engineers for large scale delivery, especially over a period of time, each with their own experience and preferences, consistency goes out the window - even with the best QA efforts.
Without consistency, an organisation's ability to evolve and improve a code pattern becomes that much harder and more expensive - leading to technical debt which impedes both delivery and innovation.
So enterprises should love Low Code platforms right?
It turns out ... not so much.
Why not?
Enterprises tend to prefer sovereignty over their code base, because they need to be flexible with their IT partners and be able to differentiate from competitors. Also, with any Low Code and No Code solution there will be constraints in the design meta-data model and code pattern capabilities, so enterprises need to use Low Code platforms in which they can customise the outcomes.
Of course customisation becomes an additional software engineering effort, especially for complex requirements, which further erodes the attraction of commercial platforms.
But should that make code printing inaccessible to an enterprise - the very organisations for whom it can have the greatest impact? Of course not!
Code Printing for an enterprise is known as Enterprise Low Code and focuses directly on the macro-delivery requirement.
By its nature it is an evolutionary, innovation-oriented approach to optimise not just for:
But also for:
Whilst
Code printing is unique in enabling this as it:
And unlike traditional Low Code and No Code platforms:
elfware is an IT automation company specialising in using Code Printing to accelerate delivery for enterprise clients in their own code patterns.
We leverage mojoh.io to rapidly print code artefacts consistent with client specific code patterns - a truly Enterprise Low Code platform.
We have headquarters in Sydney and clients across the globe.
If you’d like to learn more, visit www.elfware.com or contact us for: