From Local Correctness to System-Aware Java Engineering
|
Juan Antonio Breña Moral Engineering @ IG Group, EU Division
Twitter | GitHub | LinkedIn |
|
|
"Make it work, make it right, make it fast." - Kent Beck "Lead me, follow me, or get out of my way.", "Pressure makes diamonds." - George S. Patton Jr. |
|
Source: Leavitt's Alignment Model (1965) >> People, Process and Technology
Framework
ACT I
The usage of AI in software engineering is changing the way of work but with the change appear new challeges to address.
Design the context
Define boundaries
contracts
and owners
Discover and connect context
Trace dependencies
document decisions
and close gaps
Recover and validate context
Read behavior
data and incidents
then test assumptions
Focus: brownfield enterprise systems—working software, fragmented knowledge, and live dependencies.
ACT II
Implementation accelerates. Context does not.
💥 Production breaks
The checks proved the implementation—not the whole consequence.
Organizations design systems that mirror their communication structures.
Paraphrased from Melvin Conway, 1968.
Ownership
Communication
Specification
Validation
Agents
Tools
AI accelerates technology.
System correctness still depends on all three.
ACT III
Specification constrains the work inside the visible boundary.
Add rate limiting to the Java API.
Implementation is not the problem. Ambiguity is.
Evidence closes the loop.
Business rules
Acceptance criteria
Constraints
Quality attributes
Components
Interfaces
Migration
Validation
Specifications solve task ambiguity.
They do
not solve system blindness.
ACT IV
The blast radius extends beyond the repository.
RenamecustomerIdtoclientId.
record Order(String clientId, BigDecimal total) {}
Locally correct. What else depends on this contract?
customerId → clientIdThe repository cannot always be the unit of correctness.
Rename customerId
to clientId
clientId compatiblycustomerId after adoptionSame requirement. Different context. Different plan.
Parallel Change: expand → migrate → contractMost coding agents start at task and repository.
Many
dependency failures live outside them.
🤔 One product. Three capabilities.
ACT V
Turn organizational knowledge and engineering skills into governed, queryable infrastructure.
What is true here?
Domains, subdomains, systems, owners, decisions, and dependenciesHow do agents access it?
Query knowledge and discover relevant skills on demandHow should work be performed here?
Approved, versioned engineering policies and practicesOne product structures knowledge, registers practices, and exposes both consistently.
Domain → Subdomain
→ Bounded Context
Team → Owner
→ Criticality → Decisions
Service → API
→ Event → Database
DDD locates the change; technical relationships reveal its blast radius.
Retrieve the relevant organizational context and approved practice for each change.
Model Context ProtocolOwners define context and coordinate change
Publishing and validation keep it trustworthy
Knowledge base, skills registry, and MCP server scale access
Technology scales access; ownership and process sustain trust.
Domains → Systems
→ Owners → Contracts → Decisions
Issues → OpenSpec
→ Commands → Agents → Skills
The organization supplies its knowledge; Plinth turns intent into validated change.
An opinionated AI-native workflow for evolving modern Java Enterprise SDLC practices
/onboarding/update-issue → /explore-problem →
/create-acceptance-criteria/create-spec → /explore-design/implement-spec → /close-specCLOSE
🙏 Thank you 🙏
jbang trust list
jbang cache clear
jbang catalog list jabrena
jbang qr-code@jabrena \
--url https://jabrena.github.io/plinth/jcconf-2026/