Marrinn · The architecture · The Lens
The Lens.
Where the records become an answer. Dashboards, scheduled board packs, and plain-English querying that respects row-level security — so the answer a person gets is bounded by what that person is allowed to see, not filtered afterwards.
One question, asked by four different people.
Every reporting tool can answer a question. The interesting problem is that the same question has four correct answers in one company, depending on who is asking — and getting that wrong is not a reporting bug, it is a disclosure.
The question below is the most ordinary one a business asks. Four people ask it on the same morning, in the same words, and each one is entitled to a different answer.
“What is at risk this month?”
Nobody types a field name. Each person describes what they want, and what comes back is bounded by their own role and the projects they are on — computed that way, rather than computed in full and then trimmed on the way out.
- The chief executiveEverythingEvery project, every client, every number in the workspace.
- A project leadOne projectTheir own delivery, and the audit events scoped to that project.
- FinanceThe ledger, not the peopleInvoices, expenses and journals. Not the HR file sitting beside them.
- An external partnerThe one project they are onA guest, on a single engagement, with nothing either side of it.
Four answers, all of them correct
The plain-English question is translated into a real query, which you can read and edit before it runs. It then runs under the permissions of the person who asked. The partner does not receive a smaller version of the executive’s answer. They receive their own answer, and the rows they may not see are not in it.
The board pack stops being assembled by hand
The reason a pack takes days is that somebody rebuilds it every month. Widgets are backed by queries that re-run when the page loads, so a pack written against relative dates and open sprints reports the current state without anyone editing it.
Nobody has to learn the field names
Describe the query — high priority bugs assigned to me and untouched for two weeks — and it is translated into the real thing. The translation is best effort and stays editable, so you check it rather than trust it, particularly on dates and names.
The number on the board matches the team’s screen
Leadership and delivery disagree about a figure when they are looking at two systems. The filter behind a team’s saved view is the same query that powers the leadership widget, so there is one definition of open work rather than two.
You can hand a partner a dashboard
Giving an outside collaborator a view usually means exporting a slice and emailing it, which is a copy you no longer control. A guest role on one project means they open the live thing and see exactly their part of it.
A dashboard is a question you stopped re-asking.
A report is a thing somebody makes. A widget is a question somebody wrote down once. The difference matters at the end of the quarter, when the first one needs a person and a day and the second one needs a page load.
A query language, not a filter box
Fields, operators and functions, so a query can say what a filter panel cannot — work in open sprints, blocked by something, untouched for fourteen days, above an estimate.
Plain English into that language
Describe it and the query is written for you, then left in an editable box. Date arithmetic is approximated and names are matched loosely, which is exactly why you get to read it first.
Five ways to render an answer
A counter for a headline figure, bars for a comparison, a donut for composition, a line for a trend, and a table for the actual items behind the number.
Re-run, not cached
Widgets run their query on load. A dashboard built on relative dates reports today without anyone opening it to change a date range.
Server-side totals
A project summary is computed on the server against the whole project rather than a sampled page, so the count is exact even when the project is large.
Reports that arrive
Progress reports and digests go out on a schedule to the people who own the goal, so the weekly read is something that turns up rather than something somebody remembers to send.
Seven parts, one operating system.
Read the seven from the bottom and it is an operating system: a kernel, a data model, memory, a way to see, processes that do work, a place those processes meet people, and ports to everything outside.
The Kernel
The model, and it is your choice.
The Core
Every module on one data model.
The Memory
One version of the truth, across systems you do not own.
The Squids
The operators, and one can lead others.
The Handoff
Where an agent stops and a person decides.
The Ports
And it reaches what you already run.
The Lens is one of seven parts.
It sits above the memory: the kernel is the model you choose, the core is every module on one data model, The Memory is what they all agree on, and the ports are how it reaches the software you already run.
