Tuesday, August 14, 2007

Certain companies whose stock prices has fallen rather a lot in the last few days

A friend sent me a email regarding the ruling on a legal matter between a certain software company and another software company in which a judge had ruled that the former company did not own the copyrights to a certain set of works that they claimed and that in fact the latter company still owned those copyrights.

As a result, it would seem that the former company's stock price has fallen rather a lot.

I have nothing to say about this matter. Really.

Friday, August 10, 2007

Software, Computing, and machines

Inspired by a nice rant on being asked to fix computer problems, I thought I'd add my 2 cents.

I have an undergraduate degree in electrical engineering. I am not, however, a practicing engineer, or Professional Engineer, if you prefer. That said, I do know a fair amount about machines in general and computers in particular, and I've built the main machines that I use for personal/professional use for the last 10 years or so. I do so because it's fun, though I admit I am particular about some components. A computer is somewhere between a toaster and a nice stereo to me - it should be far simpler than it currently is, it should be reliable, and it should do what it's supposed to do well.

I have the better part of a master's degree in computer science; I've yet to finish and defend my thesis. I have been developing software for the last 25 years or so. In recent years I've gotten somewhat better at it, to the point that I often know what I'm doing or at least recognize when I am doing poorly.

Now, I admit that my home city is a bit of a technological backwater, a few exceptions aside, but still: stating that I am a software developer at a party or gathering of non-developers invariably produces the same response, something along the lines of, "Oh, I have a computer at home.... I just don't know how to do X", where X is something to do with email or document preparation or some use of some application on the machine. Or, better yet, the response is, "Can you fix Y?" where Y is some problem related to their ISP or network or mouse or anything really.

From which I've deduced that most of the people I meet have no idea what software development is as an activity or what that activity produces, and certainly no idea what sorts of process produces software. Which is maddening, really, because I've been doing this for 25 years and I want to ask them each time, "Where the %$*&&^ have you people been?"

So. You've read a book right? Not hard, really. Admittedly some are more difficult than others, and they have to be written in a language you understand, but the general procedure for reading a book of any size is largely the same. Start at one end, read the first page, read the next, repeat until the book is finished, close the book.

You've written a book, right? No, you likely haven't. You understand, though, that writing a book is harder than reading a book, in most cases. Yes, there are simple books. Still: writing takes a bit more creation, if you will, than the reading part.

Software development is like writing a book.

Software development is like writing a book for a computer to read, except the book is some crazy self-help book that tells the computer what to do and the computer has no choice but to do it.

I like that part of what I do. I do not like fixing computers for much the same reason that I am not an auto mechanic; it's not bad work, but it's not something I like or want to do unless it is absolutely necessary. And fixing applications, in as much as that is possible, isn't really enjoyable to me either. I use other people's software chiefly because it saves me time. Perhaps a lot of time, but, at the end of the day, it's all the same: it saves me time. So, and perhaps this is being uncharitable, but I don't like a lot of software that I have to use. On the otherhand, that's why I like open-source software; I like to be able to see how it works. That's a selfish concern, at one level, because most of the people that I meet could care less how software is made, even though I think they should care about someone's ability, perhaps not their own, to be able to see how the software they use is made. That's really a topic for a different conversation, though.