Report Offensive Message

CS or SE as a co-equal partner
I totally agree with your point about Carr, and that program code in the context of a business is nothing but codified business rules and processes.

I didn't mean to say that computer scientists should be leading the business, but I do think that CS as a discipline, or at the very least a modern software engineering, backed by computing as a scientific discipline, should be in a position to inform the business decision makers. As things have stood for decades, business practice and CS/SE have been separated by differing concerns. The suits go out and find investors and customers to finance the business, and the IT staff worry about creating a working product, funded by that financing, never the twain meeting on priorities. The suits don't know much about software (much less that it's codified business processes, etc. To them it's just about "making the box do what we want"), and the IT people don't know much about running a business. The two "sides" have different priorities, and even a different language (though they're both in English) for expressing what matters most.

Chris Crawford, a famous creator of video games, I thought put it very well in some essays he wrote years ago, that programmers have been put into the ancient role of scribes. They're the ones who come up with, and use, the script that records what the masters who finance their work need recorded and retrieved, like how much grain was sold, and to whom, and who owes whom money. What's getting lost is there is tremendous potential in writing...what we're doing right now. It was realized by the Greeks thousands of years ago that writing is so much more than a means for creating financial, and historical records, and edicts and proclamations. In order for this realization to flourish, they had to get rid of the role of scribes. The people who had the knowledge, who had the thoughts that needed to be written down, also had to know how to read and write. We haven't realized this with our new medium yet.

One major factor in this, at least in the line of work I was in, is that the end customers of the software were even more clueless about the process. Nothing against them, but this influenced everything about what the business did, and their lack of understanding tended to make the software a mess, because they had no sense of what software is. It's all magic to them, and we were the "magicians" that made it work. Their expectations set the tone for everything else. Going back to my historical context, in ancient times what scribes did, reading and writing, was considered magical, too.

When I worked in IT, one of the things I was very interested in was talking to the people who would actually use the software, so I could get a sense of why they wanted it. What purpose would it serve? I wanted this, because I hated getting a sheet of requirements telling me "implement this and that," and then hearing word back that, "You didn't do this right. They want this." I thought I did what they asked, but we had different unspoken assumptions. I figured that if I could get a sense of how what I was writing was useful to them--to get a context for it--then when I heard, "They want X," we would be on the same page about the assumptions, and I could just figure it out on my own. I got that opportunity on one job, and I think it worked out really well.

The missing element, though, was reconsidering the business in light of what computing can do. Every time what people wanted was something that would optimize their paper processes. I've always liked Alan Kay's conception of computing, that it's a new medium, and it enables new human capabilities, but bringing this out requires that the people who are making the business decisions, or in many cases, the customers, understand something about computing. The way it's been for decades is that most business people are just trying to automate paper, the old medium, because that's what they understand. To them, this is why computers exist, and I think this notion feeds into Carr's analysis. In the last decade we have successfully transferred all of our old media, print, photos, video, and audio, into "digital." We have been increasingly able to do it all using commodity tools. What's missing in the analysis is that computing is a new medium, which communicates a process in action, and that communication has value. It does not have to merely execute processes.
Posted by Mark Miller
Updated - 11th Apr 2012