[Haskell-cafe] the problem of design by negation

Magnus Therning magnus at therning.org
Thu May 21 01:23:33 EDT 2009

Michael Mossey wrote:
> This is not directly related to Haskell, but it's a thought that 
> occurred to me after exposure to the Haskell community.
> I've spent most of the past 15 years doing scientific programming. The 
> lead software architect and software managers are using good software 
> engineering practice, though (this is *scientific* programming, not 
> *programming by scientists*, ha ha). But, there is a particular culture 
> in my company that has become more obvious to me by contrast to the 
> Haskell community.
> I call it "design by negation." When asked to justify his design, the 
> lead software architect explains everything that *wouldn't* work. "We 
> couldn't have a unique key for every entry because blah blah blah. We 
> couldn't use a garbage collector because blah blah. We couldn't write a 
> sugar layer because then you have to document it separately blah blah." 
> So the chosen design seems to be the only thing left after eliminating 
> everything you can't do.
> I want to aspire to "positive design." I want to list the goals, and 
> think of design as making clever choices that meet all the goals.
> I don't mean to suggest that design is never constrained. It often is. 
> But it's a mindset I'm talking about. I don't like this mindset of 
> design by negation.

Design is always constrained, and arguably every choice that is made should be 
justified, that includes explaining why a particular solution was discarded.

I can understand your frustration with the "negative attitude", I'm just 
trying to say that I've most often been in the opposite position; no one can 
answer why several, often much simpler, designs weren't good enough.  Often 
there is not even any record of any decisions having been made at all, which 
to me suggests that no one really thought about the problem at all before 
implementing a solution.  In short, I wouldn't mind seeing a bit more negative 
attitude in the place where I work :-)


Magnus Therning                        (OpenPGP: 0xAB4DFBA4)
magnus@therning.org          Jabber: magnus@therning.org
http://therning.org/magnus         identi.ca|twitter: magthe

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: OpenPGP digital signature
Url : http://www.haskell.org/pipermail/haskell-cafe/attachments/20090521/5bce0395/signature.bin

More information about the Haskell-Cafe mailing list