Alex Barnett blog


Platform Thinking
(am republishing this blog post as it automagically disappeared in a server upgrade I did recently, originally posted 13.10.2011)

Last night I came across a rant from a Google employee (that was accidentally made public via Google+...doh!,) that provided not only good popcorn munching material, but I thought had some pretty interesting insights around what it really means to be a "Platform" company, not just a "Product" company.

It's pretty dense stuff, but wanted to call out the snippet about the "mandate" that Jeff Bezos sent around the company back in 2002.

So one day Jeff Bezos issued a mandate. He’s doing that all the time, of course, and people scramble like ants being pounded with a rubber mallet whenever it happens. But on one occasion — back around 2002 I think, plus or minus a year — he issued a mandate that was so out there, so huge and eye-bulgingly ponderous, that it made all of his other mandates look like unsolicited peer bonuses.

His Big Mandate went something along these lines:

1) All teams will henceforth expose their data and functionality through service interfaces.

2) Teams must communicate with each other through these interfaces.

3) There will be no other form of interprocess communication allowed: no direct linking, no direct reads of another team’s data store, no shared-memory model, no back-doors whatsoever. The only communication allowed is via service interface calls over the network.

4) It doesn’t matter what technology they use. HTTP, Corba, Pubsub, custom protocols — doesn’t matter. Bezos doesn’t care.

5) All service interfaces, without exception, must be designed from the ground up to be externalizable. That is to say, the team must plan and design to be able to expose the interface to developers in the outside world. No exceptions.

6) Anyone who doesn’t do this will be fired.

7) Thank you; have a nice day!

Ha, ha! You 150-odd ex-Amazon folks here will of course realize immediately that #7 was a little joke I threw in, because Bezos most definitely does not give a shit about your day.


Over the next couple of years, Amazon transformed internally into a service-oriented architecture. They learned a tremendous amount while effecting this transformation. There was lots of existing documentation and lore about SOAs, but at Amazon’s vast scale it was about as useful as telling Indiana Jones to look both ways before crossing the street.

...Organizing into services taught teams not to trust each other in most of the same ways they’re not supposed to trust external developers.

This effort was still underway when I left to join Google in mid-2005, but it was pretty far advanced. From the time Bezos issued his edict through the time I left, Amazon had transformed culturally into a company that thinks about everything in a services-first fashion. It is now fundamental to how they approach all designs, including internal designs for stuff that might never see the light of day externally.

At this point they don’t even do it out of fear of being fired. I mean, they’re still afraid of that; it’s pretty much part of daily life there, working for the Dread Pirate Bezos and all. But they do services because they’ve come to understand that it’s the Right Thing. There are without question pros and cons to the SOA approach, and some of the cons are pretty long. But overall it’s the right thing because SOA-driven design enables Platforms.

Nowadays, it might be considered conventional wisdom for "Platform Thinking", but to truly embracing this philosophy - and make it real - first requires the realization that in the long term, Platform companies beat Product companies every time. Realizing that, then Platform Thinking and Platform Doing should become second nature. The brilliance of Bezos was to realize this strategic insight long before web APIs became as popular as they have become.




You can start with the Customer Experience, but you need to stay there.

Although it my seem to be the most obvious design principle, the notion of "Start with the Customer Experience" can be, and often is, the thing that businesses and product development teams can forget about during the development phase.

In other words, just because you started at the Customer Experience, that doesn't necessarily mean you'll get the right end result. You need to stay there.

I've seen it happen many a time: teams start at the customer UX design - it's awesome, it's simple and it "just works" beautifully. Then it comes time to develop the technology and stuff behind the scenes to make it all happen. And during that process, there are hundreds, maybe thousands of design decisions being made that create opportunities to lose sight of the original experience design...questions around which standards to use, which stack to employ, the resources and skills available, competing priorities and resource allocation, complexity vs. simplicity of implementation, feature phasing and sequencing, time constraints, pressure to get to market, etc, can often become the most important things that teams spend energy in solving, rather than remaining true to the original design. And before you know it, you can look at the end result, compare it to the original vision and say: whoah! - that's a long way from the original vision! We've all been there.

The companies, product companies and experience providers that stand out and consistently deliver awesome customer experiences are the ones that don't compromise on the original vision and design. They start with the customer experience and they stay there. Apple, of course, is the leading example of this discipline. Reminded by Brad Feld, here's great clip from Steve Jobs a few years ago at the Apple WWDC in 1997...

Here he talks about starting with the customer experience and about how then they figure out the technology to make it happen.

But what he doesn't say but is plainly obvious, is not only how they start there, but how they stay there with the customer UX throughout, ending the development lifecycle with a product that is as awesome and true to their original vision as when they first set out on the design journey. That's the magic of delivering awesomeness, not just designing it.


Messing around with Google+

I'm messing around with Google+ since it became more generally available, and finding it to be a little bit of a hit and miss experience. It's not a bad way to discover new content and interact with some interesting folks. Of course, it's probably only as good as your Circles, so find me here and I'll Circle you back!

Posted: Sep 27 2011, 05:12 AM by alexbarnett | with 2 comment(s)
Filed under:
Me 2.0 (and how I got there)

A few days ago, I celebrated my birthday and was pinged on Facebook by friends and family congratulating me on being another year older (!).

Along with those good wishes, I also got a few virtual pats on the back, commenting on how healthy I was looking in some recent photos and asked for details on how I achieved the progress I had made. Of course, it's awesome for people to take notice of the hard work you've put in and confess to blushing a little at the complements. This post is my response, sharing some of the things that have worked for me in the last 14 months or so in my journey to make a better me.

