Tag Archives: heroku

The Monki Gras London 2013: scaling craft, how to be happy at work, defining software excellence, and lots of beer

I attend numerous technical events, most of which are vendor-specific. There is nothing wrong with vendor-specific events. If you want to explore what is on offer from that vendor and quiz  their people, they are ideal. You will be aware though that they are promotional events and give you a skewed view of the world, for which you need to make allowance.

Therefore I particularly value events which are not vendor-specific. They may still offer a skewed view of the world, but at least it is vendor-neutral. Redmonk’s Monki Gras is one such, managed by analyst company RedMonk, in particular by its co-founder James Governor.

image

The event is small, with around 200 attendees, with a bias towards software developers. Seeing the picture above you will observe that it is not entirely vendor-neutral, in that it is sponsored by companies including Amazon, Adobe, twilio, Red Hat, Citrix, SAP and Heroku. Multi-vendor then, rather than vendor-neutral? Arguable, but there was little patience for product pitches and the event was one which was able to hear Basho’s Shanley Kane telling us to discard all our tools (a move unlikely to please vendors), so on a scale where zero is pure marketing fluff and ten searing honesty, I would award it at least an eight.

The Monki Gras is not just about technology. It is also about craft beer. This its second year, and there was even more beer content this time around. Possibly (said sotto voce) more than you might prefer if you have only a passing interest in the subject; but if so, perhaps this was not the right event for you.

image

Why the beer? Because developers like it. Because it is a craft that does not scale easily. Because it is characterful, flavoursome and distinctive, and individual examples aspire to excellence, all qualities that I suspect Redmonk value.

The combination of Redmonk values, generous sponsors and small size make this an event with exceptional catering. Not only craft beer, but also fresh fruit, Sushi, fresh ground coffee prepared by a skilled barista, and at the evening event, a breathtakingly good selection of cheeses of which I got to taste only a few slivers because my hotel arrangements required an early departure.

image

One of the ironies of the Monki Gras is that this kind of excellence does not scale well, with long queues for coffee and lunch, and on the Thursday evening one of the slowest meals I have attended. I left after three hours by which time it had reached the third course, but missed dessert and cheese. Good things take time and I guess this is all part of the Monki Gras experience.

What about the technical content? Technical may be the wrong word; and the published agenda is only an approximate guide. A Twitter search is one way to discover what was said; or you can check my tweets for those days; despite poor wifi there were enough smart gadgets that plenty of tweets got through. The focus was on the human aspect of software development, summed up for me by Cyndi Mitchell of Logspace and Thoughtworks, who said:

Software is fundamentally a human, interactive activity – if you don’t understand that, forget it.

Here are some other highlights, not comprehensive, but some of the things which caught my attention.

Rafe Colburn from Etsy who observed that to improve the craft of software development, you need to make time available by automating whatever you can.

Craig Kersteins and Matt Thompson from Heroku talked about developer productivity, with the startling statistic (I have no idea how they get these figures) that 76% of the worst-performing engineers suffer frequent interruptions. Software development needs focus; they suggested 4 hours of continuous uninterrupted work each day. At Heroku they use headphones as a “do not disturb” sign and respect that.

That risks the opposite danger, lack of communication. Hence another Heroku strategy is to give staff free lunch with long tables, to promote communication, and slow coffee machines that make a jug at a time, to promote sharing and collaboration.

Mazz Mosley and Nick Stenning from the Government Digital Service – which is transforming UK government IT from the inside, with generous use of open source and common sense – spoke on not recruiting developer rock stars, who create a single point of failure in your team. Rather, they aim to nurture collective intelligence.

This talk went down well at the Monki Gras, but while the thought makes sense, it intrigues me. Could the same person who becomes a “rock star” in one team be part of “collective intelligence” in another? Is not this more about how you manage your team, than how you recruit? And could a key leader that creates such a team be a bit of a rock star for doing so?

Phil Gilbert from IBM spoke about transforming IBM’s software products with design and rationalisation. The slide that has stayed with me showed how 20+ products in the areas of business process management were consolidated into two or three.

Chris Thorpe from Boffin talked about steam engines and 3D printing. Using 3D printing, steam engines can be repaired, while in another context model railway enthusiasts can get models in whatever size they want.

