[FoRK] Enterprise software development: Do we have an age problem?
J. Andrew Rogers
andrew at ceruleansystems.com
Mon May 24 13:06:30 PDT 2010
On May 24, 2010, at 11:57 AM, Ken Ganshirt @ Yahoo wrote:
> One of my best new hires a couple of decades back was a rocket scientist ... well, actually an astro-physics doctoral student. He needed work to pay the rent (not much call for astro-physicists on the Canadian prairies) so he put skills that were necessary to his chosen field to work for him. He's still there as far as I know, so I guess I was able to keep him interested.
Physics and chemical engineering are the two non-CS fields that in my experience produce an anomalous number of really excellent computer scientists. It is not just as developers but people with real talent on the theoretical side of computer science who fell into the field sideways. Of course, these disciplines often require rigorous reasoning about very complex systems with computation-like properties; it probably is not much of a stretch to map innate talent in one of these fields to computer software.
I think there are ingrained perspectives when dealing with complexity that vary across these fields in material ways and which affect apparent skill for different software design domains. For example, chemical engineering strongly frames complex system design in (computer) terms of a decentralized dataflow model with a liberal sprinkling of inductive reasoning for robustness because that is the literal nature of the day-to-day engineering problem. For some computer science design problems, that is a great way of thinking about the problem. It is also *not* the way the field of CS looks at a design problem by default; undergrad CS classes assume a fundamentally centralized, axiomatic/deductive perspective -- natural, coming from logic math -- of design problems that pervades perspective when people finally get to problems where that perspective is a hindrance.
My pet theory is that most people quickly become ingrained with strong bias toward a single model of complex systems in the abstract and with one set of tools for reasoning about or controlling those systems. Everything is analyzed in that context no matter how inappropriate, which is an argument for diversity I suppose. For a number of modern software design problems, I think the tacitly instilled perspective bias of a proper CS education is creating an impedance mismatch that allows individuals with a different systems perspective bias from other disciplines to thrive.
More information about the FoRK