Failure, mobile's teenage years and the cloud

I can't believe that Distill is next week! It's been an incredible experience getting to know the speakers and sponsors and putting all the puzzle pieces together. We're all so excited to show you what we've been working on.

In our freshest installment of getting to know the Distill speakers, we have Kerri Miller, John Mertic and Richard Watson.

Psst, tickets are still available, but we're close to selling out. Get yours now.

Kerri Miller, Senior Software Developer, Blue Box

1. Failure is somewhat of a loaded term. In what way can learning from failure turn that frown upside down?

When you're working, the goals are to accomplish the task, avoid failure, and get things done. Space to truly engage in learning is incidental. You are in a closed mode; “don't distract me, I'm on a mission!” What if we could engage with the work in an open mode, where we see not failure, but a result? A scientist doesn't see surprising results that disprove their hypothesis as "failure" but as data. If we do the same, by approaching a problem with the idea of exploring the problem area, of learning something, with curiosity and openness to the unexpected, we can learn more than just how /not/ to solve Problem A, but also how to solve Problems B, C, and D!

2. While this talk is aimed at developers and your experience as a developer, isn't really a universal idea that speaks to heuristics? It really is. I've had a number of careers and hobbies over the years, and whether its poker or puppets, cooking or coding, the pattern remains the same. Being open to the experience of doing, with humor and curiosity, always results in a richer experience.

3. Do you think it's a misconception that the only way to learn to be a developer is to "RTFM" or to "just do it"?

RTFM often just exposes you to information, which is important, but I'm more interested in transforming "knowledge" into "wisdom". A good developer knows "how" - a great developer knows "why".

4. What is the future of the web/technology?

That's anybody's guess, isn't it? I've seen enough cycles of boom and bust to know that whatever is next is going to come out of left-field and change not just our process and tools, but will shift our relationship to technology, the role we let it play in our lives. Email came along and we stopped writing letters, but write each other more frequently. Smart phones came along and so many of us now can't recall our best friend's phone number, or carry maps in the glove box of the car.

So what's that next thing going to be? I think the world of distributed devices has some potential, as technology begins to become a cloud of specialized devices around us, our computing devices being hubs of interaction.. but I wouldn't buy stock on that hunch yet!

For a developer, the best thing you can do to make sure the leading edge of the wave doesn't swamp you is to stay sharp, nimble, and continue to see the possible in new platforms and languages. Base skills like empath and effective learning will pay far more dividends in the long-run than memorizing every last flag on a command line tool or class method. Spotting patterns, learning new tricks, and being capable of change - being curious - will serve you well.

5. What is technology doing to make the world awesome?

As much as people lament technology driving us into isolation, it doesn't have to; I think the best technology enables, rather than replaces. At its best, it can give us new options, opportunities, and avenues to participate in the world, however we choose to.

John Mertic, Solutions Architect, SugarCRM

1. What excites you most about the future of the web?

I'm seeing us actually start working with the web versus despite it. Think of technologies like REST and HTML5, and then look at the previous technologies of SOAP, Java applets, and Flash; we are seeing the web as a unique platform with great strengths as opposed to yet another transport layer. This transition will really help that next generation of web-based technologies flourish.

2. Outside of the web, what technologies are you most looking forward to?

I'm looking forward to mobile getting out of it's awkward “teenage” years and to the place where it's actually helping you be more productive. Some of the concepts of Google Now, Windows Mobile ( I know, gasp! ), and others are going to be huge when it takes off, but we need to get past the “we should make a mobile app, just because we should” phase.

Also, someone to make a DVR better than my Tivo ;-). Come on, this can't be that hard people!

3. What is the future of the web/technology?

We are going to be seeing us getting technology closer to true real world use-cases, especially in the enterprise. There's a ton of innovation and cool ideas going on, but most need to be grounded in solving real problems.

4. What is technology doing to make the world awesome? Things that are centered around resource efficiency ( less gas-guzzling cars/planes, energy-efficient building ) is a huge trend, but finding ways to backport that tech into the structures, devices, and vehicles of today. That would be a lot more “green” than many of the “green” projects of today ;-).

