This is sort of another “Technology is useless” post. Recently I sent it as an email to a few people I know after I said I was becoming disillsioned about the software industry. I think the software industry is getting better at looking at how it makes software, but nobody seems to be thinking about what the software or the company they are at actually does.
I am kind of frustrated with the software industry. I am trying to transition to another language (Ruby) that companies say they are clamoring for. Yet they all want someone with a few years of experience. I could probably get a Java job, but then the next time I look for a job, people will look at my resume, and say, “Hey, he’s done Java. Let’s give him another Java job.” I would like to get out of that trap. I don’t hate Java, like some developers do, but I would like to have some choice in the matter. I went into software to have more control over my life, but that does not seem to be happening.
Plus a lot of what goes on in software seems pretty stupid. Everybody keeps talking about startups, and counting on that to save the economy, yet a lot of them do stuff that is pretty stupid. Like finding bars that are not crowded. Or they are replicating some particular vertical from Craigslist (selling furniture, finding a babysitter). Or they have something to do with Facebook or Twitter.
Meanwhile peak oil and climate change are still bearing down on us. Shale oil may not be the savior that people hoped. We are still using hydrocarbons for transportation, while using more of it for plastic would be better (since plastics can be reused and recycled) and we are not doing enough to push electricity for transportation. Norway is going to try using thorium as a nuclear fuel. I am not sure why nobody tried this sooner. (If thorium is even half as good as its boosters say, it would still be worth it in my opinion.) I would like to be involved in finding and using energy, but I don’t have a degree in engineering, and I am not a grad student willing to work for half-price.
Startups and a lot of consulting firms do have a better process for making software than large corporations. It is more iterative and more responsive to users’ needs. It is easier to test, tested more often and in more ways, and generally easier to change. Larger firms, on the other hand, use what is called the “waterfall process”: make all the decisions up front, have a Bataan Death March to implement it, and hope that the users’ requirements have not changed in the meantime. So the people with the best process are making the least relevant software.
The last place I was at managed the electrical grid for a few states. (So far they have not asked me to come back, and for a variety of reasons I may or may not apply for another job there.) People complain about brownouts, but if the grid were to be overloaded and shut down, it would take three days for it to be turned on again. So the lives of 20 million people would be on hold for three days. They were pretty bureaucratic and slow, but what they do is pretty important. Go ahead, tell me how important your startup is. Tell me how important Facebook is.
But most startups think that what they are doing is a big deal, either due to the specific product they are pushing or because they are a Startup, and as we all know, STARTUPS ARE MAGIC. (Why? Because it’s a startup, silly. The reasoning always seemed kind of circular to me.) They go through incubators that cycle wave after wave of Zuckerberg wannabes, not seeing any irony that they are all depending on electricity from the same boring utility they all probably think they are too good to work for.
I think a lot of people are too enamored of their processes and technologies to ask themselves if what they are doing is useful to society, or even to themselves. I know someone who left Groupon who is now dedicated to helping software developers improve their skills. On one level, that is a good thing and should be encouraged. But once again, I wonder how much thought he has put into it. On his twitter profile, he says that “Latent human potential pisses me off.” Wonderful. But does he think about that human potential is doing? If all of the mental energy that people expend on sports and their iPhones was devoted to evolution and particle physics, we could probably cure cancer and have fusion in a decade. Nobody is predicting the oil will last beyond a century. What happens then?
I was at a tech meetup recently. The guy running it said he would start letting recruiter emails through to the list. He will still filter out the ones for people who are just cloning Groupon and Pinterest. Everybody else laughed when they heard that. But I wonder how many of them laughed at Groupon or Pinterest. Nobody would laugh if they heard about someone building another power plant, or building another desalination plant, or converting more land to farmland. Nobody would ask why anyone would want more electricity, water or food. Nobody would say, “Don’t bother, it’s been done.” If you think the clone of something is a dumb idea, then the original is a dumb idea too.
(When Groupon started, I needed people to explain it to me more than once. It’s like curling: It’s so stupid, my brain kept rejecting it.)
In the past couple of years I have seen some interesting changes in the industry. People are now talking about the process of learning and productivity. The Pomodoro Technique and sites like LifeHacker are improvements. I don’t remember software developers ten years ago approaching the process of making software from that angle. There is also more attention paid to process, testing and workflow.
But sometimes I think that the infatuation with learning goes too far. I think for a lot of developers, the ideal is to be a trainer or an educator, to bring new people into the fold or help veteran developers do their jobs better. Another highly esteemed goal is to make software that other developers use in their toolchain: A library, a framework, an editor. Then there is all the obsessing about toolchains and workflows that developers do, and chasing trends. Should I use vim or Sublime? Moving the industry forward is necessary. But what about the users? When do we stop obsessing about how we make software, and start thinking about the people who use it but know nothing about how it is made? What about all the real problems our world is facing? I don’t mean the fact that many IT shops are on old versions of their software, or using bad processes or languages that you don’t like. Things like the fact that the world’s population is increasing, while crop yields are flat. The fact that the processes of producing and procuring energy are taking more energy. Perhaps software can do nothing for any of these issues. But let’s not confuse making your life easier with helping humanity. I just think that people with college degrees should do more to help the world than people who are less educated.
Some agile developers write books, make videos and put on conferences about their processes. Then they go back to writing software for startups that clone other startups. If the only people who take your advice are irrelevant, doesn’t that make you irrelevant too?
There is an article out there called “Facebook the Devourer” with a good line: “The best and brightest have been lured into the beast with giant paychecks, childish perks and the idea that somehow a new blue square button on Facebook is the best possible way they can change the world.” But what does changing the world mean? For me, it means find new sources of energy as well as more ways of utilizing current ones and designing and building the infrastructures to use them.
So anyway, I don’t have a degree in engineering. Should I just go to some startup or corporate job and suck it up while the world’s fuel tank goes to “E”? Maybe one person can’t change the world, but I am not too thrilled with where I see things going. I have had jobs that I have hated. Even though it can be good money, having a job you hate can be more stressful than having no job at all. I have this hope that if I learned some more math that maybe I could make software that is actually useful. I am involved with a library to implement math functionality in a language usually associated with web apps (Ruby). Perhaps I could be some roaming math/energy consultant before the seas rise and there really is no money to do things we should have done 30 years ago.