The Layered Cloud

I’ve mentioned the agile and personal cloud in previous posts, and, like most architectural / patterny folks, I’ve started thinking about the cloud in layers (whatever the proper meteorological term for cloud layering is — it may really just be “cloud layers“). They are:

  1. The Personal Cloud
  2. The Services Cloud
  3. The Platform Cloud
  4. The Agile Cloud

I need to think a bit more about how to draw that layered picture — and your help is certainly welcome — but I think they do build on each other and have some inter-relationships as well. I will write more about the two middle clouds soon, but in the meantime the folks over at Perficient have posted the presentations from their cloud event a few weeks ago. You can check them out here.

The Personal Cloud

With all this talk of cloud computing at an enterprise level, it is easy to forget the much more powerful cloud that you are probably taking advantage of all day long. You get your email through any HTTP device thanks to Gmail, AOL, Yahoo, MSN, etc. Like apparently the rest of the world, I’ve latched on to Gmail — it is very reliable (despite its “beta” status), it has the cool conversation threading functionality that I hated at first but that now feels more natural than my Outlook inbox’s approach, and the BlackBerry interface is great, ensuring that I’m never far from email, despite my wife’s distaste of that same closeness. I sent my first Gmail email on August 31st, 2004, and, over four years of casual usage later, I’m still “currently using 258 MB (3%) of your 7305 MB.” Wow. Obviously, there are plenty of other email providers, but Google seems to have gotten it mostly right with fairly unintrusive advertising, solid if not perfect spam control, and a nice filtering capability that is a good way to label your mail.

Of course, there is no such thing as social networking without the cloud, and little is more personal. The MySpace phenomenon seems to have faded, at least in my circle of friends and colleagues, in favor of the wow-this-is-big wave of Facebook. Soon, you might not be perceived to exist if you aren’t on Facebook: “I’ve updated my status, therefore I am.” The natural extension of Facebook to the mobile devices of the times only makes it more powerful and ubiquitous.

(Though it doesn’t have much to do with the cloud, I do need to take a quick detour while we’re on Facebook: I’m continually amazed how it makes some connections that were previously difficult or impossible so much more straightforward. As an example, the other night my wife and I were at the Wings game. Maybe 20 rows away there was a guy my wife thought was someone we had gone to school with. I disagreed — it just didn’t seem like it was him, even though I hadn’t seen him in two decades. So, we logged into her Facebook account to check his status. You can guess it: “enjoying the Wings game tonight!” Bingo: a connection. LinkedIn is doing the same thing at the office, with its own set of connections and groups. It will be interesting to see how these worlds intersect, or if they do. Today, there is a pretty clear distinction — LinkedIn is clearly your professional profile, filled with certifications and professional  updates and work-related statuses, while Facebook is all about your dinner with friends, carting the kids around, or your clearly personal opinion of the world — which, if carelessly utilized, already can negatively intersect with the LinkedIn world by getting you fired.)

Of course, not everything is email and social networking. You still have to create documents and spreadsheets. At the risk of sounding like a Google fanboy, Google Docs does seem to have an advantage here (though I think Buzzword has a much more elegant interface for documents). We’ve used both the documents and spreadsheet capabilities at work and, particularly for collaborating, they are truly powerful tools, cloud or no cloud. Have everyone get into a shared spreadsheet (sort of fun if you are all in the same conference room, too, but not required) and start editing. It is wild the first time you see where everyone else “is” in the spreadsheet — sort of like a bizarre game of Battleship — and realize how easy it is to collectively edit and add to the information. Much more effective than a shared Excel spreadsheet on a network drive — and cheaper. Same effect for documents, and the freedom from 980 Track Changes versions flying around via email feels about as liberating as the first time you realized you could carry around your music library as digital files on your iPod rather than lugging your Discman and CDs everywhere. Well, alright, maybe it isn’t that cool, but it is liberating.

So, were in good shape. We’ve got email, our social network, our documents and spreadsheets, and instant messaging (a longstanding killer cloud app) all in our personal cloud. We can work everywhere we have a browser, a connection, and a few user names and passwords. Whoops. One second. We do need some music. Cannot work without music. Your iTunes library is pretty portable as long as you didn’t forget your iPod, but Apple really needs to make it available to you wherever you are for it to be a better cloud experience. In the meantime, Pandora is my current favorite for cloud music. Tell it the sorts or artists you like and it constructs a personal internet radio station, and you can rate the songs they select so that it continuously improves to match your preferences. The best feature is that it won’t be long before it recommends a song you like from an artist you’ve probably never heard of. And like anything in the cloud — status, documents, or email — it is really easy to share — here’s mine.

For files that don’t have a good cloud home yet. a good friend of mine recently introduced me to Dropbox, which is very handy as well. I typically work on at least three or four computers a day, and having a place to store documents or files I would like to get to from many different machines is wonderful. It feels sort of like a personal Subversion repository in the cloud, and their introductory email image (below) certainly makes reference to that angle of their service.

Finally, it would obviously be rude of me to not talk about WordPress. Here I am, running Ubuntu, in Firefox, riding a “free” connection thanks to my coffee purchase at Panera, blogging away, with little to no configuration. Wonderful stuff, perfectly personal, completely free.