Before I start, I want to stress: the following worked (and is working) for me. It's not meant as a prescription or a recipe for you. It is a bunch of things - given my psyche, environment and genetics - that worked for me. If you're looking to go on a similar journey (or already on your journey and looking for new ideas), feel free to take a little of "this", and a bit of "that", and plenty of none of "this"! So let's go to it...

It's about making a decision and sticking to it.

A few weeks ago I was at Boston Logan airport checking in when the the lady processing my boarding pass did a double take when she looked at my Mass driver's ID. She commented that I looked a lot different to the photo on the card. She asked how I lost all that weight. I told her that I made a decision a while ago and had stuck with it. She congratulated me warmly and gave me back my ID.

fat me, better me

(12 months - before and after not my actual ID pics!)

In July of last year I made that decision. I was unhappy (and felt guilty) about my general level of fitness, I didn't like what I saw in the mirror and was feeling increasingly physically uncomfortable. And no that time I weighed 204 lbs (I'm 6ft), with an estimated body fat: of ~24%. I was doing no regular exercise and was on course to add another 5-10 lbs over the next year. Not good, at all.

So I decided to change that. My goal (I'll come back to this later) was high-level. Maybe a little too high-level. It was to "Lose weight!". I didn't specify how much or in what time period, all I knew is that I wanted to reverse the trend, and given where I was I felt that was good enough. All the progress and achievements stem from that decision and deciding to stick with it.

It has to be sustainable.

I started slow. I thought about my goal in terms of two dimensions - 1. how much + what I was eating and 2. how much + the kind of exercise I was doing.

the_long_run_tshirt at zcache

On the food side, I stopped eating junk and started eating more "whole foods": unprocessed foods like salads, meats that hadn't been gunked with preservatives and crap, fruit not candy, etc. I wasn't measuring calories but I stopped snacking.

On the exercise side, I wanted to actually do some but not over-do it too quickly. My body was badly out of condition and I did not want to injure myself and go two steps backward. So I started doing long walks and bought a cycling machine - 30 mins of walks + 20 mins of gentle cycling to start. Every day. Nothing dramatic.

I did that for about a month and was already feeling the benefits. I probably lost about 5 lbs in that time. As I progressed, my resolve hardened. But I also realized that I wanted the good things in life too - to drink when I like and not give up delicious food. The trick was to find the right balance between the input (caloric intake) and the output (energy consumed) and to achieve a daily caloric deficit. Depriving myself of the things I enjoy (good food and drink) wasn't going to be a sustainable path to success.

Psychologically, this sustainable path for the long term has been a core component to my being able to stick with the decision I made. For me, it was all about finding that right balance and since I made that decision, I've been able to eat delicious food that fills me and drink what I want when I want. But that has also meant doing the exercise required to balance it out.

"If you don't measure it, you can't manage it".

alex_weight_chart 2011

(My Withings charts - shows body weight in lbs in top half, body fat % lower half)

By that point I got more specific with my goals. I researched the question of how much I should weigh in order to get out of the "overweight" zone and into the good zone. The answer came back - with my natural physique, I needed to get to around 175lbs, and lose a further ~20 lbs to be at my ideal weight. I also started learning more about body fat % (BF). I didn't know what my number was (I could estimate it roughly using some online calculators) and realized that my BF%, along with my weight, was something I wanted to measure and track.

I ordered a Withings scale from Amazon - a pretty cool wi-fi enabled device that comes along with a web service and iPhone app where you can track graph the numbers, including BF%. Since then, It has acted as an invaluable tool on my journey: being able to track and review my weight and BF history and overall progress has helped the psychological re-enforcement that comes from having the "proof" and details of my progress. It helps to remind me about how far I've come, where I want to get to and how much I really don't want to go back to where I was. It remains a concrete expression of the output of my decision.

Don't go it alone.

Reddit fitness subreddit

Throughout my journey I tried to learn as much as I could about being effective in my efforts. There's a ton of websites and resources out there that I came across - lots of good advice and tons of bad ideas. One resource that help me a lot was the fitness subreddit - I was (and still am) mainly a lurker there, occasionally asking questions and generally getting sound advice from a community of smart people who know their stuff. As long as you've already looked through the FAQ, it is a safe place to ask "dumb" questions as well as discussing more advanced topics.

The other big help was having a friend who is also on their own journey. I don't think it really matter what level they happen to be at - the main thing is that you're able to share your own progress, goals, tips, tricks etc and learn from each other. It also helped my motivation. I've had one since the beginning and I know this helped lot.

Runkeeper global meetup july 2011

(Runkeeper global meetup - Boston, July 2011)

Define a destination. Set and reset goals.

Generally speaking, I think anyone who aims to acheive anything needs to figure out 2 things: 1. define the destination (the end-goal or objective) and 2. plot the waypoints to that destination (the mini-goals and a strategy to get there).


My goals evolved over time. When I set out on my journey, I had a general, non-specific goal. That was fine to start off with, but as I progressed and started measuring progress I began to get more specific. I went from "Lose weight!" (very high-level) to my current goal with several in between. You could even say that my current end-goal definition (or destination) is really a mission:

to be fitter today than when I was 20 years old.

For me, that's a durable mission and one that motivates me to keep on right track over the long-haul.

Then there's the question on how I get there. I started getting more specific with my mini-goals: to lose x lbs (but not timeframed), achieve x BF%, cover Y distance on the bike in y minutes, run x miles in Y minutes, lift X weight for Y reps for Z sets. I happen to be very goals-driven, it's how I'm wired. I need that sense driving toward a destination and the satisfaction of achieving my goals. And back to the measuring bit, I used tools like Runkeeper, the Withings scale, Fitocracy and MyFitnessPal to track (and in some cases share) progress across my activities as well as (more recently) tracking food intake.

My regime

Now, on to the details of my "regime". Please remember - the following isn't meant as a prescription or recipe: I'm sharing this because a number of friends have asked for the specifics, so I'm sharing what has worked (is working) for me.

The main principles behind my regime design are:

  • Get strong. Apart from the aesthetic benefits of having muscle and lower body fat %, the fact is the more muscle you have, the more calories you burn through - and not just while actually doing the exercise. So the muscle I'm building and the exercise I'm doing to build that muscle (and the subsequent metabolic effect the lifting has on the central nervous system) allows me to eat well (back to the "sustainable lifestyle" point above). When I set out on this journey I never thought I'd find myself going to a gym and "lifting weights". But that's the essential part of what I've been doing for a over a year now.
    • Resource tip: I picked up an awesome book and program called Starting Strength. It's a beginner's guide on how to correctly and safely lift weights (the 5: squat, press, bench press, deadlift, and power clean) and does a great job of explaining the "why" and benefits of strength training using these lifts as the core exercises of any fitness program.
  • Keep getting stronger. As per the Starting Strength program, I'm always aiming to lift more (adding weight) and harder. Apart from the psychological benefits provided by the sense of progression, there are also physiological benefits to stressing (but not over-stressing) the body each session. In other words, I'm not going to the gym to have a "walk in the park". Keep making the body adapt.
  • Run without dying - this is referring to my overall cardiovascular fitness. So I run regularly or do other exercise that keeps my heart rate up for more than 20 mins at a time.
  • Keep it interesting - variety is the spice of life as they say. Getting bored doing the same exercises over and over can threaten the enjoyment of the journey. So I mix it up (the "Ancillary" work that helps with constant adaption), different runs with different goals, basketball not jogging, but I always stick with my "core" work: squat, deadlifts, benches, chins, pullups and dips.
  • Eat well, but smart - on the food side, I want to be able to eat and drink what I want, when I want - within reason. I've completely cut out junk food (except for very rare occasions), and drink spirits or wine but not beer. In the early days I was particularly careful around carbs (I wasn't doing weight training then), but have since learned not to be fearful of them (in fact, I've come to realize that "carbs" - especially starchy carbs - are essential to muscle development and body recovery. I've recently been experimenting with the Leangains system, following the early morning training protocol with very positive results. This may be a program I'll cycle in and out of weeks at a time (2 weeks on, 4 weeks off or something)...we'll see.
  • Respect the rest - I rarely do heavy lifting excercise 2 days on a row. I alternate workout and rest days (one day on, next day off). Without proper recovery you're wasting the time you put into the workouts. I have a week off every 5-7 weeks and generally speaking try to get more sleep than I used to.

So, with that rather extended preamble(!), here are the specifics of what a typical week might look like:

***Pull Day (Monday)***

-- Core

  • Squats - warm ups: 10 reps no bar, 10 reps just the bar, 5 reps at 50% RM, 5 reps at 70%
  • Squats - workout sets: 3 sets of 5 reps at 85% RM
  • Deadlifts - warm ups: 10 reps just the bar, 5 reps at 50% RM, 3 reps at 70%
  • Deadlifts - workout set: 5 reps at 90% RM
  • Weighted Chins: 3 sets of 6-8 reps
  • Weighted Pull-ups: 3 sets of 6-8 reps

-- Ancillary

  • Ab work: e.g. weighted incline bench: 3 sets of 8-10 reps
  • Rows work: - e.g. seated rows or weighted inverted rows: 3 sets of 8-10 reps
  • Leg curls: 3 sets of 6-8 reps

Eat +20% of calorie maintenance

***Rest Day (Tuesday)***

Eat -20% of calorie maintenance

***Push Day (Wednesday)***

-- Core

  • Squats - warm ups: 10 reps no bar, 10 reps just the bar, 5 reps at 50% RM, 5 reps at 70%
  • Squats - workout sets: 3 sets of 5 reps at 85% RM
  • Bench press - warm ups: 10 reps just the bar, 8 reps at 50% RM, 5 reps at 70%
  • Bench press - workout sets: 3 sets of 5 reps at 85% RM
  • Weighted dips: 3 sets of 6-8 reps

-- Ancillary

  • Dumbbell work
  • Tricep work
  • Leg extensions: 3 sets of 6-8 reps

***Rest Day or Cardio Day (Thursday)***

20 - 45 min run, or a CrossFit type work out without heavy lifting (i.e. a cardio-centric workout for 15 to 20 mins).

***Pull Day (Friday) - as above***

***Rest Day or Cardio Day (Saturday) - as above***

***Pull Day (Sunday) - as above***

A few definitions:

  • Rep = a single repetition
  • Set = a set of reps
  • RM = Repetition Maximum (the maximum you can lift something once) - see Predicting One Rep Max.-

Tools and resources

So there you have it. Let me know if you have any questions or even tips that have worked for you!



Why OData Matters (IMHO)

Earlier this week I was in the MIX10 crowd as Douglas Purdy announced the Open Data Protocol (it was a great presentation - summarized here).

I want to share with you why I think OData could be a very big deal…But before we go there...let's start with the basics...

What is OData? Where Did OData Come From?

To understand the history of how OData came to be, you need to understand how project "Astoria" came to be...I won't go over that again as this is already pretty well documented. Astoria OData has come a long way since.

In a nutshell: Today, OData builds on a few conventions, popularized by AtomPub (see OData AtomPub Format), to using REST-based data services. These services allow resources, identified using Uniform Resource Identifiers (URIs) and defined in an abstract data model (see OData URI Conventions, to be read and edited by web clients using simple HTTP messages (see OData Operations).

An Open Data Protocol for the Web

OData offers a standardized way for programmable data to be made available across the web and in turn allowing "consumers" of that data to rely on a set of conventions to be followed that in turn allows many interesting things to happen if widely adopted...

...And to this end:

  • As announced, OData has been released by Microsoft under the Open Specification Promise (OSP) "to allow anyone to freely interoperate with OData implementations" . Since then, the W3C has invited the OData team to Bring OData to a W3C Incubator (I haven't seen a public response yet but I urge the team to do so.).
  • OData is not a Microsoft-only thing and it won’t succeed if it is. The originating philosophy was about transparency in the design process, with an Open end-point as the goal - not a .NET lock-in play (“agree on standards and compete on implementation”). This approach has already yielded an initial set of clients, servers, services, and tools. Today, a number of OData SDKs and libraries are available for .NET, Java, PHP, iPhone (Objective-C) and more – and there’ll be more coming.
  • There is a small but growing ecosystem of non-Microsoft "producers" and "consumers" - (where  OData "producers" include Netflix’s catalog as OData and the VanGuide (a social map of Vancouver Open Data) and Public data from the city of Edmonton as OData) and OData “consumers”  - standard web browsers, RIA "data explorers" – such as Sesame OData Browser, and the client libraries mentioned above – p.s. somebody build a javascript-only data browser please!)

Where can OData take us?

The clue is in the OData icon (next to the RSS feed icon. Can you see the similarities?

odata icon rss icon

The big idea here is that in the same way we have the "RSS" feed icon, we'll get used to seeing the "OData" icon on commercial and non-commercial websites everywhere (especially for government-related data). So in the same way you know today that the RSS icon means "get an XML feed for this content", the "OData" icon means "get this web data" - you'll know (and your client will know) what to expect in terms of how to read in, and navigate through and query structured web data sets - and in many cases write against them - using a common syntax.

Q: Right, But So What?

A1: Open Government OData. From Open Government Data Principles

The Internet is the public space of the modern world, and through it governments now have the opportunity to better understand the needs of their citizens and citizens may participate more fully in their government. Information becomes more valuable as it is shared, less valuable as it is hoarded. Open data promotes increased civil discourse, improved public welfare, and a more efficient use of public resources.

That’s great, but it needs to be practicable…And number 5 of the 8 Principles of Open Government Data sensibly states that the data should be (via David Eaves):

5. Machine processable

Data is reasonably structured to allow automated processing.

It'll be down to each government agency (and local government) as to how they decide to implement this principle, but wouldn't it be great if they agreed to a standard (and a powerfully simple, web-oriented one at that)? This is what Jon Udell concluded here:

"The open data movement, in government and elsewhere, aims to help people engage with and participate in processes represented by the data. When you publish data in a fully articulated way, you build a framework for engagement, a trellis for participation. This is a huge opportunity, and it’s what most excites me about OData"

A2: To ODatarize your data is to RESTify your data.

As more data-oriented web APIs come online, each team responsible for the design of each web API is confronted by the same kinds of questions, and each team answers these in their own particular way. Increasingly, “RESTful” is a design goal of web APIs. Great…but what does that mean? How do you expose the data, the relationships between the entities inside the model, and what should the querying syntax look like? Unfortunately, there are as many answers to these questions as there are RESTful web APIs. And there needn’t be.

For to ODatarize your data is to RESTify your data. Do spend the time at the value layer - figure out the way your developers / consumers want to see the data and expose it that way. Do make it easy for devs / consumers to learn / navigate about the data and use it. Do not make them learn about the unique idiosyncrasies you’ve built into your API (or those that leak out of your originating store) :-)

From a developer’s standpoint, OData is ultimately about  productivity.

  • For the OData “Production Developer”: Point at your data store – define your entity model and map it to the data model you already have (so your developers consume / program against the data that makes most sense to them – effectively ORM’ing) and expose as an OData service, inheriting: all the REST characteristics; entity relationship self-discovery; and querying goodness.
  • For the OData “Consuming Developer”: If you know the web API is OData…great! Pick up a client library, get to the API end-point ( Point and Shoot: Traverse the data model, query it (and bookmark as needed – it’s a URI)…play!

(see links at the bottom of this post to technical content that provides details on all this)

A3: Since the announcement, I’ve seen quite a bit of excitement around the web (especially Twitter) by developers who see the potential here…there is plenty of experimentation going on. At Intuit, my team is also experimenting with ODatarizing some of our data services, exploring how it might be applied across a number of our cloud based data services. And when our team’s architect Tweets that “Looks like #odata is going to be a good fit for our data services”, I know there’s something interesting going on here…

So I encourage you to find out more about OData and get involved.

More Resources

Apparently, taking the dog for a walk is worth about 200 Achievement Points.

Via Kevin Kelly, I found this talk by games designer Jesse Schell speculating on the future of games. Kelly summarizes the talk:

"Schell begins his talk with very narrow concerns about Facebook games, which is not surprising since his audience here is other professional game designers. He makes the point that some of the largest and most profitable games today are not on game consoles but run on Facebook or other nonobvious platforms. He admits that most of these non-game platforms for successful games were unexpected -- even for pros like himself.

In the second part of his talk he notices how many of these unexpected hit games have the common element of "breaking through the reality barrier." The Wii, Guitar Hero, Webkidz, fantasy football, and so on all have one foot in fantasy and one foot in the real world -- gestures, plastic guitar, stuffed animal, football games -- and so are part of a greater movement towards artificial authenticity.

It's the last third of his talk where Schell really gets going. He offers a vision where ordinary life is gameified. Cheap tracking technology turns whatever you do into a "game" that accumulates points. As the gameification of life becomes ubiquitous, you go through your day racking up points and "getting to the next level." Instead of getting grades in school you graduate to the next level. It's a head spinning scenario, with lots to love and hate, but well worth considering."

I've been a gamer forever and recognize the patterns Schell describes. Though I've not personally been playing some of the games cited, I do have fair exposure to things like Webkinz and Club Penguin though my nine-year old boy. I see how naturally his generation has taken to the social side of Xbox Live gaming.

In particular, I see how obsessed he gets around his efforts to the "Acheivement Unlocked" crack.

As soon as I finished watching the video, I got ready to take the dog for a walk and asked my son if he wanted to come with me. "No thanks", he replied.

So I had an idea...I asked him a question: "If you came for a walk with us, how many Achievement points would the walk be worth?".

He thought about it. "About 200..."

"And then you'd come?" I asked...


I was floored.

DS Games - E3 2010 - Guitar Hero 5
Connecting Clouds: Intuit Partner Platform and Windows Azure

How about I break my blogging “hiatus” by sharing some cool stuff the Intuit Partner Platform team has been working on for a little while that involves Windows Azure?

OK, then…  :-)

This morning, Intuit and Microsoft have announced very cool news for Intuit and Microsoft developers and for Small Businesses…

From the IPP team blog post, Alex Chriss, Director of IPP (er…my boss):

“Today, we’re thrilled to announce an alliance between Intuit and Microsoft that brings IPP a giant step closer to our ecosystem vision. Starting today, SaaS developers can access the beta of the Windows Azure SDK for IPP - a set of tools, code samples, and services, designed to make it easy for developers of SaaS applications developed on Windows Azure to federate those SaaS apps on to IPP and sell them to millions of Small Businesses in the Intuit Workplace App Center.”

Connecting these two clouds has been fun and it’s just the start…the bits we’re releasing today is a beta…but fully functional: it provides everything an Azure developer needs to federate their apps on to IPP. In the v1.0 release of the Windows Azure SDK for IPP (expected to launch sometime in February) will also include built-in support for IPP’s Intuit Data Services, the web API that allows those SaaS apps to fully integrate with QuickBooks customer data and program against the common data model and cloud repository that all Intuit Workplace App Center leverage…this is how the SaaS apps from different vendors as well as Intuit’s SaaS offerings work together at the data level.

So the developer story is pretty awesome.

The other aspect to the news released this morning is about the plan to federate Microsoft Business Productivity Online Standard Suite (BPOS) on to IPP and become one of the great set of apps available on Intuit Workplace App Center. BPOS includes a set of messaging and collaboration solutions hosted by Microsoft, and consists of Exchange Online, SharePoint Online, Office Live Meeting, and Office Communications Online.

I recorded a short interview with Jeff Collins, Group Architect for IPP, and Jarred Keneally, Developer Support Engineer to talk about what’s in the SDK and what’s coming soon. Enjoy!

Some more info links:


Update - some reactions to the news coming in now:

Dennis Howlett - ZDNet - Intuit and Microsoft partner: more PaaS to put in your aaS environment

My take: Intuit is joining a growing band of apps vendors that see PaaS as a way of delivering all sorts of aaS functionality, expanding its reach, developing deep domain expertise and helping it accelerate growth. These are bold ambitions and fit well with the idea that a single cloud platform should provide the ecosystem framework needed to achieve these goals. There is no reason why the SMB market should not benefit from these initiatives so at this level it is good to see both Microsoft and Intuit step up to the plate of opening up access to a large group of developers.

Ben Kepes - CloudAve - Intuit and Microsoft Sign Deal to Serve SMBs

"This really is massive news for anyone involved in small or medium business – be it as a business themselves or in anyway selling technology products or services to SMBs....APIs are great – wonderfully valuable things that allow applications to work together. But a common data model of the sort that the IPP is built around, is even better, allowing applications to be built from the start around an underlying and consistent model of data."

Sam Diaz - Between The Lines - Microsoft and Intuit become cloud partners

"The idea, of course, is to link Microsoft’s business applications to the financial data that’s found within Quickbooks to help businesses operate more efficiently. For months, Intuit has been working to push the cloud and open its arms to developers....In July, Intuit launched an open-source community where users could share information to enhance the apps on Intuit’s platform. Prior to that, the company announced Federated Applications, which allows developers to use any programming language, host those apps on any cloud infrastructure and connect them to Intuit’s platform, marketing them to business customers who use Intuit products."

Mary Jo Foley - Microsoft partners with Intuit to shore up Redmond's small-business cloud play

“Customers don’t want a one-point small-business solution. They want a whole suite,” said Walid Abu-Hadba, Microsoft Corporate Vice President of the Developer & Platform Evangelism. He said that this kind of partnership with Intuit was an example of how Microsoft plans to address the needs of small-business developers and customers.”

Dave Rosenberg, CNET, 

“According to Alex Chriss, director of IPP, the technology took just a few months to build because the strategy was already aligned. The integration is based on a common data model that is an extension of Quickbooks data. The data model lives in the cloud and developers are able to use the SDK to integrate between the desktop, cloud, and other applications in the ecosystem…For well over a year I've been suggesting that Microsoft needs to take advantage of it's massive developer base to make any real progress with Azure. While this deal with Intuit is still a bit of a baby step, there are many other applications, both online and off, that could use Azure for a variety of purposes. This bodes well not just for Microsoft but for the cloud in general.”

The Microsoft Blog - Microsoft, Intuit team up to encourage cloud apps

“Azure is Microsoft's new platform as a service (PaaS) offering, designed to automatically manage and scale applications hosted on Microsoft's public cloud. Fueled by Microsoft's vast network of partners familiar with its programming languages, Azure will compete against similar offerings such as Google App Engine and”

Oh...and we made techmeme :-)


Phil Wainewright - Why Microsoft and Intuit need each other's clouds

“Cloud platforms share many of the ingredients of conventional software platforms, but they add several crucial new ingredients. One thing that hasn’t changed is the need to build momentum among developers and customers for the platform. Intuit and Microsoft have plenty of both, which guarantees attention for what they’ve announced today. But the tie-up between these two giants is important too for the light it shines on the special characteristics of cloud platforms and how they change the game in so many ways for ISVs, developers and platform vendors…

...the link-up combines Microsoft’s strengths in developer tools and functional scope with Intuit’s advanced skills and investment in service delivery on IPP”


Federated Apps on the Intuit Partner Platform

So what have I been working on since joining Intuit? A bunch of stuff, but something I wanted to shout about is the release of “Federated Applications” on the Intuit Partner Platform.

Working closely with five new developers to Intuit's Platform as a Service (PaaS), VerticalResponse, DimDim, Rypple, Setster, and ExpenseWare, we've got some kick-ass apps federated into the platform.

Some nice coverage so far this morning, including:

Ben Kepes, CloudAve Intuit Launches the IPP Version 2

"After the briefing I have to say that it looks to me like IPP is finally offering to fulfil the promise of the end-to-end integrated small business software platform that I’ve been evangelising for a few years now – my catch cry of late has been that application integration should only be seen as the very first step in building a SaaS ecosystem. Much more important is the aggregation of applications. This may be data aggregation, UI aggregation, sign-on integration or billing integration – and ideally users and vendors would determine what parts of the integration they bought into."

Leena Rao at TechCrunch - Intuit’s Partner Platform Goes Multilingual With Federated Apps

“The “Federated Applications” functionality lets developers who have existing SaaS applications that are built with any programming language, database or cloud computing platform publish their apps on Intuit Marketplace. Applications won’t have to be rewritten to conform to QuickBooks but will instead go through a minor configuration process.”

Phil Wainewright, ZDNet: Intuit makes two-pronged PaaS and SaaS push

“The significant element of Intuit’s PaaS announcement is that it is a land-grab to capture mindshare among developers on other cloud platforms, who can take their AppEngine, Amazon Web Services or self-hosted applications and make them available using Intuit’s single sign-on, billing and QuickBooks integration infrastructure. Market reach being one of the key attributes developers look for in a new platform, perhaps the most appealing factor is that applications will be showcased within the Intuit Marketplace, with a potential reach to the four-million-strong installed base of QuickBooks accounting software customers and their estimated 25 million employees.”

What I've found very cool about this new Federated Apps capability for IPP is that fact that these different SaaS apps are developed on a variety of stacks and hosted outside of the IPP platform.. One of the apps is built on Java. Another is built enirely on .NET. Another is a mix of RoR and LAMP. Another built of Flex (on their own hosting environment - not IPP). If an app was running on EC2, that would work too, as would an app built on Google's AppEngine. It doen't matter - the integration points for Federated Apps are just that and pretty lightweight (one of the partners was able to turnaround the work with 1 developer in less than two weeks, including time for the technical review of the app). We made a deliberate decision to make IPP agnostic to the technology that developers want to use. Yes, we have a "native" stack also, but the options we are providing developers now means there is no technology lock-in to speak of.

Here is some more information on the details of federation and how you as a developer can get started.

Oh, and a quick plug on the talk I'll be giving on how to federate applications to IPP at the Startups and the Cloud event next week in the Boston area.

Startups and the Cloud: free event in Waltham, MA, sponsored by Intuit

This is an event I'm helping to organize...hope you can join! From the App Gap blog:

"On June 11th we’re organizing a gathering in Waltham, MA called Startups and the Cloud to talk about how starting a successful software business has changed now that cloud computing/ platforms have become highly viable, and in some cases, essential components of a startup’s strategy.

We’re keeping it compact at about four hours and we’ve been able to pack a ton of great content in. The agenda is here, but there’s a talk with Scott Cook, the founder of Intuit, a panel of local Venture Capitalists, and a panel of local CEOs. In addition, we’ll be hosting a social event where you’ll get a chance to meet some of the top thought leaders in this new wave of innovation. It’s a great group of tech leaders and, even better, it’s free!"

See: agenda and how to register.

Startups and the Cloud

I should have probably blogged this earlier...

I should have probably blogged this twittering @alexbarnett


7 Tips to a Successful Landing at a Large Company

Last week Tara Hunt shared the news of her joining Intuit Partner Platform team. Very cool...what talent!

In her blog post, Tara mentioned the opportunity to work in a large corporate context as one of her motivations in joining the team.

I was reflecting on this yesterday morning and recalled a similar decision I made a few years ago. Up to that time I had worked at small companies and start-ups. Although I thoroughly enjoyed those scrappy, fast-paced environments, I had wondered what it would be like in the "corporate world" and if I could cut it there. So when the opportunity to join Microsoft turned up, this similar motivation was one of the reasons I took the plunge.

What's the point of this post? Well, I was going to email the following advice to Tara, from one person who is on the journey in the second large corporate adventure (me) to another who is about to begin their first (Tara). And I thought, hey - that could make a pretty nice blog post...

Before I shoot, I do want to make clear that this advice is not specifically aimed at Tara at all, nor should this advice be intepreted as some kind of snide commentary about our team or my current employer (Intuit) as whole. It is simply advice that I could have used myself a few years ago, learned the hard way and want to share.

Without further ado, here are my...

7 Tips to a Successful Landing at a Large Company

1. Drink the right water through the firehose

Don't be like this little kid who didn't see what was coming. Large companies are complex beasts and in the first few weeks the sheer amount of information you think you need to absorb and the often critical decisions you need to make can easily overwhelm you. A good manager should help you filter what is important and what is not and help you navigate the info-storm, need get used to the fact that for some time to come a lot of things just aren't going to make sense to you that you really feel you should have a good grasp on. It's OK. Don't panic.

Do avoid as much as possible the gazillions of meetings you'll be invited to...people love to meet the new peeps and influence early...and that's ok to a degree, but be very selective about the meetings you accept and don't be afraid to turn a lot of them down.  For those you do accept, insist on understanding clear goals up-front before hitting "Accept". Failing on good filtering here means less time on the things you absolutely should be focusing on in the first few weeks (e.g. the right water).

2. Don't try to figure it all out yourself

Large companies cannot avoid process. And along with process goes the array of tools/apps you need navigate and use to get stuff done. Self-help is fine (praise the Google intranet search appliance!!) but at some point the effort to find out and learn for yourself (due to lack of obviousness) reaches the point of diminishing returns, fast. So save your sanity, swallow your pride, and ask a peer or your manager or your HR bod for the right pointers. You don't know what you don't know and that's OK.

3. Your first impressions count, so Ask Those Dumb Questions!

Help break Groupthink. This is applicable when joining almost all new companies and teams, but this point is maybe even more pertinent in a large company and large teams. The wikipedia definition article is a great description of what I mean here:

"Groupthink is a type of thought exhibited by group members who try to minimize conflict and reach consensus without critically testing, analyzing, and evaluating ideas. Individual creativity, uniqueness, and independent thinking are lost in the pursuit of group cohesiveness, as are the advantages of reasonable balance in choice and thought that might normally be obtained by making decisions as a group. During groupthink, members of the group avoid promoting viewpoints outside the comfort zone of consensus thinking."

Being new to team, your first impressions are critical and are likely to be "right" more often than not. If something doesn't make sense to you, then do as children do so naturally, and ask "why?" can be an incredibly powerful word.

4. Get down and dirty, fast. Identify and pick the high impact and low hanging fruit

The essence of this tip is not to lose the small company / start-up fire.

Effective teams and individuals at large companies often suffer from the analysis paralysis syndrome that can be caused by working in complex environments. Complexity and big companies go together (like Wallace and Gromit), so it can become too easy to a) fall into the trap of overly accounting for all the long term implications of short term action to immediate problems, and b) thinking that the current "way" of getting things done presents too many obstacles to getting those short-term things done that have high-impact. If you at are least aware of these two potential traps, you are less likely to fall down the traps and therefore more likely to achieve early wins. And early wins does wonders for your own self-confidence (countering "Imposter Syndrome").

