Hi Neil

I very much appreciate your thoughts and feedback, thank you.

* It's good and valuable that you can be a domain expert, and understand
> the boots-on-the-ground workflows, plus have software systems background.
>
> * Documents that are potentially much more complicated to support well,
> like contracts and court filings that you develop, are *not* within the
> scope of this work, correct?
>

Correct. At least, not for now. I can imagine extending support to more
complicated documents in the future, but that seems to me to be a separate
project or a little expansion.


> * I might normally start with asking about what you envision, and current
> workflow and tools, and raise examples to compare&contrast with (e.g., how
> does a DSL you envision compare with LaTeX document classes, or structures
> available in the tool that is used for other documents).  The output is a
> better understanding of concept and requirements, as well as a start on
> analysis-level static and dynamic object models for the larger "system".
>

I am familiar with LaTeX, and more familiar actually with its cousin,
ConTeXt. Our current workflow is to draft documents in markdown with a YAML
header. That then gets processed by Pandoc and some homemade Bash into a
PDF through some Bash scripts.

* A big question is exactly how much do you want the system to understand
> about documents you receive from outside the system? (That is potentially
> not only a large amount of software in itself, but also multiple fields of
> ongoing research.)
>

I would expect my staff to write a document themselves (a "file note")
recording any relevant information from received documents. For example, if
we received a letter from the court telling us that we had a court hearing
then the person dealing with that letter would need to write a note
recording that.

* Usability by the all people who will be using it is important, of
> course.  You might want to bounce sketches and mockups off them, and maybe
> you even end up doing "Wizard of Oz" simulated system usability exercises.
> And a DSL that might be ideal for you might turn out to be surprisingly
> disliked by some other lawyers/paralegals/secretaries.  (Example: For a
> DSL, you might like S-expressions, Scribble, or SGML/XML, but it might turn
> out most of the users like something closer to Markdown, or a
> document-type-specific plain text format, such as one that can infer the
> addressee of  a letter in markup-free rapid typing of plain text, or
> something closer to a WYSIWYG word processor, or something closer to a
> form, like the email header fields of an email composition window.)
>

Yes, we're only a small firm so it would be quite easy for me to canvas
opinions from my colleagues. Since they already use Markdown plus a YAML
header, a switch to Scribble style would not be much different. They are
already using text editors and have had to learn to deal with YAML
difficulties (e.g. you have to use quotes for the value if it has a colon
in it).

I actually think that free form text where the meaning was parsed through
its order might be quite nice. Something like: title, double new line,
date, new line, matter reference, new line, initials of author, double new
line, body of text, eof. It would of course mean that more work would be
required for each document parser and somehow it seems a little fragile to
me.

Scribble syntax is definitely what I want for the records, so that they can
be embedded in the text: "Spoke to the client by telephone. Confirmed I
would @todo[#:deadline "2018-08-28"]{send out the court form} on Tuesday.
The client gave me his mobile number: @contact["client/mobile"]{01234
567890}.

* Your application might have an advantage for DSL acceptance by
> non-programmers, in that many people in law offices have education that
> emphasizes logical reasoning.  But don't underestimate the difficulty of
> skills familiar to programmers, if you try to get conceptually nontrivial.
> You can get most anyone to recognize concepts like Addressee, and you can
> tell/train them not to misuse semantics (e.g., don't put instructions to
> the mail carrier in the wrong semantic field, simply because you know it
> gets printed on the envelope).  But non-programmers might have a surprising
> unfamiliarity with composition, abstraction, modularity,
> declarative/imperative distinction, kind-of/part-of, etc.  I have anecdotes
> from industry and from research about this.  (Someday, universal basic
> education in program design, with descendants of HtDP, will help. :)
>

Understood and thank you for this valuable advice. In my experience of
introducing my colleagues to new technologies, I've found that most just
want to be shown a workflow of how to use something and then they will
stick to that parrot-like in the future. We have run the office entirely on
open source software now for over two years. Generally, the attitude
amongst my colleagues is that we have the technological advantage over the
competition because we have more technical tools than they do.

My staff are keenly aware of the difficulties of knowledge working and I
would want to position this software as a tool that was going to help with
that.


> * Would this software also be the canonical place where objects like Case,
> Account, and Contact are defined and stored, or is there another software
> system for that, with which you'd want to integrate?
>

Our existing system would be subsumed into this. I would like Racket to be
the "one ring that rules them all".


> * Do you use a time time-tracking tool for this, and do you want to
> integrate with it (such as indicate to the user when the case(s) associated
> with the document they're reviewing disagree with what the time tracker
> thinks).  Or do you want to implement a time tracking tool as part of this
> work.
>

We have a simple and basic time tracking system at the moment which works
simply on the naming of files with time tracking information. A bash script
then scans those files and creates relevant reports etc. My preference
would be to subsume this into the documents themselves in due course.


> * You mentioned querying for overdue tasks.  How far do you want to get
> into project management -- like work breakdown, task dependencies,
> ordering, and resource allocations?
>

Simple task management would be sufficient for our purposes for the time
being: tasks, time estimates, person responsible, deadlines, and future
start dates. I think with all the record information I would start simple
so that it was easy to conceptualise and then only complicate it if there
was consensus from users that it would be required.


> * Once you know what to build, the sophistication of the resulting
> software might mostly be simple.  The wins for working smart might be in
> the analysis&design, and then (if appropriate) clever "force multiplying"
> uses of Racket features, to build it rapidly and sustainably, with little
> resources.  (It's also easy to imagine dozens of people building something
> like this, but that's probably not want you want, and they might have a
> harder time getting the "what" as right as a small team could.)
>

Absolutely. I was imagining, for example, that records could be modelled as
a struct. You make a struct for a task, and a macro creates record commands
to create, edit, delete and query task information. Then adding
appointments is just a question of a new struct and running the same macro
on it. Indeed, individual businesses could then tailor the package for
themselves as needed this way.


> * This might be the kind of thing that one organization with domain
> knowledge develops in-house for its own use, and then productizes for
> similar organizations.  Sometimes those businesses go huge.  If you're
> thinking that route, then you might want to do market research and
> competitive analysis early on.  (I might be able to consult professionally
> on a funded commercial effort, beyond what I can do as an off-the-cuff
> community-sharing email.)
>

The purpose of this project is to support my existing business providing
legal services rather than to create a new software venture. My initial
plan would be to create an open source project in the hope that it would
benefit others businesses and perhaps attract contributions. I also hope
that it might bring users to Racket.

If someone else wanted to use me as a domain expert and then develop it
closed source for them to market, then that is something that I would
consider. But my guess is that would be a much bigger enterprise involving
market research etc. For the purposes of my own business, I know what small
steps we could take immediately that would be useful based on the
difficulties and limitations of our existing workflow.

In terms of consulting, I'd be happy for you to send me some information
off list. I'm not sure that's a route that I would be able to go down
because of the size of my business (think Better Call Saul, rather than
Suits), but I'd be happy to have some information so I can see whether or
not it might be an option.

Again many thanks for your time and thoughts.

Richard

-- 
Redwood Legal
r...@redwoodlegal.co.uk
Office: 01157 323277
15 Clarendon Street, Nottingham, NG1 5HR

This firm is authorised and regulated by the Solicitors Regulation
Authority (SRA ID 637939)

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to