Platform Engineering
To understand how to overcome the challenges of complexity brought by Computational Law, along with the well-known bottleneck of knowledge acquisition and conversion in expert systems, legal engineers must comprehend and embrace the concepts of modular programming and platform engineering as a culture in their solutions.
Modular Programming in Law
Modular programming is a software design technique that emphasizes separating a program’s functionality into independent and interchangeable modules, where each module contains everything necessary to execute only one aspect of the desired functionality.
The analysis, construction, and execution of a legal problem can be broken down into interfaces that represent outputs analogous to what lawyers produce today outside our platform: documents, dashboards, team coordination screens, task distribution and tracking, etc.
The elements defined in the interface are detectable by other modules: the claims and requests constructed in a legal defense are allocated or provisioned in case management, which in turn can all be analyzed in dashboards for insights across an entire portfolio of cases, all orchestrated by business process automation that understands the context of the legal challenge being addressed.
To achieve this, implementation must include a Computational Law code that corresponds to the conceptual legal elements declared in the interface.
Modular programming is closely tied to creating a structured logic and data organization that aims to facilitate the construction of large-scale legal automation solutions by decomposing the problem into smaller parts.
With this horizontal segmentation achieved through modular programming in Law, legal engineers specializing in each area can dive much deeper into their part, leading to fantastic results.
What is Platform Engineering?
Platform engineering is the discipline or culture of designing and building toolchains and workflows that enable self-service capabilities for legal engineering teams, whether within Looplex or distributors, law firms, legal departments, or even law schools.
As an organization, Looplex provides platform engineering through an integrated product, often referred to as an “Internal Developer Platform” (IDP), which meets the operational needs of the entire lifecycle of a legal application.
The specialization of roles in legal engineering and the availability of various services, engines for constructing and processing legal logic, different databases, and interfaces have brought the possibility of much more efficient modular programming, with gains in scalability, availability, and operability.
However, this also meant that setting up a legal solution became much more complex. Gone are the days at Looplex when a single set of scripts in a content template could deliver a monolithic, isolated application that consumes a single relational database.
Suddenly, legal engineers had to master 10 different tools, such as Lawtex, Looplex Render, Vercel, Azure Functions, SQL queries, JSON Schema Form, Looplex Code, different JS Box, JotForms, JSON Schema validators, complex project repository management (Solutions), mapping semantic data models, transclusion techniques for multiple documents, standardized components, and so on!
The problem is that the traditional division of labor between Ops and Devs was not feasible here due to the difficulty of capturing the nuances of the legal problem. Instead, legal engineers effectively became Legal DevOps as the best way to achieve quick client project setups.
“Old” Thinking (2017-2022): DevOps to the core
“Legal engineers must be able to develop and run their applications (legal logic templates) end-to-end. You build it, you run it.”
The problem with this approach is that it is unrealistic to expect the entire legal engineering team to replicate the role of a legal engineer who is an excellent programmer, knows databases and system interaction, is well-versed in legal theory, has extensive practical experience in different legal markets (civil procedure, M&A, corporate law, etc.), understands and implements Legal Design techniques (Legal UX Writing and Visual Law), is skilled in data science applied to Law, and can implement complete process automation for a document or case lifecycle.
Expecting the whole team to excel at everything is an impossible goal, and when this happens, a series of anti-patterns emerge.
An emblematic anti-pattern example:
In the current legal engineering paradigm in organizations and startups venturing into this new world, content developers (typically the most experienced in legal and programming areas) also take on the responsibility of managing environments, infrastructure, and integration between different projects of a Solution.
This leads to team configurations where the most experienced professionals spend an enormous amount of time mapping and configuring specific client projects repeatedly when their contributions in coding and product development would be far more valuable.
The senior legal engineer ends up responsible for configuration and has to resolve requests from junior colleagues. As a result, the organization abuses its most expensive and talented resources, struggles to allocate resources for new projects at the same speed and reliability, and undermines overall productivity.
Now, part of the Dev team assumes the role of platform engineers, creating tools, environments, and services whose complexity is abstracted for other layers, thus simplifying the challenges faced by legal engineering teams and even improving client understanding of the products.
With this, we adopt a dynamic team topology1 that adapts to the continuous learning and discovery process that is the Digital Transformation of Law.
Footnotes
-
Infographics from https://teamtopologies.com/ ↩