2011 has been an immensely challenging year for me on a professional and a personal level. While nothing overtly awful happened (other than backing my wife's minivan into the mailbox... twice in a few months), there have been a lot of mountains to climb. As always, I like to spend my last TechRepublic Software Engineer post of the year talking about what I've learned and experienced, both professionally and personally.
Reflections on development and IT
The Windows 8 Developer Preview and Adobe's discontinuance of mobile Flash development are either the final warning shots or the opening artillery barrage in the HTML5 vs. native applications war, depending on where you sit. Some folks think I overestimate the impact and import of Windows 8; I counter that it is impossible to do so.Microsoft no longer believes that the desktop is a viable environment. Windows 8 makes it abundantly clear that the attitude in Redmond is that the desktop model will be only for niche uses (e.g., software development, movie editing, etc.) in a few years, and that consumer applications will all be touch and business applications will be mostly Web.
It is difficult to understand Microsoft's vision here, because by definition, we (and most of the people we deal with professionally and possibly personally) are one of those niches. If you are a programmer, it is very difficult to see how anyone can work with only one application on the screen at a time. If you spend enough time working with real-world users, you know they only work with one application on the screen at a time. Microsoft has been trying for years to get the multi-window UI to be adopted by mainstream users to no avail. Users maximize everything and use the taskbar to multitask, and copy/paste between applications, other than text and sometimes graphics, is extraordinarily rare. So why not embrace this and give users the simplified UI experience they clearly prefer?
In the mobile space, Apple is suing everyone, everyone is suing Apple, and Microsoft is kicking back collecting royalties on a zillion Android handsets (okay, I exaggerated here). How we got to this point is beyond me, but it is shameful to all involved. It is a bad sign, because we all know that patent wars are the refuge of those who cannot or will not innovate. Meanwhile, WebOS is now open source, and RIM looks like it's getting closer to the event horizon of doom.
The real surprise here is Microsoft. Microsoft was able to launch an extraordinarily decent mobile OS that sets a standard for innovation. If you look back to last year, I was very down on Windows Phone 7 (WP7), and I was dead wrong in many ways. The development experience, especially with the Mango release, is outstanding. Mango fills in the original release's gaps very well, and I now consider it feature complete. More importantly, WP7 is basically the trial balloon of the Windows 8 experience; those who have been working with WP7 have a big leg up for Windows 8 development.
If you aren't using HTML5, now is the time to take a look at it. The final lynchpin will be IE10, which will deliver support for many of the final pieces of the puzzle to make a shift from desktop apps to Web apps possible for applications that we always thought would be native-only. Web Workers and WebSocket are those missing pieces, and IE is the last major browser to not support them.
If 2011 isn't declared "the year of mobile," it is because it is declared "the year of cloud." In 2011, I saw a lot of people accept and even embrace the cloud when a year or two ago that looked like it wouldn't happen. The game changer is that vendors stopped focusing on "the big things" that folks are reluctant to send off-premise (email, sensitive data storage, mission critical services, etc.) and started offering lots of services that were not so critical. This has been a great sales pitch, because who wants to set up and maintain a niche or specialty application? The organization that might be reluctant to have Microsoft or Google handle their email would be happy to let Sauce Labs do their Selenium testing for example.
There's a cottage industry of companies taking common open source packages, deploying them to Amazon Web Services, and then repackaging them as a cloud server, and frankly, this makes far too much sense to me to ignore.
When I think of things from the viewpoint of an IT administrator, it's hard to me to justify trying to train a staff member to work with a particular OS and application combination (especially if you are a Windows-only shop and the application needs Linux, or vice versa), and when it breaks, you don't have any expertise in it. The cloud makes perfect sense here, and using it for these purposes builds confidence in it for other uses as well.
There are some industries and people who are very conservative in their IT decisions. They often have some very good reasons, which might include:
- Change is painful
- Change is expensive
- Change introduces risk
- Why change for the sake of changing?
- Lack of confidence in the new direction
That said, when I wear my IT administrator hat, I cannot wait for the cloud, HTML5, and mobile devices to wipe out the traditional desktop model. I hate dealing with desktop systems and the complexity they entail. I hate dealing with desktop applications and their strange quirks. I hate dealing with complex client/server applications and the insanity that they bring and the impossibility of troubleshooting them.
I want to be able to take a broken system, put it in a pile to be reset and RMA'ed, give the user a new device off the shelf, and let them turn it on, log in, and have everything the way they had it before. The iPad does this, the Android tablets mostly do this, and Windows 8 does this but the traditional desktop model does not. If I have to maintain an application internally, I want it to use standard tools and systems like IIS or Apache to minimize the things I need to learn to deal with. If I see one more custom Windows service to handle some piece of functionality, I am going to scream. I want to push as much of the complexity as I can to the cloud too.
Why are people worried about their jobs in the world of the cloud and simplified internal systems? I don't know any full-time IT administrator who only works 40 hours a week. All IT admins are overworked and often underpaid based on the hours they work, because they are constantly putting out fires, having to do work outside of business hours (which are getting increasingly longer too), and so on. Do you really think that taking some of the load off their backs will result in them having so much free time that they can be laid off in droves?
So that's where I see 2011: HTML5, mobile, and the cloud all conspiring to end the desktop model, and the vendors waking up and finally playing ball instead of resisting.Read Justin's updates on his personal life.
Justin James is an OutSystems MVP, architect, and developer with expertise in SaaS applications and enterprise applications.