Sponsored Link •
Software is more than a sum of its parts.
In his recent column for SDTimes, Allen Holub asks: Is "Software Engineering" an oxymoron? Embedded.com's Jack Ganssle retorts with: Software engineering is NOT an oxymoron. So, is software development just a bunch of computational math theory, a science of computers, a field of engineering, or something completely different?
Allen makes a few rather inflammatory remarks in his article but the gist is that we need to rethink how the education of software developers happens. With that point, I completely concur. Historically, software has been under a number of different departments but primarily engineering and/or math. For example, at UC Berkeley, there is "computer science" under the College of Letters and Science (for a Bachelor of Arts degree) as well as Electrical and Computer Engineering under the College of Engineering (for a Bachelor of Science degree). The core software curriculum is shared between the two colleges with the non-core focusing on e.g., humanities or electrical engineering, respectively.
Allen, Peter Siebel [who's publishing a book as we speak called Practical Common Lisp], and I were talking about this whole software education problem at last week's excuse for free food (ahem, I mean the meet and greet that Apress threw for Joel [I swear that I had nothing to do with the fire alarms triggering the flooding of the building where it was supposed to be held] :-). The point of the discussion was not that software is or isn't "science", "engineering", "math", etc. but rather that current software education isn't focused enough on software as a discipline of writing (and reading). That is, we need more thought, education, and practice at making software a useful form of truly literate literature.
People have been trying out various alternatives for awhile. As you've probably seen on TV, there's a lot of education programs geared towards software from a vocational, trade school approach. This spans an interesting range from the bazillions of certification cram courses, and learn XYZ in 37 minutes how-to classes, through various accredited (and not :-) degree programs, and up to things like MIS degrees from accredited schools of management. More recently, Richard Gabriel has been working on the notion of a Master of Fine Arts in Software (or "Master of Software Arts"). Heck, even the venerable Knuth has waxed rhetoric on his notion of Literate Programming (more info available here and here).
Now, back to the question that started all of this discussion. Software is something wondrous. It is not merely engineering, math, science, or even art. Software is all of the above and more. People struggle and create so much suffering because they keep trying to force it into their familiar pigeonholes. Luckily, the solution is really simple... Software is a functional bridge between the abstract and reality.
|John D. Mitchell is the Chief Architect of Krugle -- a search engine for developers. Along with developing and rescuing distributed enterprise systems, John advises investors and executives on technology and high-tech companies. Over the past 15 years, he has been the CTO of ElasticMedia, HealthLogic.com, jGuru and the MageLang Institute. John co-authored "Making Sense of Java: A Guide for Managers and the Rest of Us." He was the founder and contributing editor of the "Tips & Tricks" column at JavaWorld. John writes extensively on complex systems, development processes, computer languages and protocols, parsing and translating, and technological business risk management.|