[Haskell-cafe] consulting and contracting
Anton van Straaten
anton at appsolutions.com
Wed Dec 16 00:53:13 EST 2009
Gregg Reynolds wrote:
> On Tue, Dec 15, 2009 at 3:19 PM, Anton van Straaten
> <anton at appsolutions.com <mailto:anton at appsolutions.com>> wrote:
> Without that advocacy, this client would have used Java by default.
> As it was, the first of
> I'd be interested in how you pulled that off. Enlightened client, or
> slick sales pitch?
A combination of factors made it relatively easy in this case:
It was more of a quant job than a software development job, i.e. the
main goal was to design and develop the model and be able to crunch the
numbers, so it was solution-focused.
The choice to use Java in this case was in a sense one of last resort.
First choice would have been a tool more like Excel, Matlab, or
Mathematica, none of which were well-suited to handle the complexity and
computational requirements of this model. In this context, Haskell is a
strong contender, since it provides something similar to the
high-levelness of those mathematical tools, combined with the
performance and general programmability of a general purpose language.
There was also an assumption that the system wouldn't be needed in the
long term -- once the product was developed, they'd hire a team to
develop the necessary administration software, at which point the
original model would act as a spec. There's typically enough difference
between the requirements of these two phases for this not to be seen as
(Of course, good software design would make it possible to use the same
model code for both purposes, but that's a separate issue which gets
more into questions like "...but who's going to maintain it?")
Sales pitch wise, I had previously given a brief presentation to the
client on some of the core concepts behind the Peyton Jones/Eber/Seward
financial contracts DSL, and highlighted some of the advantages Haskell
offered in that case. That laid some useful groundwork.
Finally, I had developed systems for this client previously, so there
was some history and a level of trust involved, although without some of
the above factors, this wouldn't have been enough.
> Where I work I would consider it a minor miracle just
> to get people to consider using a wiki for collaboration.
I've experienced resistance introducing wikis before - I'd have to say
in this case, Haskell was an easier sell.
As an aside, I used the Gitit wiki as the user interface "container" for
the second model, which helped take care of things like uploading and
managing input parameter sets and data files for the model. So Haskell
systems could act as trojan horses for the introduction of wikis...
More information about the Haskell-Cafe