Looplex Knowledge Base

Engenharia de Plataforma

Engenharia de Plataforma

Para entender como vencer os desafios da complexidade trazidas pelo Direito Computacional, juntamente com o já conhecido gargalo de aquisição e conversão de conhecimento em sistemas especialistas, engenheiros jurídicos precisam entender e abraçar como cultura em suas soluções os conceitos de programação modular e platform engineering.

Programação modular do Direito

A programação modular é uma técnica de design de software que enfatiza a separação da funcionalidade de um programa em módulos independentes e intercambiáveis, de modo que cada módulo contenha tudo o que for necessário para executar apenas um aspecto da funcionalidade desejada.

A análise, construção e execução de um problema jurídico pode ser desmembrada interfaces que representam um output análogo ao que os advogados produzem hoje fora de nossa plataforma: documentos, dashboards, telas de coordenação de equipes, distribuição e acompanhamento de tarefas etc.

Os elementos definidos na interface são detectáveis por outros módulos: as alegações e pedidos construídos em uma contestação são contingenciados ou provisionados na gestão dos casos, que por sua vez podem ser todos analisados em dashboards de análise e insights de toda uma carteira de processos, tudo orquestrado por automações de processos de negócio que entendem o contexto do desafio jurídico ali tratado.

Para conseguirmos isso, a implementação precisa conter um código de Direito Computacional que corresponda aos elementos jurídicos conceituais declarados na interface.

A programação modular está intimamente relacionada à criação de uma lógica estruturada e organização dos dados que tenha como objetivo facilitar a construção de grandes Soluções de automação jurídica pela decomposição do problema em peças menores.

Com essa segmentação horizontal obtida em uma programação modular do Direito, os engenheiros jurídicos de cada tema ou especialização conseguem se aprofundar muito mais em sua parte, o que gera resultados fantásticos.

O que é engenharia de plataforma

A engenharia de plataforma (platform engineering) é nome dado para a disciplina ou cultura de projetar e construir cadeias de ferramentas e fluxos de trabalho que permitam recursos de autoatendimento para times de engenharia jurídica, tanto dentro da Looplex ou distribuidores, quanto em escritórios de advocacia, departamentos jurídicos e até mesmo faculdades de Direito.

Como organização, a Looplex oferece engenharia de plataforma por meio da fornecimento de um produto integrado, mais frequentemente referido como uma "Plataforma Interna de Desenvolvedor" (IDP), que cobre as necessidades operacionais de todo o ciclo de vida de um aplicativo jurídico.

video

Clique aqui para assistir o vídeo

A especialização dos papeis da engenharia jurídica e a disponibilização de diversos serviços, motores de construção e processamento de lógica jurídica, diferentes bancos de dados e diferentes interfaces trouxeram a possibilidade de uma programação modular muito mais eficiente, com ganhos em escalabilidade, disponibilidade e operabilidade.

Porém, isso também significou que o setup de uma Solução jurídica ficou muito mais complexa. Já se foram os dias na Looplex em que era possível a execução de um único jogo de scripts em um template de conteúdo para entregar uma aplicação monolítica e isolada e que consome uma única base de dados relacional.

De repente engenheiros jurídicos passaram a ter de dominar 10 ferramentas diferentes, como Lawtex, Looplex Render, Vercel e Azure Functions, queries em SQL, JSON Schema Form, Looplex Code, diferentes JS Box, JotForms, validadores de JSON Schemas de dados, gestão de repositório de projetos complexos (Soluções), mapeamento de modelos de dados semânticos, técnicas e transclusão de múltiplos documentos e componentes padronizados, e por aí vai!

O problema disso é que a tradicional divisão de trabalho entre Ops e Devs, não era uma factível aqui pela dificuldade em capturar as nuances do problema jurídico. Em vez disso, os engenheiros jurídicos estavam se tornando na prática DevOps jurídicos, como a melhor forma de conseguir um setup rápido de projetos de clientes.

Pensamento “antigo” (2017-2022): DevoOps até o osso

Engenheiros jurídicos devem ser capazes de desenvolver e rodar suas aplicações (templates de lógica jurídica) de ponta a ponta. Você construiu, você consegue rodar

O problema com essa abordagem é que não é realístico esperar que toda a equipe de engenharia jurídica consiga replicar o papel de um engenheiro jurídico que é um ótimo programador, que conhece de banco e interação com outros sistemas, que sabe muito de teoria do Direito, que tem uma ótima experiência de prática jurídica em diferentes mercados (processo civil, M&A, societário etc.), que conhece e sabe implementar técnicas de Legal Design (Legal UX Writing e Visual Law), que entende de ciência de dados aplicada ao Direito e ainda que consegue implementar uma automação completa de processos de negócio associada a um ciclo de vida de um documento ou caso.

Querer que todo o time saiba bem de tudo é uma meta impossível e quando isso ocorre uma séria de anti-patterns emergiram.

Exemplo emblemático de anti-pattern:

No paradigma atual de engenharia jurídica nas organizações e startups que estão se aventurando nesse novo mundo, os desenvolvedores de conteúdo (geralmente os mais experientes na área jurídica e de programação) acabam assumindo a responsabilidade também pelo gerenciamento de ambientes, infraestrutura, integração entre diferentes projetos de uma Solução etc.

Isso leva a uma configuração de equipes em que os mais experientes profissionais gastam um enorme tempo implementando o mapeamento e configuração de projetos específicos de um cliente de novo e de novo, quando a sua contribuição em termos de codificação e desenvolvimento de produtos seria muito mais valiosa.

O engenheiro jurídico sênior acaba tornando-se responsável pela configuração e precisa resolver solicitações de colegas mais juniores. E a organização como um todo agora abusa de alguns de seus recursos mais caros e talentosos, não consegue alocar recursos com a mesma velocidade e confiabilidade para novos projetos.

Agora, parte do time de Dev assume o papel de engenheiros de plataforma, criando ferramentas, ambientes e serviços cuja carga de complexidade de conhecimento fica abstraída para outras camadas, simplificando assim o desafio dos times de engenharia jurídica e mesmo o entendimento dos clientes a respeito dos produtos.

modular programming2

Com isso, adotamos uma topologia1 de equipes dinâmica e que se adapta ao constante processo de aprendizado e descobrimento que é a Transformação Digital do Direito.

modular programming3

Edit this page on GitHub