Oh my god. It's full of code!

You know, I think I might hate technology

Something has been brewing recently. Some kind of change in my consciousness, and I think I finally know what it is. I hate technology, or more, I hate what it has become, and for one overarching reason. Everything is too damn complicated.

I’ve been working with computers since I could reach the keyboard. I’ve modified games, done 3D modeling, programmed websites, hacked servers, got my A+ at 16, MCSA at age 18. I worked as programmer when others had jobs flipping burgers in high school. I’m number one on the cloudspokes leaderboards, am sought after for technology consulting and have even owned my own technical support company. Point being, I’m not an idiot (at least when it comes to computers). Just trying to build some cred here for when you inevitably want to call me dumb in about a minute.

So, as I was saying recently I’ve felt a little frustrated, like I’m just not getting things. oAuth, Federation, apps, heroku, half the vendors at dreamforce,a dozen different prominent languages, the list goes on and on, and the same nagging question always hanging in the back of my mind: Why? Why does it seem like half of the things I hear about are answers to questions nobody asked. Solutions to problems that shouldn’t even be problems. Why are there so many steps to everything, many of which are obtuse and complicated enough to make me want to give up. Here for example, lets check out a recent coding contest I’m looking into.

http://www.cloudspokes.com/challenge_detail.html?contestID=295

Basic premise being, watch a users google calendar, and if there is a meeting on it, set their status to busy. Now this, in the ‘old’ world would be an easy proposition. Write a small tray application that lives on the users system, polls their calendar every 5 minutes or so (using some API), and then update their status (using some other API). This is something you could probably bang out in an hour or so (not counting reading a few API docs). Now lets compare to the ‘new better cloud based’ style of development.

1) Download Python
2) Install google app engine launcher
3) Register for a google apps business account
4) validate your account using a phone number
5) Create your application in google
6) Attempt to write actual application
7) Include oAuth
8) Include single sign on so app can be in marketplace
9) Create domain name
10) Deploy app to domain name
11) Pray you don’t violate some quota or rack up a huge bill
*Steps 3 and 4 done using intensely cumbersome interface that took me an hour or two to actually accomplish anything with.

Notice anything odd here? Thats right, only one step of 11 here is actually you know… writing an application. It’s also arguably one of the easiest. The rest ranges from tedious to herculean. I understand the benefits of cloud development, I really do but there has to be a better way. Seriously, the above process is bad enough where I am likely going to abandon the cause not because the coding is too technically difficult but because all the crap around trying to make the application deployable.

It’s not just google either (though they do seem to be one of the worst offenders). There is too much technology out there that just exists because, it was a cool idea. Us nerds love to develop stuff, it’s what we do, but many of them seem to be intent on creating as many problems as they solve or replacing one complex process with another. The tools aren’t making life easier, they are just making it more abstract. It’s to the point that half the time I don’t even understand what it is I am technically doing when a follow a guide, I’m just following the steps and praying that it works. This can all be summarized really in one statement.

“It used to be when I heard about a new technology or service I was excited. Now, I am just depressed.”

Do you know why? Because it means that it’s another temporary solution to a minor problem that I am going to expected to learn or be considered outdated. It means that my life likely just got one layer more complicated as I try to grasp what it is this new technology even does and then struggle to try and implement it because it’s the newest fad. I’m 23 and I’m completely exhausted. Technology used to be fun, now it’s a chore.

Another example, let’s talk mobile. So it used to be you could develop one website that had a fairly flexible style and some reliable javascript and you’d be fine on all the major browsers (well of course excluding IE). You’d write up a site in your favorite languages (for me it was always ColdFusion and the standard front end languages) and rent some server space somewhere and you were done. Now you have to

1) Find a cloud provider
2) Learn whatever language it is they support (it’s always some language I don’t know too, which sucks for me)
3) Learn about their quotas and rates, what calls are and are not allowed.
4) Develop the website once for regular browsers.
5) Develop the website again for mobile
– Figure out how to access mobile device features
– Make sure it works on every size screen imaginable
6) integrate with every fucking site on the planet (if you are linked to twitter and facebook and flikr and every other tool on the planet you might as well kill yourself now because it’s completely worthless)
7) oAuth, can’t have enough oAuth. oAuth all the things!
8) Make an app for your website, make a tile, put it in the app store, put it in the market put it everywhere.

