Please, this is just a blog post, not an ad. I've already got email from people telling me they think it'll be tough. I'm just writing aspirationally. Thinking out loud. You're welcome to listen, but do not feel compelled to act. That would be wrong. However if you're sure you know of a school that could do this, or even another kind of organization, please don't be shy.
You ever wake up in the middle of the night with a realization that you had been wasting huge amounts of time on something that was never going to work? For me this happened late on Saturday night, early Sunday morning. I realized that while I love news, I really do -- always have -- the news does not love me back.
I've had some stunning successes with tools for reading and producing news, only to have the results ignored by the people who publish news. An example, I had a great news reading app for the Blackberry, quite a bit before the iPhone. I had friends at the NY Times. I thought they would love it. It worked so damn well and it was so incredibly simple. I would have given them the product for nothing. They never expressed an interest. I found out years later that they used it as an example of a great news app. Oy. Why didn't we take out ads in the paper telling the readers how to find it. How much different things would be now. And that's just one example. This has been happening over and over. For many years. It's time to give up.
At the same time I realized that I love librarians as much as I love news. As a kid I used to spend endless hours in the library. Just looking through books and the card catalog, trying to figure stuff out. Being frustrated with how slow the process was, but finding the librarians always supportive and helpful. Honestly it was a good place to hang out when things were crazy at home. Maybe that's another reason I have good feelings about libraries.
Later, when the web was booting up and I was falling in love I found out that at many companies the people who started the websites were librarians. The technical skills were no barriers for them. The wonder of it was too enticing. I came to believe at that time that librarians and programmers were flip sides of the same coin. Two ways of looking at the same thing.
But I think I've over-idealized that too. As much as I hoped that I would be able to get news people to use my stuff, it might be very hard to get stuff into libraries. I got a taste of that at a meeting I went to last year at the Library of Congress in Washington. What I saw there was an organization with politics, that was defensive to new ideas, and was making weird deals with companies when they should have been supporting open development. Librarians, I thought, were idealists. But not so much when you get to powerful and bureaucratic librarians. That's the way human structures are. It's not a bad thing, it's just the way things are.
I thought I might find a home in academia, for a while, and maybe some way at some point I might. What I would like to do is create a new kind of development project, one that goes on for years and years. Maybe decades and decades. Obviously I'm only going to be alive for a couple of those (seriously, I'm 57 years old, my father died at 80, and my health isn't that great). But I've been doing a development project myself now since 1988. At times with a development team, a lot of time on my own. Sometimes with a community of developers and users, at times very large communities. And there were times when I was the only person using the software as well as developing it. Not a bad thing, btw. You can go as fast or as slow as you want when you're doing it solo. When I was young the thought of going slow never occurred to me. But I learned that sometimes you have to slow down to go really fast. Seems paradoxical. But you can't make good design decisions until you're thoroughly familiar with a tool. And when you go too fast you have to live with the bad decisions for a very long time.
I love to teach this stuff. And I'd love to get a project going where students come and go as they shuttle through the university. Maybe they continue to contribute after they leave. And since all the software would be open source, it could be part of the infrastructure in their work. As they come through the project they learn a lot of things other than coding. They learn how to test, how to listen to users. How to write worknotes and howtos. How to design software for ease of learning. Tradeoffs. How to work with people in other disciplines. Because like librarians, developers are in a position where they can and should be able to help people no matter what they're doing.
And yes, I did say help. There's so much more to doing software well than becoming rich. It's so sad that today's talent is so directed toward wealth. Sure it's very nice to be financially independent. But that's where the niceness stops. You can get too rich, I believe. It takes a lot of time being rich. TIme you should be spending being a person, and helping other people. At a human scale. I think in education we have a responsibility not only to help develop productivity, but also to help others.
Important term there -- human scale. We engineers spend a lot of time thinking about scaling. But one thing that does not scale is a human being. That's why there's no point getting too rich. You can only sleep in one bed, drive one car, be in one place at any one time. When you get too big for your britches not only are you unhappy, but that starts hurting other people.
It's even worse. Getting rich is like getting a disease. When you see people who are newly rich they are in shock. Do they ever come out of it? How do they deal with their own humanity after achieving what appeared to be something more than mortality. What humans crave is to be loved and appreciated and to be able to help others. That's all that matters.
When my father was sick, I spent a lot of time in the hospital with him. I got to know the hospital staff. One thing surprised me, but it really shouldn't have. They have very satisfying work, because they can see clearly how what they do helps people. Programming can be like that. I think we should teach that. Not just that it's possible, but to show our young people how to do it. To teach them how to do it.
I believe I've been lucky to have been born with the genes I have, and at the time I was born. I became an adult at a time of great opportunity. And I was pretty much in the middle of where it was happening. I have a few years left, and I want to use that time to make more of what I learned than just a codebase. I want to teach others how to do what I learned to do. And in doing so achieve a sense of fullfillment that I crave.
I figure there must be a school somewhere, run by people with great vision, who can see that the normal computing curriculum is good (it is!), but we can do some new stuff based on what we've learned in the last few decades. That teaching people to develop tools for computer users is something that should be possible to achieve great strides in. I believe I know how to do it.