Steve Citron-Pousty from Red Hat gave us a sideways look at technology by talking about ecosystems. How do you nurture a vibrant ecosystem as opposed to one in which just a few creatures dominate? The answer is about monitoring, measuring, and testing hypotheses.

Ted Nyman at GitHub gave a memorable talk on being happy at work. His answer: no managers.

image

He described how GitHub is managed: nobody reports to anyone else, decisions are made by consensus, teams form naturally, nobody is forced to do anything, but individuals are highly motivated because they have authenticity and autonomy. Employees are happy and nobody ever quits. “Developers are awkward people, accept awkwardness,” he added.

This was another thought-provoking talk. How much of GitHub’s management model would translate or scale to other businesses? Does it depend on having smart, highly motivated team members? Will it work for ever, or end in disaster? Is Nyman’s description accurate, or are there disguised channels of authority which he did not articulate?

Day two, Friday, opened strongly. I have already mentioned Shanley Kane’s talk. She addressed the problem of dishonesty in software development, explaining that software roadmaps which show features on a timeline are inherently dishonest and cause erosion of trust. Developers have a responsibility to explain to others in the business that development does not work like that. Her suggested alternative is some sort of interactive document covering “what we’re working on”.

Cyndi Mitchell, also mentioned above, talked about excellence in software development. This is not just about technically sound code, but is multi-faceted, including business value, customer value, user experience, delivery and operations as well. It was another take on a common theme in Agile: the team is everyone, not just the developers.

Chris Aniszczyk from Twitter spoke about open source software. Twitter always evaluates open source options before risking wheel reinvention by cutting new code. He also advocates always writing code on the assumption that it will one day be open source. This promotes high quality APIs, sensible naming conventions, and other good things. Twitter aims to give code that is not its “secret sauce” back to the community, he said. However, Twitter avoids code with viral open source licenses like the GPL; it causes too many problems, he said.

An intriguing aside; Aniszczyk says that Twitter acquires companies to get the people, since “you can’t hire engineers these days.” This may create an open source project, as the code that company was working on is given away/abandoned to the community. I am not sure what examples of this process there are.

After that, there was lunch, more beer, brewers spoke, and a wood carver competed with a 3D printer to make a spoon; I’ve written about this here.

Lee Bofkin from Global Street Art spoke about street art. Where we see a wall or an alley, he said, a street artist sees a place that can be transformed with art. His slides were wonderful; check the Global Street Art site for a flavour.

image

There is no event quite like the Monki Gras; it was not deeply technical but was rich in ideas. Plenty to reflect on.

Interview: Salesforce.com exec Parker Harris on the technology behind the platform

A couple of months ago, I attended Cloudforce in London, where I spoke to Salesforce.com co-founder Parker Harris, Executive Vice President, Technology.

The Salesforce.com platform is interesting for all sorts of reasons. The company has been a powerful advocate of cloud computing from before its adoption by other industry giants, and its service is as far as I can tell well liked by its customers. The technology is interesting as well. The CRM (Customer Relationship Management) application that is the core of the Salesforce.com offering is both a web application and a web service API, with more transactions conducted programmatically than through the browser. The Force.com platform is multi-tenanted, and the company believes that only this type of platform delivers the full benefits of cloud computing. In December 2010 the company acquired Heroku, at the time a company dedicated to running Ruby applications in the cloud, though it now has a broader offering. Salesforce.com was also where I first heard the term “Social Enterprise”, a phrase now taken up by others such as IBM and Microsoft; in fact, Social Enterprise was the dominant theme at Cloudforce.

image

I asked Harris how the company copes with scaling its platform as demand grows.

“We’ve gone through a few changes. We came up years ago with a concept we call a ‘pod’, which is one set of multi-tenant customers. There’s a database in there, there’s application servers, search servers, all kinds of things. So that was a unit of scale. And we invested heavily in capacity planning, just to watch and see how those grow, and so we fill them up to a certain size and then we grow horizontally and add more.”

Harris adds that pods are organised in sets called super-pods, which provides isolation in the event of a failure.

One of the goals is to make the system scale horizontally, whereas the Oracle database on which the platform is built tends to be a vertical unit of scale. "

“We’re doing a lot of research work in looking at horizontal scalable systems like Hbase for example, to look at how can we do more horizontal stores. And then finally we’re in the middle of a process of moving a lot of our processing to completely asynchronous handling, so that as transactions come in they’re being handled in an asynchronous way. Even though the consumer feels like it’s synchronous, the back end will be completely asynchronous, which will then give us even more control and capability to scale.”