It’s just too much. I can’t keep up. By the time I get all that stuff working, those fads will be long gone and it will be the next thing. Seriously the amount of stuff you seem to have to know and keep track of to be a developer worth anything borders on insanity. I mean I work with this stuff 8 hours a day, and generally read about it at home, and am fairly immersed in it, and I just can’t keep up. You are made to feel dumb if you don’t know everything about everything but it’s just so overwhelming. What is the most aggravating is most of this shit doesn’t even really add any real value. Most of those extra steps don’t give any extra features to your application, or make the user experience better. It’s all just for cost and reliability which as a developer I hardly give a shit about. It feels like I’m taking on finances job of cutting costs and the sys admins job of developing reliable systems on top of my regular job of writing software. Sure those guys are happy now, but I got the butt end of the stick.

I’m tired of feeling behind. I’m tired of feeling like everyone else ‘gets it’ and I don’t. I’m tired of fad technology. I’m tired of simplicity being a cuss word. I’m tired of having to feel like all my software is just glue holding things together.

I could go on and on about useless gadgets, phone systems, firewalls, VPNs, etc but really… I just want to go outside.

8 responses

  1. While I think that the premise of your post *might* have a little validity, I think it’s also somewhat naive and short-sighted. This portion in particular is rather myopic in my opinion:

    “Now this, in the ‘old’ world would be an easy proposition. Write a small tray application that lives on the users system, polls their calendar every 5 minutes or so (using some API), and then update their status (using some other API). This is something you could probably bang out in an hour or so (not counting reading a few API docs).”

    You are conveniently ignoring all of the deployment hassles and problems inherent with desktop apps. Also, I think that your estimate on development time might be rather optimistic as well.

    The reason that cloud computing is worth the hassle of all the things you outlined above is that it gives the developer & app distributor visibility into adoption and user experience. With your desktop app, you’d never really know how successful your app was, and good luck diagnosing all of the problems with installation, environment issues, app version conflicts, etc. Sure, the cloud hasn’t solved all problems perfectly, but it has solved some major problems with application deployment pretty well, and I for one don’t want to go back to the ‘old’ world of desktop-centric IT.

    In the ‘old’ world I spent thousands of hours of my life re-installing operating systems, diagnosing phantom device driver issues, rebooting systems, searching in vain for solutions to mystifying errors, and more tales of IT horror than I can possibly recount.

    I won’t spend the time to recount all of the things that are good about the ‘new’ world because that has been done countless times in other places, but suffice it to say that I think the benefits pretty handily outweigh the drawbacks.

    Lastly, no one is forcing you to work with these ‘new’ technologies – if you want to ditch the cloud computing world and go back to building desktop apps that a rapidly shrinking market will be interested in using, then go right ahead…

    September 19, 2011 at 9:34 pm

    • You are absolutely correct on many of your assertions, it may just be a case of ‘the grass is always greener’. I do love cloud development, I’m just.. exhausted for lack of a better word. It just doesn’t feel fun anymore. I don’t know exactly why, maybe because I constantly feel dumb. Like everyone else is just sailing along getting it all with no problems, and here is me struggling to make sense of things.

      As for deployment of my app, why do I care about adoption? I write it for users. If they want to use it great, if not that is their problem. As far as your other points, those are known as bugs which exist just as much in cloud software as much as desktop, they just manifest differently.

      While I don’t love everything about it, I’m not so blind as to think it’s going away. I know if I want to be even halfway relevant I will have to learn and adapt I just don’t even know which route to go. So while nobody is forcing it down my throat per se, if I don’t jump on, and stay on this bandwagon I’ll be in the same boat cobol programmers of today are. It’s definitely the future, and rightly so. That just make it stressful on people who actually in the trenches writing the code. It’s easy to sell the ideas because they sound great. It’s harder to actually implement them.

      Also, I don’t want the cloud computing arena to become one big self reassuring thing. Questions need to be asked, weaknesses need to shown. It isn’t perfect and I’m not afraid to voice things that I think are wrong with it. If nobody is willing to disagree or be the critic then you just have a bunch of ‘yes men’ all saying how much they love everything and while that is really nice it doesn’t exactly help advancement.

      I’m not trying to attack anyone here, or even anything. I guess I just wonder if I’m the only one who feels this way, and if so, what the hell is wrong with me? Why is everyone else so happy, and all I can feel is dejected?

      September 19, 2011 at 9:46 pm

      • It sounds like you just need to pace yourself, and be more strategic about which projects and technologies you choose to work with. Yes, if you try to win every Cloudspokes challenge, you’re going to be pretty exhausted!! Pick the ones that really get you excited and also don’t force you to start entirely from scratch. Take a step away and do something completely different for a while – to get perspective on whether or not you’re on the right education & career path.

        Appreciate the journey! Enjoy learning new things, and enjoy contributing constructive ideas and solutions back to the community to help all of us build better apps and systems. Have a long-term perspective on your experimentation, and don’t try to do everything at once. Look for principles and patterns that you can apply to a variety of situations and platforms, and use those to help you continually adapt to and take advantage of the new technologies that you are presented with.

        September 20, 2011 at 6:56 pm

  2. Hi Dan.

    Shoelaces, buttonholes and zippers are technologies. They are pretty simple, and we may even think they have always existed. I wonder how many failures we got before they got so simple? Edison had 10,000 “opportunities to learn” before his light bulb, so it falls to us as the inventors to make things easier.

    A basic economics principle suggests that as long as there is an improvement to be made, there is one less barrier to competition. We get to invent better ways, so the presence of technology we dislike could be seen as the source of opportunity for the innovative (such as I assess you to be).

    And don’t worry about attacking anyone if that is not you intention. When you surface gaps between today and tomorrow, you give ideas to other innovators who maybe can do something about it.

    So have fun with it. It gets better.

    –Ken

    September 20, 2011 at 10:31 am

    • Hey Ken,
      That is some great perspective. You are very right about it the time shaving down perceived complexity. I guess that happens when you try to be on the ‘cutting edge’. Of course some of this stuff seems hard, a lot of it is brand freaking new. I think many of my issues stem from wanting to be seen as some kind of pro, but in my head feeling like I don’t know anything. I think I just need a good project to work on. Too much of what I’ve been grinding away at recently hasn’t really been coming to fruiting and it seems like I’m just spinning my wheels in vain. Anyway, thanks for the feedback, definitely some good stuff to think about there.

      September 20, 2011 at 7:02 pm

  3. @apexsutherland Man, I think you hit the nail on the head there. Just gotta slow down and choose a few things to focus on instead of trying to do everything. Choose a few core competencies and really get pro at them. For some reason I just have this irrational fear that I’ll be talking with someone and I’ll say how I do things and they’ll laugh at me because I’m not using the newest and greatest approach. Doesn’t really matter I suppose but if nothing else I’m a neurotic mess XD

    Your overall point though really hit the mark. Slow down, choose a few things to be good at and try to enjoy the trip more. I couldn’t ask for better advice than that.

    September 20, 2011 at 7:05 pm

  4. Dan,
    great article, but I feel the complete opposite. I am 45, started coding CICS apps and now am working for an amazing cloud service company. The opportunities and learning that this career afford me are great. Yes, technology is always changing and there are always new languages, platforms and frameworks to learn (or better yet choose to learn). Sometimes you pick some technology that may be supplanted in a few years – but as long as your having fun , the exercise and experience is itself a benefit.
    Relax and enjoy the ride. Your doing an amazing job so far.
    Peter

    September 29, 2011 at 2:11 am

    • Hey man, thanks for the input. You are right, it really is an amazing landscape technology wise, with lots of options and opportunities. It is generally fun, and I think most of the frustration I harbor is just due to ‘not being smart enough’. I’m a competitive cocky bastard and I don’t like feeling like there are things I can’t do. One thing I’ve had to accept I can’t do is being on top of all the new technologies. I want to do it all, especially because it feels like everyone else already is. New technology gets announced, it feels like I’m the only one who isn’t ‘in the know’ and already using it. It’s draining and chips away at a dudes confidence. When I made the post above I was pretty depressed, which happens sometimes. Now I’m feeling much better about things in general, but I won’t deny that I still feel some of the points I made still stand. Not most, but some.

      September 29, 2011 at 5:43 am

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s