The inability of programmers to adapt their mental models to the application domain is 
a huge problem
for commercial software development.  Rather than rely on a programmer's 
undertstanding of the application
to fill in the gaps, product architects are forced to write huge, detailed specs.  If 
I've got a 
detailed spec, why should I spend lots of money to have it coded by some high paid 
western European
or North American programmer?  Why not outsource it to a third world country where 
even programmers aren
't paid very much?

It also gives programmers who do have a good mental model of the application a big 
advantage.  A handful
of sharp people who really understand the application area and what the customer's 
real requirements are
can often put together a product in a fraction of the time of some larger 
organization; this is why
"temporary, short term" solutions often far out last the thing that was intended to 
replace them.
If the product is being sold in the open market and it gains market share, they can 
often get someone
else to buy them out, long before the issues of long term maintenance and support hit 
home.  They then face
the choice of finding another application to understand, or, they can have a relaxing 
job working for
the company which bought them.  (Some of them have offices near mine.)

Given current job trends in the US, programmers who adopt the atitude that the 
customer can have any
mental model they want as long as it's black will have lots of time to contribute to 
open source coding
efforts until their benefits run out.  Then, they can learn to say, "do you want 
fries/chips with that?"
After all, life is, indeed, short and acquiring new mental models is much harder work.

Ruven




-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Derek M Jones
Sent: Friday, February 27, 2004 11:32 AM
To: [EMAIL PROTECTED]
Subject: RE: PPIG discuss: Programmer's mental models


Ruven,

>You might also find large differences in the same type of software 
>across different application domains.

I think it will depend on the amount of experience the developer has had with each 
domain.

>I can hardly image that the same mental
>model would be used for a programmer writing a client/server 
>application for machines that package cereal as for a client/server 
>application for university students to select housing. (Well, given the 
>functionality of some of the apps I've seen, perhaps, there are some 
>programmers who use the same mental model for both.)

I think software developers perform a lot of reuse of mental models.  Creating a new 
mental model is hard work, why not try and fit a new problem into a known model.  Over 
time developers learn or evolve new models, but this is a huge investment of effort. 

I know developers are supposed to switch mental models at the drop of a hat, and we 
are supposed to spend hours fine tuning our models of the application domain and how 
they are mapped to software. Outside of academic papers and popularising self 
improvement books I have never seen this happen.

Life is too short, everybody satisfices.  Customers can have any mental model as long 
as it's black.

derek

--
Derek M Jones                                           tel: +44 (0) 1252 520 667
Knowledge Software Ltd                            mailto:[EMAIL PROTECTED]
Applications Standards Conformance Testing   http://www.knosof.co.uk


 
----------------------------------------------------------------------
PPIG Discuss List ([EMAIL PROTECTED])
Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss
Announce admin: http://limitlessmail.net/mailman/listinfo/announce
PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/
 
----------------------------------------------------------------------
PPIG Discuss List ([EMAIL PROTECTED])
Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss
Announce admin: http://limitlessmail.net/mailman/listinfo/announce
PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/

Reply via email to