In the past I have thought of the Force.com platform as in effect a big database. I asked Harris if that is still the case?

“We have big databases, but I think of it more as a meta-data platform. Behind that meta-data we do have a big database, we also have a big file store, we have a big search engine, which is another unit. That’s really what you know as Salesforce.com. And that’s fully multi-tenant, it’s way at the extreme end of multi-tenancy.

“Heroku is really virtualised single tenancy. So it’s more towards an infrastructure as a service layer. For some workloads and some use cases that’s fine. If you want the predictability of ‘the software I wrote on my computer needs to run exactly the same here’, that’s where that takes place. But you don’t have the higher-level capabilities of Force.com, you don’t have everything working out of the box.

“Where we’re headed is, you’ll have the 4GL of Force.com, you’re going to have the 3GL of Heroku, and you’ll be able to choose.”

At one time Salesforce has a partnership with VMWare called VMForce. What happened to that?

“We don’t have a technical partnership with VMWare, but we do have a close relationship with them. We want to have applications that work in VMWare’s cloud able to move into Heroku or vice versa. Really what happened is, we started the relationship with VMWare and then we discovered Heroku. We were just blown away by the technology there and the team, and that was when we ended up acquiring Heroku, but we still see VMWare as a huge partner. We’re a big customer of VMWare, they’re a big customer of ours.”

You talked at Cloudforce about HTML mobile apps versus native apps, and you seem to be more on the HTML side?

“I was making the point of HTML versus native code. This is an argument that goes on inside of Salesforce, it is a religious debate, but I believe that you can build some extremely rich applications with native code, and you can build them very quickly. The complexity for me happens when you introduce business systems that are on an enterprise platform. If you think about our metadata engine, it’s very powerful, and I can create triggers, I can change the UI, I can do all these magic things, and immediately it works. Change the UI into Japanese, it immediately works.

“If I’m building something 100% native, I have to replicate that platform in the native code, and that’s for me a no-win situation, because this is going to keep moving, and the native code will be behind, it will be playing catch-up. So if it’s for an enterprise business system on a platform like ours that’s metadata driven, you really need to have that be directly from the cloud.

“If you think about the Chatter feed or the business forms, that I believe needs to be HTML5. But I want to use the camera, I want to have files local to the device, that I can open, and various programs, I want location to work, and maybe I want to use the map application: so there are some native assets too. And then when you think of security, I don’t want to have to go to a web page and enter my username and password, and maybe have to VPN in, I don’t want to do that every time I use the application.

“So instead what you do is have a native container that wraps all this HTML5 code, gives you access to things like the camera, but also is a way to store an Oauth token, it now has the right to access my data, and from then on I can just use the application. It’s really high usability.

“I also think we still have a sometimes-disconnected world. That’s frustrating. So I do think there should be a cache, a recent cache of what you’re working on. That’s my view of where we should be going with these disconnected use cases.

“So that’s where we’re going, and we’re open sourcing a lot of this. We have a native container and we’re open sourcing it so people can see how we built it and add to it. We’ve got a UI framework that we’re going to be open sourcing. It’s an HTML5 component framework. Touch, that we announced last year and is going beta now, Touch is built with that framework, and that’s the framework that we will eventually open source so people can use it with their own applications.”

image

Do you use PhoneGap/Cordova for the native wrapper?

“We do. We do a lot on WebKit-enabled browsers, and when you think of the native container, it’s really going through PhoneGap to get to some of the local resources.”

What about your SOAP and REST APIs?

“We have backward compatibility for all of our APIs, because we don’t want to force people to rewrite their code. We do see lots of use  cases for SOAP, but more and more people are doing RESTful interfaces, and when their writing these mobile applications they really want REST APIs so we’re building a lot more of our own.”

How has Heroku evolved since you made that acquisition?

“There are a couple of huge events. One is, they were just a Ruby platform when we acquired them, and now they are a polyglot platform, so they can run many different languages. They’ve also shown how they’ve built support for these other languages, so other people are able to write support for other languages.

“The other big change was when Facebook on their developer page said, if you want to build a Facebook page or application, here’s how to do it, and if you want it hosted in the cloud, use Heroku. There may be others by now, but we saw a massive uptake in the number of applications being created. We’ve seen a huge number of applications grow from when we acquired it to now and with a big spike through that Facebook relationship.