Richard Watson, Developer Evangelist, Engine Yard

1. How has the Cloud changed the way we look at developing applications?

Not enough! That's exactly what my talk is about. I urge developers to think about the power at their fingertips now. Most of us are still building applications exactly as we have been for 10 or 15 years, since the 3-tier web app model became the norm. We need new models and new patterns. I compare this to the first car designers in the 1900s, they treated the car like a horse with wheels instead of a powerful new mode of transport.

Expecting to take a conventional application and run it on a cloud platform is naive and wasteful. Clouds have different things they're good at, very different pricing models for using resources, but they also fail in different ways. So I call this ‘the end of WORA - write once run anywhere'. We need to wake up to the fact that writing an app once and expecting it to run fantastically well on a cloud, any cloud, or many clouds is just not a reality. Or at least if we do, we won't be getting the results we expect.

2. There is a perspective that the cloud is still young. How do companies like EY overcome that perception?

I'm not one of those grumpy old guys that growls that there's nothing new in the cloud. But I have been building distributed systems for 20 years. Yes, we had multi-tenancy and virtualization before, yes we've had parallel and grid computing for decades. But it's the ubiquity, on-demand, self-service model, with low utility prices that makes building things that were previously impossible possible and makes building traditional apps cheaper and faster.

Also, Engine Yard has been helping web companies deploy and scale on clouds since 2006. The cloud and PaaS market and the language we use to describe it has formed around what companies like Engine Yard and Amazon Web Services have been doing for nearly a decade. If you look at how Engine Yard has supported customers like Groupon from the start, right through their IPO, and others like Badgeville and Bleacher Report, allowed them to grow their application and ops in a way that makes sense for their business.

3. Its seems cloud allows developers to think in less language specific terms. (this is more a talking point than a question)

Yes, but they must start thinking in more service-oriented, distributed systems terms. The key word in “as a Service” is “Service”, whether you are talking about “Infrastructure as a Service”, “Platform as a Service”, or “Software as a Service”. The service interfaces are mostly just HTTP and on the wire these are typically JSON or XML, which all languages and platforms can consume, so the technical barrier to using these services from any language is really low. Supporting multiple languages is table stakes for a cloud platform now. The “service” in “as a Service” also means the people kind of service. People who give a damn if your app is using their service. So, the tension for cloud application providers is around the fact that adding language stacks is the easy bit, building a team of world-class support people around that service is much harder.

Anyway, developers are thinking more and more of themselves as polyglot now. Every week, we host meet-ups here at the Engine Yard Dublin offices. We sponsor communities such as Ruby Ireland, PHP Dublin, Node.js Dublin, DevOps Ireland, Postgres Ireland, and other vertical groups like gamescraft. We've noticed a shift in the people coming to the groups. Of course, some of the same faces show up for the beer and pizza we feed them, but many of them are fluent in many different technologies and just pick the right tool for the job at hand.

4. What are the benefits of having an application in the cloud versus a more conventional setup? In my talk, I briefly remind us why we're interested in the cloud. What I want people to take away are not just the design patterns that work in the cloud, but also the why: this is the link between how you design your application and the reason you're choosing to deploy it in the cloud.

Look, there's been many atmosphere's full of hot air created by people talking about what the cloud is and what it isn't. For me, it's really simple, if you look at the common characteristics of a cloud solution:

  1. It uses shared and dynamic infrastructure

  2. It is provisioned on-demand, as a service

  3. The system is elastic and scalable

  4. Consumption of computing resources is metered

  5. The service is available across common networks

Taken together those five characteristics solve technical and business problems we've been struggling with in technology for decades. That's what's so exciting, is seeing new businesses use cloud that couldn't exist beforehand because the growth economics didn't make sense, or the cost of experimentation was too high, or access to clusters of high-performance kit was out of reach for all but the elites. But … and this is the crux of my talk at Distill, those characteristics don't come for free by running apps on a cloud - you need to deliberately design your system around them.