Haskell for non-Haskell sake

Luc Taesch list@taesch.com
Thu, 4 Sep 2003 01:21:59 +0200

Short version :

I'm using Haskell in the field of Business Modeling, mainly Banking and
The Idea is to be able to specify (properly), test and experiment by playing
with models, before deploying them into applications ( in Cobol, Java, ...
why not in haskell one day.. ;-)

Short term, I used it to prototypes business cases and small tools  ( like
GRM specs-> dot files),
Longer term, I would like to develop
- a complete environment to specs/test models,
- and a DSL , business patterns like.

Longer Version:

Paper models do not breaks ( because you cannot test them ). Properly typed
one neither (because you can).

I assert that the biggest failure factor of projects  (in banking, and more
generally , in business administration) is the scope and specification phase
(...), and the ability to effectively play early with living models would
enhance the quality of the specs, ease the creation of these, make you
business users happy and raise the confidence of stakeholders .

If you can "run" the 10-50 cases that form the essence of a model, and have
them visualized in some screen forms prototyping the "idealised"
application, you create more motivation than delivering 500 pages of specs ,
or  ER /UML models on A2 paper.

These cases are written in Haskell, and the Model either. Its expressive
power make the specs clear, definitive, unambiguous, and the model either.
And you can run it. On top. So you can show it works. after a few weeks.
Before the "real" development, which will need 6-12 month (optimistically).
You can still comment in english your Haskell specs (for common readers),
but the specs are drastically smaller than classically, as they are up to
the point.
No fuss needed. It already works.

I am in the banking field for about 20 years ( front/middle/back office ,
accounting, credits..) , used to be Developper, Business analyst, Project
manager, and now contracting mainly mainly as Business Analyst. Starting
with 3GL, I  practiced OO starting in 91, and in 97-01, was part of a "guru"
team to create the models that were feeding a 200-men project.
We were testing our models on prototype ( in Eiffel) before handing them
over. We created some "methodology" out of it, how to build "business rules,
business processes", and also derived some experience on testing models.
Let's say : XP/agile processes + business patterns + test cases.

I discovered Functional Programming mid 2000, experimented in my spare time
in Erlang, created some tools to automate specs capture and doc generation,
and began fiddling with Haskell in 2001.

The Expressiveness was impressive, Abstraction was becoming a reality, and
this Lazyness was exactly what I was Looking for...

Hudak's book amazed me, I discovered these DSL, which were what I was
looking for, and what I was de facto doing these previous years.
The SPJ/Eber Paper on contract was definitive in convincing me that I was on
the right track.
I then has to stop my personal research end 2001 and resumed it a few weeks
ago, to discover with pleasure advances like the generics boilerplate ...

Scrapping boilerplate looks like a good plan for administrations...