The second point on this one is to make sure you create opportunities for you to get your hands dirty and therefore really understand the issues you are being paid to become an expert and lead on, as well as getting to grips with the practical mechanics of how to get things done at your new working home. I'm sure different folks may have a different point of view on this one but I've always found that some good old fashioned "DIY" under the belt makes one a better architect.

In the context of showing up as the new manager of a team, I received two bits of very useful advice provided by one of my mentors: 1. Find out where the high priority pressure is within your existing team, then take some this work on yourself and off their plate. They will appreciate your help and speeds up your own ramping up on how to get things done...and 2. When doing this, don't take on the high profile / star-status stuff, let them keep that - you should take on the grunge / unglamorous tasks.

5. Read and understand the last annual report

It sounds obvious (and really should be done as part of the process when prepp'ing for  interviews), but the content of an annual report is an absolute treasure trove in speeding up your understanding of the nature and operations of the company and your place in it: overall performance; cash-cows; strategies; priorities; risks; relevant markets; trends and a whole bunch of other stuff that could take years to try and find out through sheer "organic" means.

6. Research and use the benefits

Most large companies (especially in the tech sector) usually have a some great employee benefits (Intuit is amongst the leaders here). Learn about them, use them and don't feel guilty in doing so!

7. Find a Mentor

Find a mentor (and I don't mean your manager). Find someone who has a few years under their belt at the company (and ideally not too close to your own team in terms of the company org) who can advise you on how to navigate the wilderness, give your a historical perspective on why things are the way they are, tell you about some of the characters you'll be dealing with and give you objective advice generally.


There you have it. Just my 2 cents here. I'm sure many of the above tips / lessons are likely to be applicable when joining a new company of any size, but these are the ones that came to mind for me.

What do you think? Have you got tips to share with others? I'd love to hear other ideas and learnings on this topic.


Joining Intuit

Firstly - thanks to everyone who has reached out to me in the last three weeks via email, phone calls and comments since I shared the news of my pursuit for the next adventure - I have really appreciated everyone's support and interest in my next steps.

The great news is I'll be joining Intuit as a Group Manager working in a fast growing start-up team responsible for leading the Intuit Partner Platform. Below is a snippet and some links to blog posts and articles that should give you a fairly good idea about where my focus will be a week from now.

Although I'll be working from the Orem office (Utah) to start off with, the plan is to ultimately move to the greater Boston area - another new adventure. I've visited Boston three times in the last year or so and have loved it more and more with each visit, so watch out Boston!

This is a fantastic opportunity for me personally - the team has ambitious goals and an amazing set of existing assets to leverage (see some of the numbers below) in becoming a significant player in the cloud computing space. I look forward to sharing stories of my new journey with you.

"The Intuit Partner Platform not only gives developers the opportunity to build Web-based applications, but successful SaaS businesses by taking the complexity out of managing infrastructure, hosting, user management, integration and billing. Now developers can focus on developing innovative on-demand software solutions that solve unique and important problems for the four million small and mid-market businesses across the U.S. that use QuickBooks and the 25 million employees that work in those companies.

The platform-as-a-service offering allows developers to combine the powerful open source Flex framework and Adobe Flex Builder and the proven database of Intuit QuickBase to build rich Internet applications that work with QuickBooks data. They can also leverage Adobe AIR to provide additional desktop-like functionality in their applications, such as pop-up notifications, local file system access, local data storage, and the ability to create a fully branded user experience.

"We have now accepted more than 1,000 developers into the program and it is exciting to hear their ideas and energy about what they want to build," said Alex Chriss, business leader for the Intuit Partner Platform. "Customers will benefit greatly from the imagination and expertise that developers use to solve problems facing their specific industries." "

The Great Bungee Jump

Well, the great Bungee Jump has come. Martin Plaehn, CEO of Bungee Labs has shared the news of the company the letting go of 15 regular employees and contractors. Unfortunately, I am among this set of affected Bungee Labs employees.

A Voyage of Discovery

As Martin explained in today's post, Bungee Labs has been on a voyage of discovery. There are many lessons for me and the company to take away from the whole experience of the last year or so, but the bottom line is that we were overly optimistic about what it takes to achieve the rate and scale of developer adoption - real traction - and therefore the development of killer apps by the developer community that would drive the platform and the business forward at the velocity that makes a VC-backed venture "interesting".

So where does Bungee Labs go from here? Well, I think Martin eluded to the key clue:

"Over the next several months, Bungee Labs will lay out the course for a business object solution framework for user configurable enterprise-class applications that demonstrate these principles"

It'll be very interesting to see how this manifests and the impetus it will provide to the platform's adoption.

No Regrets

No regrets, none at all. When I considered the opportunity of joining Bungee Labs (and by doing so leave a relatively safe harbor in order to do so) I knew of the risks involved. Bungee Labs' mission was - and still is - of the kind that aims to "change the world". To have been a member of the team tasked with realizing the company's hugely ambitious mission has been nothing short of an entirely worthwhile and educational pursuit.

In my mind at least, Bungee Labs has made its mark in the brave new world of cloud computing. It has opened the eyes to many in the industry about what might be and can be. It has made cloudy ideas and visions more concrete and helped to define the concepts a (Platform as a Service, or PaaS) and memes that are contributing to the next generation of cloud computing platforms.

I've learned a great deal in the past 16 months working closely with a very talented, smart and creative set of teammates. And although it is probably unfair to call out individuals - for it implies those not mentioned weren't of similar caliber (which is not the case) -  I do want to thank Martin Plaehn, Bungee Labs' CEO in particular for his mentorship during my tenure at Bungee Labs' and from whom I've learned an enormous amount management and leadership. I'll also miss the inane banter with Ted in those podcasts we put together (and the "Shushee"  lunches).

What Next?

And so...on to my next adventure. What will that be exactly? Frankly, I have no idea yet...but whatever it is, I need to know I'll be trying to change the world :-)

I'm open to if you have some, please get in touch.

How ADO.NET Data Services came to be (formerly known as Project Astoria)

Pablo Castro has recounted some of his timelined memories about how "Project Astoria" evolved from a lunch time conversation to bits in .NET 3.5 SP1 and Visual Studio 2008 SP1 now known as ADO.NET Data Services Framework). Nice write up.

Three memories of my own to add to the story:

1. I was reading up on the whole REST thing in the summer of 2006 - its origins, philosophy and design patterns. I knew there was something interesting going on and some potential dots to join, but I wasn't sure which dots...So I collated and circulated a bunch of research / links to the team, then blogged the links (I liked How I explained REST to my wife. More recently see Explaining REST to Damien Katz). I got a few proverbial (and some literal) blank stares as I shared my enthusiasm for REST, asking how we could apply the ideas to the various projects we were working on. It was Pablo, and (as Pablo attests) Britt Johnston (now a PUM for SQL Business) who were able to develop the initial conceptual leaps into something more concrete like a Think Week Paper and a prototype demo.

2. When it came to brainstorming the code name, the team agreed on a  "cloud" theme. A number of proposals were floated around along with their rationales, including "cumulus" and "cirrus". We were then advised that city and town code names were legal-safe. So there we were, struggling to agree on some city or town name we all liked (or at least not hate nor be confused by..."how about Nameless?"...), and then Mike Pizzo's proposal came in: "Astoria - hey, it's the cloudiest city in the USA!" (at least it was in 2006). Sold.

3. I think my favorite memory of all is the reaction Gary Flake provided (of Microsoft's Live Labs) to the prototype Pablo demo'd at one of the pitch meetings: "As God himself would have designed it!" Dr Flake exclaimed..."Cool", I thought to myself - "but does that mean no REST for the wicked?"

I Am a Strange Loop

About 10 years ago a friend gave to me a book as gift. We were sitting on the deck of a canal boat on a Friday late afternoon set for a weekend of lazy meandering with friends and family along the Thames, when he handed me his own copy of Godel, Escher, Bach. "You'll love this" he said.

Willem was was right. Godel, Escher, Bach not only tickled my penchant for self-referentialism and recursion ("It always takes longer than you expect, even when you take Hofstadter's Law into account"), it also reinforced an odd conviction I've held that "magic" happens where these oddities exist (all around and within us).

Last week, (thanks to Nick Carr), I was alerted to Douglas R. Hofstadter's latest mind-bender, I Am a Strange Loop. The book arrived today, unpacked and on the table when I got back from work this evening...inviting me to another voyage with this great mind:

"Deep down, your brain is a chaotic seething soup of particles. On a higher level it is a jungle of neurons, and on a yet higher level it is a network of abstractions that we call "symbols." The most central and complex symbol is the one you call "I". An "I" is a strange loop where the brain's symbolic and physical levels feed back into each other and flip causality upside down so that symbols seem to have gained the paradoxical ability to push particles around, rather than the reverse.

For each human being, this "I" seems to be the realest thing in the world. But how can such a mysterious abstraction be real--or is our "I" merely a convenient fiction? Does an "I" exert genuine power over the particles in our brain, or is it helplessly pushed around by the all-powerful laws of physics? These are the mysteries tackled in I Am a Strange Loop, Douglas R. Hofstadter's first book-length journey into philosophy since Godel, Escher, Bach. Compulsively readable and endlessly thought-provoking, this is the book Hofstadter's many readers have long been waiting for."

More Posts Next page »