Just came across Why Computer Science Matters? by Vugranam Sreedhar. He observes a decline in real computer scientists in favour of ‘commodity programmers’. Basically, I have to (sad but true) agree here, and would like to take a closer look at the roles involved, beyond well-trained computer scientists and commodity programmers only.
Let us recapitulate first*: In general, Information Systems (IS) perform 3 kinds of functions:
- Memory function: maintain a representation of the state of the domain
- Informative function: provide information about the state of the domain
- Active function: perform actions that change the state of the domain
Algorithms like a solution to the 8-queens problem provide complex kinds of active functionality. Whereas a typical database application mainly provides memory and informative functionality. Database applications (in all kinds and variations) are typical for business software. Developing them, can be broken down into structuring the overall problem, and implementing the resulting parts. Clearly, here the overall structuring is the much more ambitious task. Thus, we get 3 kinds of people:
- Software ‘Scientist’, solves complex algorithmic problems (focus on active functionality)
- Software ‘Craftsman’, implements data access functionality and mid-complex business logic (focus on single memory and informative functionality)
- Software ‘Engineer’, structures large data centric information systems (focus on overall memory and informative functionality)
Now, if we compare SwScientits and SwEngineers, although they are both jobs on an academic level, they are clearly of a different kind. Metaphorically speaking, SwScis solve a single small very complex word problem, whereas SwEngs take a very large text and break it down into many word problems of medium complexity.
So how did we get to focus so much on educating SwCraftsmen?** Was it perhaps that academia used to educate SwScientists only? Of course, if one asks industry, they say, they want ready to employ people, and they want them quick, and also a lot of them.*** And finally, did academia start to deliver SwCraftsmen, where actually SwEngineers would have been appropriate?
* textbook: Antoni Olive (2007) Conceptual Modeling of Information Systems.
** or ‘commodity programmers’ (Vugranam Sreedhar)
*** best provided by vocational education?