I have to say I love the power of this personal cloud. Are you doing anything interesting with yours?

The Agile Cloud

This morning, on the cold and wet streets of metro Detroit, I had the good fortune to attend an interesting mini-seminar on cloud computing. The hosts, Perficient, assembled some of their own folks as speakers and also invited two core cloud vendors, and Google, to speak as well. I had a few observations.

First off, those of us who are traditional IT folks are going to be in for a lot of change in the next few years. Gmail and Google Docs will probably be used by nearly everyone instead of the “standard” Microsoft tools. They provide the core functionality you need as a user, they are available wherever you are on whatever computer you happen to be on (bring out the netbooks), and you can use them offline via Google Gears or even from your BlackBerry. If you decide you need these core apps in a corporate / enterprise environment, you can pay a mere $50 / year / user. What do you get? Freedom from MS licenses, hardware hassle, disaster recovery (mostly), and ediscovery (Gmail provides 25GB of storage for each user and archives for 10 years). These consumer tools are ready for the enterprise, and even the US’s new CIO thinks so.

Secondly, is doing a really nice job with the platform. Where I work, we adopted open-source and agile software development methodologies for our custom software efforts about three years ago. We also decided to pilot for a big group of sales folks (about 250) who did not have a CRM solution of any kind at the time because we believe it provides world-class functionality that we could not easily or quickly build ourselves.

I also persuaded myself to embrace in part because I believed that its speed-to-market capabilities would actually support our agile development process at least as well, if not better, than our standard J2EE technologies and tools (Apache, JBoss, JSF, Hibernate, Eclipse, SVN, Oracle). This has turned out to be the case in spades. Want to be agile? How about starting from ground zero and delivering your app to production at the end of your first one-week iteration? significantly reduces the infrastructure overhead of source-code control, development environments, Cruise Control scripts, etc., etc. Don’t get me wrong — I love that stuff and I and my teams know how to do it well. But, in the same way you can change your own oil but it is pretty cheap and convenient to have Uncle Ed do it for you, you can deploy much more quickly using a cloud platform — and still have a lot of fun in the process.

Kudos to the Perficient team for pointing out this agile relationship (though I have to say they didn’t hit it home strongly enough). And the Google and teams also didn’t point out one important detail: if you are a user, you get integrated Google Apps for free. Hello. And the Google folks didn’t do a very good job of demoing their own (powerful) tools. But through the presentations, you could see that the core content was enabling what I thought of as “the agile cloud.”

The Manifesto for Software Craftsmanship

I guess it has been eight years since the Agile Manifesto was originally published. It certainly doesn’t seem that long ago, but, then again, even that recently, agile was still considered relatively avant garde. It was something that you would likely have to convince your teams and customers of rather than one of the mature methological choices available for software development. Thanks to a recent Chet Hendrickson post to the Michigan Agile Enthusiasts group, I just learned of a newer software craftsmanship manifesto. Check it out.

Facebook is a Lens through Time

Like millions of other people, and likely you in particular, I’ve been using Facebook for a little over a year now, but in the last three months, thanks to a few connections from high school and now grade school, I’ve realized that its strongest — and most unexpected — value to me is as a lens through time. Suddenly, a collection of grade school classmates that, if you had asked me 12 months ago, I would have said I would literally never see again, is planning a reunion. A neighborhood friend I had lost contact with around ninth grade, when we moved to a new house, is suddenly once again in my friend list, his daily status updates a reminder of his personality, which I had almost forgotten. We have all lived our independent lives, in most cases within a circle whose circumference, if traced on a Google map, would measure no more than 20 or 30 miles, without running into each other for over two decades, and suddenly the strength of the FB network has drawn us all a touch closer.

The strongest attraction in all of this reconnection has been the remembrance of things past, things that had faded so completely from my memory that I would not have been able to recall them without the prompting of others who were also there. “Wow, I completely forgot about that teacher,” and, “Yes, yes, that day was hysterical!” and, “Jeez, I thought I was the only one who thought that.” Another surprise is how completely other things really are erased. “I have no idea what they are talking about,” or “I don’t remember that kid at all.” To some degree it feels as though my childhood was nothing more than a movie I’ve seen a few hundred times, and despite these repeated viewings it appears that there are scenes I’ve missed, eclipsed by a phone call or a snack break.

Why Fail Fast?

Wired ran an interview of Freeman Dyson in which he had the following exchange with Stuart Brand:

Brand: So you’re saying just go ahead and try stuff and you’ll sort out the right way.
Dyson: That’s what nature did. And it’s almost always true in technology. That’s why computers never really took off until they built them small.
Brand: Why is small good?
Dyson: Because it’s cheaper and faster, and you can make many more. Speed is the most important thing — to be able to try something out on a small scale quickly.
Brand: Fail fast.
Dyson: Yes. These big projects are guaranteed to fail because you never have time to fix everything.

“Fail fast” has been a mantra of mine ever since. Actually, it has been more of an obsession, as anyone who has worked with me for more than a few weeks can confirm. I’ve decided to extend this infatuation to a blog so I can share with you the many references I’ve seen — and my friends and colleagues have shared with me — to document the concept, its many flavors, and its considerable benefits.

The FAILFST License Plate.

The FAILFST License Plate.