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/