“We have Heroku enterprise bundles that are available now. People are buying Heroku as part of a SELA, or a Social Enterprise License Agreement.

“Developer adoption is still very important. We want to monetise it, but we don’t want to lose this huge asset of the appeal to the developer community. It’s still early for Heroku.”

I also spoke to Harris about the Social Enterprise concept, but will post that separately.

Heroku gets Java, Salesforce.com embraces HTML5 for mobile

Salesforce.com has made a host of announcements at its Dreamforce conference currently under way in San Francisco. In brief:

  • Chatter, the Salesforce.com social networking platform for enterprises, is being extended with presence status, screen sharing, approval actions, and the ability to create groups with customers as well as with internal users. Salesforce.com calls this the Social Enterprise.
  • Heroku, a service for hosting Ruby applications which Salesforce.com acquired in 2010, will now also support Java.
  • Salesforce.com is baking mobile support into its applications via HTML 5. The new mobile, touch-friendly user interface is called Touch.salesforce.com.

image

Other announcements include the general availability of database.com, a cloud database service announced at last year’s Dreamforce, and a new service called Data.com which provides company information though a combination of Dun and Bradstreet’s data along with information from Jigsaw.

I spoke to EMEA VP Tim Barker about the announcements. Does Java on Heroku replace the VMForce platform, which lets you run Java applications on VMWare using the Spring framework plus access to Salesforce.com APIs? Barker is diplomatic and says it is a developer choice, but adds that VMForce “was an inspiration for us, to see that we needed Java language on Heroku as well.”

My observation is that since the introduction of VMForce, VMWare has come up with other cloud-based initiatives, and the Salesforce.com no longer seems to be a key platform. These two companies have grown apart.

For more information on Java on Heroku, see the official announcement. Heroku was formed in part to promote hosted Ruby as an alternative to Java, so this is a bittersweet moment for the platform, and the announcement has an entertaining analysis of Java’s strengths and weaknesses, including the topic “How J2EE detailed Java”:

J2EE was built for a world of application distribution — that is, software packaged to be run by others, such as licensed software. But it was put to use in a world of application development and deployment — that is, software-as-a-service. This created a perpetual impedance mismatch between technology and use case. Java applications in the modern era suffer greatly under the burden of this mismatch.

Naturally the announcement goes on to explain how Heroku has solved this mismatch. Note that Heroku also supports Clojure and Node.js.

What about Database.com, why is it more expensive than other cloud database services? “It is a trusted platform that we operate, and not a race to the bottom in terms of the cheapest possible way to build an application,” says Barker.

That said, note that you can get a free account, which includes 100,000 records, 50,000 transactions per month and support for three enterprise users.

What are the implications of the HTML5-based Touch.salesforce.com for existing Salesforce.com mobile apps, or the Flex SDK and Adobe AIR support in the platform? “We do have an existing set of apps,” says Barker. “We have Salesforce mobile which supports Blackberry, iOS and Android. We also have an application for Chatter. Native apps are an important part of our strategy. But what we’ve found is that for customer apps and for broad applications, to be able to deliver all the functionality, we’re finding the best approach is using HTML 5.”

The advantage of the HTML5 approach for customers is that it comes for free with the platform.

As for Adobe AIR, it is still being used and is a good choice if you need a desktop application. That said, I got the impression that Salesforce.com sees HTML5 as the best solution to the problem of supporting a range of mobile operating systems.

I have been following Salesforce.com closely for several years, during which time the platform has grown steadily and shown impressive consistency. “We grew 38% year on year in Q2,” says Barker. This year’s Dreamforce apparently has nearly 45,000 registered attendees, which is 50% up on last year, though I suspect this may include free registrations for the keynotes and exhibition. Nevertheless, the company claims “the world’s largest enterprise software conference”. Oracle OpenWorld 2010 reported around 41,000 attendees.

The Salesforce.com platform play

I’ve been mulling over the various Salesforce.com announcements here at Dreamforce, which taken together attempt to transition Salesforce.com from being a cloud CRM provider to becoming a cloud platform for generic applications. Of course this transition is not new – it began years ago with Force.com and the creation of the Apex language – and it might not be successful; but that is the aim, and this event is a pivotal moment with the announcement of database.com and the Heroku acquisition.

One thing I’ve found interesting is that Salesforce.com sees Microsoft Azure as its main competition in the cloud platform space – even though alternatives such as Google and Amazon are better known in this context. The reason is that Azure is perceived as an enterprise platform whereas Google and Amazon are seen more as commodity platforms. I’m not convinced that there is any technical justification for this view, but I can see that Salesforce.com is reassuringly corporate in its approach, and that customers seem generally satisfied with the support they receive, whereas this is often an issue with other cloud platforms. Salesforce.com is also more expensive of course.

The interesting twist here is that Heroku, which hosts Ruby applications, is more aligned with the Google/Amazon/open source community than with the Salesforce.com corporate culture, and this divide has been a topic of much debate here. Salesforce.com says it wants Heroku to continue running just as it has done, and that it will not interfere with its approach to pricing or the fact that it hosts on Amazon’s servers – though it may add other options. While I am sure this is the intention, the Heroku team is tiny compared to that of its acquirer, and some degree of change is inevitable.

The key thing from the point of view of Salesforce.com is that Heroku remains equally attractive to developers, small or large. While Force.com has not failed exactly, it has not succeeded in attracting the diversity of developers that the company must have hoped for. Note that the revenue of Salesforce.com remains 75%-80% from the CRM application, according to a briefing I had yesterday.

What is the benefit to Salesforce.com of hosting thousands of Ruby developers? If they remain on Heroku as it is at the moment, probably not that much – other than the kudos of supporting a cool development platform. But I’m guessing the company anticipates that a proportion of those developers will want to move to the next level, using database.com and taking advantage of its built-in security features which require user accounts on Force.com. Note that features such as row-level security only work if you use the Force.com user directory. Once customers take that step, they have a significant commitment to the platform and integrating with other Salesforce.com services such as Chatter for collaboration becomes easy.

The other angle on this is that the arrival of Heroku and VMForce gives existing Salesforce.com customers the ability to write applications in full Java or Ruby rather than being restricted to tools like Visualforce and the Apex language. Of course they could do this before by using the web services API and hosting applications elsewhere, but now they will be able to do this entirely on the Salesforce.com cloud platform.

That’s how the strategy looks to me; and it will fascinating to look back a year from now and see how it has played out. While it makes some sense, I am not sure how readily typical Heroku customers will transition to database.com or the Force.com identity platform.

There is another way in which Salesforce.com could win. Heroku knows how to appeal to developers, and in theory has a lot to teach the company about evangelising its platform to a new community.

Salesforce.com acquires Heroku, wants your Enterprise apps

The big news today is that Salesforce.com has agreed to acquire Heroku, a company which hosts Ruby applications using an architecture that enables seamless scalability. Heroku apps run on “dynos”, each of which is a single process running Ruby code on the Heroku “grid” – an abstraction which runs on instances of Amazon EC2 virtual machines. To scale your app, you simply add more dynos.

image

Why is Salesforce.com acquiring Heroku? Well, for some years an interesting question about Salesforce.com has been how it can escape its cloud CRM niche. The obvious approach is to add further applications, which it has done to some extent with FinancialForce, but it seems the strategy now is to become a platform for custom business applications. We already knew about VMForce, a partnership with VMWare currently in beta that lets you host Java applications that are integrated with Force.com, but it is with the announcements here at Dreamforce that the pieces are falling into place. Database.com for data access and storage; now Heroku for Ruby applications.

These services join several others which Salesforce.com is branding at Force.com 2:

Appforce – in effect the old Force.com, build departmental apps with visual tools and declarative code.

Siteforce – again an existing capability, build web sites on Force.com.

ISVForce – build your own multi-tenant application and sign up customers.

Salesforce.com is thoroughly corporate in its approach and its obvious competition is not so much Google AppEngine or Amazon EC2, but Microsoft Azure: too expensive for casual developers, but with strong Enterprise features.

Identity management is key to this battle. Microsoft’s identity system is Active Directory, with federation between local and cloud directories enabling single sign-on. Salesforce.com has its own user directory and developing on its platform will push you towards using it.

Today’s announcement makes sense of something that puzzled me: why we got a session on node.js at Monday’s Cloudstock event. It was a great session and I wrote it up here. Heroku has been experimenting with node.js support, with considerable success, and says it will introduce a new version next year.

Finally, the Heroku acquisition is great news for Enterprise use of Ruby. Today many potential new developers will be looking at it with interest.