Strategy: The Art of the Product Manager

Most of my life I’ve been a fan of strategy games – Risk®, Age of Empires, even Checkers. These games all demand that the player has a solid strategy, or they will likely be defeated by their opponent. Anyone playing without a strategy is just executing random actions based on feeling or intuition (or luck), without a plan, and more often than not, won’t even see their defeat coming. In my experience, the words “strategy” and “tactics” always lead to a great conversation. In one of my previous places of employment, there was so much pressure to be “strategic” that the words strategy and strategic became overused and meaningless – everything was presented as a strategy because that was the perceived path to promotion. Telling someone that their “strategy” was actually tactical execution would lead to heated debates. I have seen people ask for strategy documents and then criticize them for their lack of specifics (which was code for ‘where are the tactics?’).

Strategy

The word “strategy” is derived from the Greek word strategos, meaning the “art of the general.” Simply put, a strategy is a plan to enable you to achieve a desired result. For a military general this is their plan for how they will deploy troops and resources. Conversely, tactics are the specific actions that will be executed to achieve the plan, such as flanking a building in our example.

In a previous post I explains how a Vision sets the overall direction; it is the compass for an organization (or even an individual). With a defined vision you can define the strategies that will enable the vision to become reality. Only once you have defined one or more strategies can you define the tactics that will be used to achieve the strategy (thereby achieving the vision). Take for example a person with high cholesterol who has a vision of being healthy. Their doctor may recommend several strategies for them to bring their cholesterol down and help them achieve their vision of health. One strategy might be to manage weight and/or drive weight loss. Another strategy might be to create a more healthy lifestyle (Note: these are simplified for the purpose of discussion). Each strategy will be achieved by executing a set of tactics, such as engaging in 30-minutes of cardio exercise 3-days a week by running or swimming, or by reducing the amount of animal fat intake, by having vegetarian meals a couple days a week.

Strategy v. Tactics

The difference between strategy and tactics is the difference between a plan and an action. A strategy is the plan–an adaptable plan–for how you will achieve a goal, and the tactics are the executable actions you will perform to achieve the result outlined by the strategy. In military usage, a distinction is made between strategy and tactics. Strategy is the utilization, during both peace and war, of all of a nation’s forces through large-scale, long-range planning and development, to ensure security or victory. Tactics deals with the use and deployment of troops in actual combat (Dictionary.com Unabridged. Based on the Random House Dictionary).

Strategy and Tactics are the plan and the actions.

Creating a Strategy

Creating a strategy, whether for a business, product or person, begins with the Vision; how can you create a plan without a vision of what you want to be when the plan is achieved? Assuming you have a good, concise and specific vision, then defining the strategy or strategies you will use is an exercise in planning. Start by identifying what has to happen in order to make the vision a reality. In the example of the person with high cholesterol who has a vision of being healthy, what has to change is their cholesterol level.

To identify the strategies available you begin identifying concepts that could change the “system” – where the system is the business, product or person. In our example case, the system is the person – what concepts could change this system from its current unhealthy state to a healthy state by lowering their cholesterol? In this case, a lot is known about how to lower cholesterol, so the strategies become apparent quickly:

  1. Manage weight and/or drive weight loss.
  2. Improve lifestyle health (e.g. eating, habits, etc.).
  3. Introduce cholesterol management medication.

With one or more strategies identified you can begin to evaluate them and decide which ones you want to employ. Our example patient may not want to introduce medication at this time, and will commit to the first two strategies. The strategies offer measurement milestones to determine their effectiveness, such as annual physical examination. The measurement milestone is designed to identify if the strategy is working, or if a new strategy is needed.

Measurement is Key

One of the most critical elements to a strategy is the ability to measure its effectiveness. You don’t want to continue burning resources executing against a strategy that isn’t working. With each strategy you identify you must identify a means to measure its success. For example, when we were preparing the initial beta release of Icenium we wanted to attract net-new customers to the company. One of the strategies we developed was to drive awareness through trade press that targeted audience profiles that were different than the current customer profile at the company. We developed a couple of measuring sticks.

When we created the beta release plan we decided that we would allow new users into the system through an invitation code (so we could control the inflow), and to aide the strategy we negotiated an exclusive announcement of the beta (with a couple thousand beta codes to giveaway) with TechCrunch, a publication that targeted the type of user we were interested in. This tactic was designed to support the higher level strategy of driving awareness to new user profiles. Within our system we created a reporting mechanism that would tell us the number of people responding to the invitation who were using email addresses already in our customer database. While not foolproof (because people have multiple email addresses), this did give us a good indication about the number of net-new customers we were bringing into the system, and since they were tied to their invitation code, we could tell where they came from. As we added more press outlets, and gave out more invitation codes, we could tell if our strategy was working or not by evaluating the percentage of net-new users coming from specific trade press.

In some cases your measurement may not be as easily instrumented. In another example from Icenium, our vision was to be a one-stop-shop for building cross-platform mobile applications and one of our business objectives was, as I said, to grow the company’s user base. To support both the vision and the business objective, we defined a strategy to attract web developers with an all-in-one tool and service stack. Our strategy was to build a development tool that was approachable and intuitive for web developers. We focused our execution (tactics) on building a light-weight code editor that worked similarly to other code editors, and that eliminated the need to manage platform complexities by abstracting them to the cloud. We replicated the web developer’s normal workflow of code-and-refresh by pairing the code editor with a device simulator. This enabled them to work in the same way they had been working with the browser, but with a focus on mobile applications. We built our app model on open source software that supported technologies they were already familiar with (HTML & JavaScript).

In other words, we defined strategies that would help us achieve the vision, and identified specific actions, or tactics, that would help us execute the strategies. The measurement sticks we created were less analytical and slightly more subjective – a review of support issues, overall community tone about the product, and a survey of users after they had used the product. We even ran a survey of users that abandon the product to find out why they left us (was our strategy failing or were they the wrong user profile?).

Here is a visualization of a couple of these examples:

image

Strategies Focus on Concepts, Tactics on Specifics

As you may have realized from the examples, a good strategy doesn’t have a lot of specifics about the actions. In fact, a good strategy should be adaptable to start or stop using specific actions, or tactics, at any time. A strategy for managing cholesterol doesn’t specify jogging or swimming, it identifies an amount of cardio recommended to achieve the desired result. If the patient executes the strategy with jogging, and either doesn’t like it, or gets injured, the strategy is flexible enough to allow them to introduce an alternative tactic—swimming—that is still in line with the strategy. Strategies are all about what you can do at a conceptual level – a planning level – to achieve your vision, and the tactics are the specific execution – the specific action – you will take to fulfill the strategy.

Summary

All too often we see people executing with no idea of the over arching strategy. This is when motion is confused with progress. Executing tactics without a strategy to drive them is simply motion. It’s business masturbation. You’re very busy, but nothing useful is going to result from all the effort.

I personally put a huge value in companies and organizations that measure result instead of action; those that value what is accomplished instead of how active people are. You can identify these companies by who is getting rewarded and promoted – is it the people who are thoughtfully developing a plan and executing methodically against it, or is it the people who are very busy with projects that look good, but drive no real measurable advancement toward the vision?

As a Product Management professional I feel strongly that my value is in being able to define a product vision and a set of strategies that will make that vision a reality, and then identifying tactics that I, or others, can execute to fulfill the strategy. More often than not, the execution is done by others, by the troops (engineering, marketing, sales, support). For my product I am the general, and the product strategy is my art.

A Vision is Not Enough, and a Poorly Defined Vision is Worse

For any product group or organization to be successful they must know where they are going and how they are going to get there. I’m not talking about the product backlog or the release schedule – I am talking about something more abstract than that. Within the DNA of any product group or organization there needs to be a driving force and a code of conduct. The compass that guides the group. I am talking about a vision and a set of principles that guide a product group, organization, or even a company (from here on out I’ll use ‘organization’ to refer to all of these).

The organizational vision provides direction and informs all constituents – employees, partners and customers – what the organization is trying to achieve. In partnership with the vision, a set of organizational principles provides working guidelines and informs all constituents how the organization will operate.

Defining a Vision

A vision statement is something that needs to be taken very seriously, with time and effort put into it. The vision statement becomes the North Star for the organization. It defines WHAT the organization is attempting to do or become. Pithy, jargon-filled vision statements provide no value; they provide no direction. As a member of an organization how can I make decisions about my work and how I use organizational resources if the vision doesn’t provide me any guidance or direction? If the vision statement says something as trite as “We strive to build great products” how am I armed to make good decisions on a day to day basis, or even in strategic planning? Conversely, complicated, all-encompassing vision statements provide equally little or no direction.

A vision statement should succinctly define the future you see for the organization – it should say a lot in as few words as possible. A good vision statement is easy for every constituent to remember and provides direction. Conversely, generic vision statements, especially those that provide no clear differentiation from others in the market, don’t help the organization align and head in the same direction.

Take for example the following:

“Be a highly effective, lean and fast moving organization that builds high-quality products that customers love.”

This sure sounds great. Who wouldn’t want to be a highly effective, lean fast moving organization? Who wouldn’t want to build products that customer love? Does this really provide much direction? Does this really provide much differentiation?

Imagine the alternative vision statement from a competitor:

“Be an ineffective, bloated and slow moving organization that builds mediocre products that customers simply tolerate.”

No one is going to have that as their vision statement. The fact is, the first one is simply too generic and vague. It’s a vision statement of common sense, not direction. No one in the organization is going to make better decisions based on the first vision statement (can you imagine – “Well, I was going to ship the product with this critical bug, but our vision is to make products that customers love, so I better get it fixed”).

A good vision statement both directs the organization and identifies what sets it apart from its competitors.

For example, consider the vision statement from Amazon.com:

Our vision is to be earth’s most customer centric company; to build a place where people can come to find and discover anything they might want to buy online.

With this vision statement it’s easy to understand what the company wants to be, and for the members of the organization to make decisions about how to use company resources. Any decision that needs to be made can be evaluated against this vision. Answer the following question and you will have the answer:

Will allocating resources to a given idea move the organization closer to the vision?

As we began the journey to create and bring to market Icenium, I set forth a vision that defined what Icenium should become.

Icenium is all you need to build applications for the most relevant mobile platforms in the world.

The vision for Icenium is clearly targeted at mobile devices – but not all mobile devices, only he most relevant ones. Additionally, Icenium should be all you need; in other words, it should enable coding, testing and publishing an application for the devices it targets. Every decision we make about features and capabilities are evaluated on how they enable this vision.

If the vision defines WHAT an organization is trying to become, then the principles define HOW it will get there.

Defining Principles

When I say that the principles define HOW an organization will achieve its vision, I am not talking about the execution plan – the sequence of steps to go from A to B. Rather, I am referring to the way in which an organization operates in order to achieve the vision. I am referring to the day-to-day behaviors of everyone in the organization. I am referring to the culture of the organization.

Without principles there is no common ground – no way for all the members of the organization to come to terms with one another. How does an organization make decisions when there is not guidebook for how to behave? How does conflict get resolved when there is no common code of conduct?

Imagine if you lived in a world without principles? What would guide you as you made decisions? If, by principle, you don’t steal, then this is an absolute. You can’t live by this principle, and then steal a little bit. You either live by the principle, or you abandon the principle. In the worlds of the immortal Yoda,

Do. Or do not. There is no try.

Amazon.com has very public Leadership Principles that guide the company in how they achieve their vision. These principles are well known (or at least very public), and every employee has their performance measured by both what they accomplished (the results they got) and how they fulfilled the Leadership Principles along the way. While I won’t go into all 14 Leadership Principles, I will examine a few to demonstrate how principles are used to guide an organization.

In their quest to become earth’s most customer centric company, Amazon.com has defined a principle to support the end goal – Customer Obsession.

Customer Obsession – Leaders start with the customer and work backwards. They work vigorously to earn and keep customer trust. Although leaders pay attention to competitors, they obsess over customers.

At the very core of Amazon.com is customer obsession. Not only is it part of their vision, but it is part of their guiding principles that define how they work on a daily basis. Every decision they make should be evaluated against this principle. In every decision they should be asking themselves, “Are we doing this for the customer?” and “Will this improve our customer’s experience with us?” If both answers aren’t a solid, clear and concise “Yes” than their decision is made for them – don’t do it.

Principles often come from the founder’s or the organizational leader’s personal beliefs. For Amazon.com, another principle is Frugality, which has been a well documented personal belief of the founder, Jeff Bezos.

Frugality – We try not to spend money on things that don’t matter to customers. Frugality breeds resourcefulness, self-sufficiency and invention. There are no extra points for headcount, budget size or fixed expense.

Again, this principle can and should be applied in the daily life of every Amazon.com employee. This doesn’t mean that Amazon.com is cheap – I don’t believe they are. In fact, I believe they spend money very wisely when they need to. Here in Seattle, Amazon has bought up a lot of property and built or bought some very nice buildings for their employees. This is money (a lot of money) spent on things customers don’t see, but it enables the company to operate more effectively. The frugality is revealed in the superfluous detail, in the lack of extravagance within the buildings. The desks are simple constructions of 2×4’s and doors. The wall paper isn’t some fancy design – it’s maps or newsprint in some cases.

In another case of frugality, Mr. Bezos spent over $700 million to acquire some robotic shelving technology so that the shelves containing product could be moved to the warehouse worked, rather than the other way around. This is a huge amount of money – but it wasn’t spent simply because they could do it. It was spent because, in a pilot they found that packing and shipping was more accurate and efficient using this technology. In other words, the expense directly benefitted customers.

Having a set of principles enables all Amazon.com employees to make good decisions in their daily work. In some ways it gives each of them a WWJD (What Would Jeff Do) barometer.

As we defined the vision of Icenium, we established some core principles. Some directly influenced by the corporate culture, and others define by me and the team, to guide us in creating the right product.

  • Simplicity – Every feature and capability added to Icenium should serve to simplify the developer workflow of building, testing and publishing an application.
  • Decouple Platforms – Developers should not be restricted to target only platforms that are compatible with their development platform (OS, Hardware). We should strive to decouple the two ends of the application spectrum whenever possible.
  • Skills Reuse – Icenium should enable developers to use the skills they already have, rather than require them to learn new skills. Whenever possible Icenium should provide the option for a developer to use technology or languages they already know.
  • Start Fast – A developer should be able to get started with Icenium in under 5-minutes. Any tools that a developer is required to download to use Icenium should not prevent them from creating a new project and writing code almost immediately.
  • Developer Choice – Icenium should enable developers to chose the technology they prefer and never lock them into our technology stack.
  • Customers Drive the Roadmap – Our customers are who we build Icenium for and thus their needs are the primary driver of every product decision we make. We strive to have strong communication with our customers to better learn about and understand their needs so that we can build solutions that meet and exceed their expectations.

This set of principles armed us with the ability to make decisions and trade-offs along the way to deliver to our customers a product they would love (and isn’t that everyone’s goal). As we set out to make a product that was all a developer needed to build applications for the most relevant mobile platforms in the world, we could make decisions about how we built the product by evaluating those decisions against the principles. Should we package the platform SDKs into the development environment, or should we abstract them as services? Test that question against the principles of Simplicity  and Start Fast  and you have your answer. Should we base our projects on Apache Cordova? Consider that the most common technology skills among developers in HTML and JavaScript, and overlay that on the Skills Reuse  principle and you have your answer.

Principles define how we behave, as individuals and as an organization. Without principles we have no guidebook for how to fulfill our vision. We are left to figure it out along the way, which ultimately leads to churn and, in many cases, unresolvable conflict. By defining a set of principles everyone knows how to operate, and while conflict may still occur, it is resolvable by discussion the conflict with the principles in mind. In fact, i n the book Getting to Yes: Negotiating Agreement Without Giving In, 3rd Edition by Roger Fisher and William Ury, the authors states:

Conflict is an inevitable—and useful—part of life. It often leads to change and generates insight…The challenge is not to eliminate conflict but to transform it. It is to change the way we deal with our differences—from destructive, adversarial battling to hard-headed, side-by-side problem solving. We should not underestimate the difficulty of this task, yet no task is more urgent in the world today.

Principles are the tool that enable an organization to resolve conflict more easily. They are the objective criteria that everyone in the organization is aligned to, and the only real discussion to have is about the interpretation of the principle(s) on either side of the conflict. For example, in the case of Amazon.com, I’m sure they frequently get into discussions of what the Frugality principle means, and whether or not a spending proposal adheres to the meaning and intent of the principle. With this in mind, it is easier to resolve the conflict by focusing on the meaning of the principle, and not the pressure or influence from the other side. With Icenium, for example, if a new feature proposal makes the developer workflow more complicated without a significant trade-off, the decision is an easy one.

Wrap-up

The combination of (1) a well thought out vision, and (2) a set of principles you are willing to live by could very well be the most important two artifacts you create for your organization. They are so fundamental to everything you will do. Without a clear and concise vision it is difficult to know where you are going. Without an agreed upon set of principles, it is difficult to know how to act.

Don’t fall into the trap of defining too generic or a vision. If you can Ctrl+F / Ctrl+R your name with your competitor’s name and the vision holds true, you need more work. Your vision should be specific and clear and differentiate you. Don’t have the vision to “always put customers first” – have the vision to be “earth’s most customer centric company” – and if you competitors strive for the same vision, then beat them at it while also differentiating yourself.

Define your principles now. It’s never too late. Decide who you want to be as an organization and write it down. Don’t have a principle that says “we will be transparent” – that’s too ambiguous. Have a principle that says “One-up, one-down and all around – we strive for transparency through by ensuring all team members can articulate the product strategy (one-up), the customer needs (one-down), and what is happening in the organization (and all around).”

Now go make great products.

Cloud Living – Day 7

Seven days in and what is everyone asking? “How’s it going with your cloud-living experiment?” I’m not going to lie. It’s not going well. Instead of living in the clouds, I feel like I am living in the fog…like a cloud sitting on the ground…where things reside.

Day 1

On Day 1 of my experiment I quickly discovered that I was going to have some trouble getting onto the VPN I use daily for my job. You see, I am a remote employee in a home office. In order to access any corporate resources (e.g. internal CMS, corporate directory, etc.) I need to first establish a VPN connection. At Telerik we use Cisco AnyConnect over SSL.

Major Obstacle #1 – Cisco AnyConnect

In order for me to establish a VPN connection, I first have to install the Cisco AnyConnect Java client tool. Wait! Install! I can’t install, I live in the cloud. Certainly there has to be a way around this. As it turns out there is VPN support built right into Chrome OS. Solution found!

Solution Failed!

As it turns out, the built-in VPN solution, while great for some instances, isn’t great for me. You see, as I mentioned, we use an SSL VPN (which makes sense – all my top secret IP is moving over this connection). Well, this is what I found on the Google Chrome OS support site:

Doh!

Suddenly my dreams of living a cloud life are being threatened. I can’t access any corporate resources. Not even email (our Outlook Web Access requires the VPN connection). I thought about trying to use Office 365 or GMail as the client for my corporate Exchange account, but unfortunately neither of these solutions are currently supported by our IT admins, and since I am the only one (foolish enough to be) using a Chromebook, its also not a priority. Understandable.

Day 2-7

aka What I Use the Chromebook For (besides Fantasy Football)

So here’s what I have been doing for the past seven days.

During working hours I use my Windows PC and MacOS machines any time I need to (a) have a Skype meeting with my team or colleagues (since imo instant messenger failed for me when it came to anything other than text), or (b) when I need to access corporate resources, such as out internal CMS portals.  Anytime I don’t need to do either of those things for a decent stretch of time (an hour or more), I switch to the Chromebook. I’ve reconfigured my desk so that the Apple Thunderbolt display is horizontal on the right, the Windows PC has one display vertical on the left, and the Chromebook has the center display, horizontal. THis makes it easy for me to default to the Chromebook, while still having the other machines available and accessible.

I’ve been using Google Drive to read existing Microsoft Word docs that I have saved in DropBox, and to create new files, including documents and presentations. I’ve also been using my GMail to send emails to work colleagues (and I’m not sure they’ve noticed). I’m considering signing up for Cloud HQ in order to sync Google Drive and DropBox.

Lots of my time is spent doing one of three things, all of which have been possible in the Chromebook:

  1. Doing competitive and industry research, reading blogs, and other web based resources.
  2. Creating content in the form of “word” docs and presentations.
  3. Writing code in a kick-ass integrated cloud environment (ICE).

As long as I don’t need to access corporate resources (which is often the result of my research work) or read my Telerik email (which I can do on my Google Nexus phone, or on my Google Nexus 7 tablet) then I am fine in the Chromebook.

<sideNote>The Chromebook battery life and sleep mode rocks! I frequently forget to plug the device in. Since it sleeps when the lid is closed, and comes to life in seconds when opened, the battery has lasted longer than I have ever needed. Big points for the Chromebook.</sideNote>

At this point I’ve figured out most of the limitations of the Chromebook, and I think I know where I can push it a little bit. What I would really like to do next is record a demo of my new product running on the Chromebook. Apparently all I have to do is install a screen capture tool.

Wait! Install!

My New Life in the Cloud – Day 0

As a guy that is a proponent of, and who makes cloud-based software, I felt it was only prudent for me to try a little experiment. What would it be like to live my life in the cloud? I’m not talking about spending the month of October in the high elevations of Nepal like some people I know. Rather, I am talking about limiting the software I use in my day-to-day life to only cloud based software. I tried this once before, but it was too easy to fall back into my old habits of relying on resident applications when things go tough. Since the software my team and I are building is fully capable of running non-resident, I thought the ony sane thing to do was to rip off the (resident app) band-aid and get myself a Chromebook.

Samsung Series 5 550
Samsung Series 5 550

Last week the Samsung Series 5 550 arrived at my house. Its a nice little device (little, like a 12.1″ screen), but its still thicker and heavier than my MacBook Air (even though it has all those resident apps stuffed inside).  The device feels solid, and looks nice. I fired it up, and after a few seconds of booting, I had to wait ten minutes for an operating system update to be applied. Not too bad for a first boot. Subsequent boots have been wicked fast (under 10-seconds for a cold boot, and instant for coming our of sleep).

I pretty much stayed away from it over the weekend, with plans to turn off all of my other laptops (Windows X220 with two 27″ monitors, a MackBook Air with Thunderbolt display, etc.) and go exclusively cloud for two weeks. And then reality hit. I had a morning full of meetings and I simply wasn’t ready to begin my day on a new laptop. I needed Skype (which isn’t supported on ChromeOS), and I needed to access my corporate Exchange server, etc. I did my first meeting as normal, and then made the switch.

My second meeting got off to a rough start because I couldn’t get imo instant messenger to make a video call to one of my Skype contacts–I wasn’t able to get my headset to work with ChromeOS, and the video call crashed. We quickly resorted to a Google+ Hangout (chalk one up for Google–it was so hard to use the stuff we we were accustom to that we had to use their solution).

Before I knew it I was back at my Windows PC for a couple follow up meetings, etc. By the afternoon my resolve was stronger. I decided to disassemble my existing desk setup so that I could position the Chromebook front and center, and turn off the other laptops for the next couple weeks. Since the Series 5 550 has an on board DisplayPort I decided to connect it to the center monitor (which I turned back to horizontal from its normal portrait position–see below).

After discovering the Ctrl + Monitor Toggle combination I had the screen projecting on my 27″ monitor (at 2550 x 1440). Life is better now.

So far I have installed many of the apps I use regularly (the Chrome Web App versions) and some that are new to me that will take the place of old resident apps.

I also found a great list of tips for new ChromeOS users.

My next series of steps is to get all of my work applications up and running before tomorrow morning. I need to ensure I can access Outlook Web Access and Google Docs (which we don’t use, but I will need to switch to for the next few weeks). I will also need to get Google Drive and DropBox synced – I use DropBox extensively and I am not willing to give it up (especially since it’s also cloud-based).

I’ll keep you posted on my progress, and what obstacles I encounter. It’s worth noting that my product works just fine on ChromeOS 🙂

Here’s my old desk set-up (I had to use my MacBook Air to get this photo off of my Canon 40D–I couldn’t figure out how to do it with the Chromebook in 10-minutes and gave in):

My old desk setup (Windows on the left two screens, MacBook Air on the right one)

There are Only Two Kinds of Device Apps

Just the other day a colleague and I were having an interesting discussion. After a while we realized we were talking about the same things but we each used different vocabulary to describe the things we were referring to. I hate when that happens.

I thought it would be useful to provide a common definition for the types of device (aka mobile) apps we see in the market to help establish a common vocabulary.

As I see it, device applications can be categorized as being either consumer applications or business applications (my colleague likes the term “corporate applications”). These are then also sub-divided, but I’ll get to that soon.

Consumer Applications

IMG_0057Consumer applications are exactly what the name implies – applications used by consumers. These are typically purchased through an app store or market place by the consumer directly. I tend to sub-divide these into five types: data snacking, social/mash-up, content/media, casual games and graphical games.

The key attribute here is that these are acquired directly by the user for a specific non-business purpose. Facebook, Angry Birds, etc. are examples of these types. There is some easy confusion here when we start to think about business (or “corporate”) applications, specifically those intended to connect the user to the business. Is Facebook a B2C app? Not really. It is the product of a company, but primarily a consumer app.

Business Applications

Business applications are built for only a couple reasons – B2C or internal line-of-business (LOB), and it can be easy to blur the line (or at least see the line with blurry vision) if you’re not careful. Some may argue that B2B is another type, but my position is that there is no such thing as a B2B device applications. They are B2C applications where the “C” is simply a user from a client “B”.

B2C

Business to Consumer (B2C) apps are the apps most easily confused with “direct” consumer apps. Is Facebook a consumer app or a B2C app? I think I could argue this one successfully in either direction, but I prefer to think of it as a consumer app (Facebook’s primary business is Facebook, even though IMG_0058their revenue comes from sources other than the user). For B2C I like to think about the company’s primary business. Is the app their primary business, or are they in the business of something else, and the app helps them provide a better experience for their customer?

Alaska Airlines is a company I do a lot of business with. They have a great B2C app. As the consumer, I got the app from the Apple AppStore, even though it’s not a consumer app (see, I told you it could get blurry). This app is a great example of a company that is primarily in a different business (moving people and stuff through the air),who has a great app for their customers. I can use the app to check my upcoming trips, check in for flights, and—for those of you who aspire to be truly paperless—even use it as my boarding pass.

My colleague likes to refer to these B2C apps as “Corporate Consumer Apps.”

LOB Apps

Line-of-Business apps are built by companies (or vendors) for use within the confines of their business. Examples include expense tracking apps, conference room schedulers, and lunchroom debit apps (at Microsoft we even had a game app that the food services division put out enabling you to win a discount on lunch using your Windows Phone). Typically these are developed in house for a specific need, and distributed through some form of internal or enterprise app store.

These are what my colleague refers to as “Corporate Enterprise Apps.”

What Do You Think?

Do you agree with me? When thinking about the different app types for mobile devices, do we agree on the following terms:

  • Consumer apps
    • Data Snacking
    • Social/Mash-up
    • Content/Media
    • Casual Games
    • Graphical Games
  • Business Apps
    • Business to Consumer (B2C)
    • Line-of-Business (LOB)

D7

My Mac Life

I admit, I brought this on myself, and it’s up to me to solve this problem. This is my attempt at doing that. After reading this, if you are one of the few dozen people that scolded me for not following up on my post about switching the a Mac, please consider this my retribution.

Ok, I’m being dramatic. The truth is that quite a few of my friends and Readers™ honestly wanted to know how my transition from Windows to Mac OS was gong. Do I like the Mac? Was it hard? Am I still using it?

apple-logo1Yes. Yes. Yes.

My move to the MacBook Air was a slow process. In the beginning, I was excited to join the ranks of the cool kids with a MacBook Air. Reading the previous post on the topic, you’d think I was all in and this was a closed book. In reality, it took longer than I expected to make the transition. The MacBook Air was sexy. It was hip. It was alluring. What I discovered was, most importantly, it just works. I turned it on, set up my profile and was up and running quickly. I hit the Mac Store and downloaded some apps, set up my email using Mail. I was ready.

While it just worked, it worked differently, and my enthusiasm quickly went away. Windows was like an old girl friend that was just waiting for me to come back, and she was there with a gin and tonic, and a smile to greet me at the door.

In the early days of using the Mac, I almost dreaded it. I loved how reliably it worked and how quickly it booted up, but I didn’t feel productive. It took me a while to figure out how to do very basic things. I didn’t know how to navigate the file system. I couldn’t get in to the Windows network that Telerik uses. I didn’t have the apps I was accustomed to – most notably Microsoft Office. So I found myself using the Mac a little, then switching over to my Lenovo X220.

Ah, the feeling of productivity.

I was not only trying to see what life as a Mac user was like, I was also trying to see what life as a Mac developer was like, so I forced myself to use the Mac a little every day. I would do a little iOS development in xCode. I would do a little web development in Dreamweaver. Occasionally I would open up Eclipse (and then quickly shut it down out of frustration because it sucks). Over the weeks I found myself using the Mac more and more. In between writing code on the Mac I would do a little work…on the Mac (even with the Lenovo sitting right there). Mostly this was because I only had one monitor, and didn’t want to keep switching it back and forth (although I did buy an HDMI switch just for this reason).

As time past I realized that the Mac OS X Lion touch gestures were becoming second nature. They were incredibly intuitive, and easy to learn without thinking about it. It dawned on me that they had become part of my muscle memory when I found myself trying to use the two finger swipe on the Lenovo (and I was constantly using the mouse wheel and scrolling in the wrong direction).

The MacBook Air had taken hold of me.

In November I went on vacation with my wife and kids, we rarely go anywhere without at least one computer, and since this was a vacation, I decided I would bring only the MacBook Air. This was a huge step for me. I always have a computer with me, just in case something needs immediate attention. Even if I am not doing work, it’s like a security blanket – I feel uncomfortable without it. Now I was going to be traveling across an ocean, far away from my home office, with nothing but a MacBook Air. I was nervous, but if there is the right time to try this, it’s on vacation, when the computer is much less critical. The vacation was great, and the MacBook proved useful (I took a bunch of photos and used iPhoto to do some quick touch-ups before posting them for friends and family).

self_portrait

In January the transition was complete. I had purchased a Thunderbolt display and a MagicMouse, and the MacBook (now with Office for Mac, and a Windows 7 BootCamp partition) was my primary machine. I still used my Lenovo daily, mostly for network stuff at work, but the time spent on it was rapidly diminishing. I spent a week at Telerik’s office in Boston, and only brought the MacBook Air with me. And the world didn’t end.

As I write this, I am on a plane traveling from Sofia, Bulgaria to Paris, and eventually to Seattle (the photo below is from the airplane, over Sofia). I am writing this on my iPad. My MacBook Air is close by (I thought I was going to watch a movie on the iPad, but decided I didn’t have enough time). I have replaced the DLink router in my house with an AirPort Extreme, and I am back to using an iPhone pretty regularly.

IMG_0016 1

I’m not trying to be a Mac fanboy, but there are some things that simply work better. The MacBook Air is small, light and easily fits in the seat back pocket on an airplane. It boots fast, and the battery is decent. The iPad is far and away better than the Lenovo K1 Android Honeycomb tablet that i have. I had reluctantly given up my iPhone a couple years ago, and now I am back where all the good apps are.

I replaced my DLink router because it was failing, and several reviews I read pointed to the Airport Extreme as the best router for mixed Apple/Microsoft environments.. I took it out of the package and plugged it in, and within minutes a setup wizard had guided me through cloning my existing wireless network. Our total downtime of the wireless network could be measured in seconds, and the entire setup took only a clue minutes. I was impressed.

If anything has lured me to use Apple products it has been the simplicity and reliability of them. Everything just works, and rarely requires any technical expertise. I was reminded of this yesterday when I booted my Lenovo and it took 10-minutes to go from cold to a useable state. All I wanted to do was boot up, Skype a colleague and tell him where to meet me in 10-minutes. By the time it was booted, I was late to meet him and he didn’t know where we were meeting. I have yet to have this experience with the MacBook Air.

Of course, I still use Windows, but mostly I use it in my BootCamp image running in VMWare Fusion (that way I can three-finger swipe between Mac OS X and Windows). Of course, Mac OS X continues to frustrate me from time to time (for example the other day I was using some software that required me to press the right-control key…there is no right-control key on the MacBook Air). I don’t yet feel like a Power User and that is uncomfortable. It’s like when I bought my first car that had electronic fuel injection and an on board computer. Suddenly I went from being able to work on anything in it to not even understanding how it all works. I don’t like that.

I’m still learning, but I am much more comfortable with the Mac now. My fingers are getting trained to use the Command key, and I’m getting used to the significantly lower profile of the Magic Mouse.

Here are a few things I love and hate:

  • The screen on the MacBook Air is beautiful.
  • The screen on the Thunderbolt display is even better.
  • The backlit keyboard is a very nice touch.
  • Fast boot time. Fast shut down time.
  • The power cable allows you to switch out the plug with a European compatible plug (and others).
  • I can drag and drop between the Mac OS and the Windows OS in VM Ware Fusion
  • I can boot to Mac OS X, boot to Windows, or boot to Mac OS X and run the BootCamp image as a VM (I love choice)
  • Full screen apps are awesome – this is the way apps should run
  • The switching between Command+C/V/X/A on Mac OS X and Control+C/V/X/A on Windows is a productivity killer.
  • So is Commend+Tab vs. Alt+Tab
  • Compatibility with my Windows domain sucks.
  • As a general rule, developing on the Mac sucks – the tools are terrible.
  • The MacBook Air needs more RAM (especially if you are going to run Windows on it)

D7

[Ed. Note: In full disclosure, I posted this to my blog as a draft, then edited it on my BootCamp Windows 7 partition with Windows Live Writer – I simply haven’t found a better blog editor for the Mac.]

My (New) Life as a MacOS X User

Now that I no longer work at Microsoft, I have the opportunity to try new things. Today I begin a journey to see what life on the other side of the pendulum looks like. Today I begin my life as a non-Microsoft web developer. Don’t get me wrong, I still love Microsoft, but I want to see what life on the other side is like. Don’t worry Ballmer, this isn’t permanent. I’ll be back…after all, the company I work for makes its business building and selling tools, controls and extensions to Microsoft products.

Today I start a two-week trial using non-Microsoft platforms and tools. I’ll use the Microsoft software that I need to for my job (e.g. we use Exchange, so I’ll use that, and we use Skype, so I’ll use that too). At the end of the two week I will be attending the Build conference, and I’ll be coming into it with a better understanding of life on the other side, and hopefully be able to be more objective about the announcements being made.

But that’s not why I am doing this. It has been over 8-years since I owned a MacBook, and I’ve forgotten what its like to work on anything other than Windows, and use tools other than Visual Studio for development, and for the past year, using only a Windows Phone as my phone/device. I spent this morning setting up my new MackBook Air with all of the apps and tools I want, and getting my email configured, etc. I have my iPhone 4 set up with my work AT&T account, and an iPad one one side of my desk, and a Android 3.1. tablet on the other side. I’ve installed Eclipse and Adobe Creative Suite 5. It’s safe to say I am ready to shut off my Microsoft life (temporarily). Goodbye Lenovo – I’ll be back (OK, I have the Lenovo K1 Android tablet, so I am not really leaving).

My goal over the next two weeks is to use Eclipse and Adobe tools to build a website and PhoneGap to build a device extension to the site (e.g. an iOS and Android app for the website). I’ll post my experiences over the course of the next couple weeks. I expect some frustrations along the way, because its been a long time since I lived in this world, and the tools and technologies have changed. This will be a learning experience for me.

Day 0

As for Day 0 – it was easy. The new MacBook Air is ridiculously simple to set up, and I’ve gotten most everything I need installed and running in a couple of hours. My iPhone is synced, and my email accounts are set up. I’ve installed FireFox and Chrome. I’ve set up Evernote and DropBox. I registered for Trillion, and installed Skype.

The biggest issue so far is the slight learning curve switching from

Windows to MacOS X Lion. It has taken me a bit to remember how Mac OS works (I came into the Windows world after years as a Mac user). The muscle memory is coming back.

  • I LOVE the new TrackPad gestures. It is amazing how quickly the three-finger scroll became an unconscious reaction – its actually very natural.
  • I had to enable Tap to Click because that muscle memory (from Windows laptops) is not going away anytime soon.
  • The thumb-finger pinch is awkward, but I’ll keep at it.

After Build I will set up a Windows environment on this machine so I can switch between environments, but until then I am a Mac OS user.

Here we go.

PaaS Me the Next Web, Please

Over the past few years the software development industry has been struggling to define Cloud Computing in a way that a mere-mortal could understand. I like the explanation of Cloud Computing from IBM:

Cloud computing enhances business agility through consumable services for infrastructures, platforms, and applications. It can be loosely defined as using scalable computing resources provided as a service from outside a company’s environment on a pay-per-use basis.

While a concise and decent explanation, it does use some jargony stuff that can scare away mere mortals. As everything becomes “consumable services”—as the explanation describes (or what we know as the “as-a-Service” model)—how do we understand the difference of the “aaS”es? What actually is Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS) and Software-as-a-Service (SaaS), and why should you care? How are they different? What can PaaS do for you that IaaS can’t?

It’s clear that the industry is intent in furthering cloud computing, and for good reason. Cloud computing (all of these aaS offerings) enables companies of all sizes to pay for only what they use, and to access their resources from anywhere without having to worry about behind-the-scenes maintenance.  So what are the differences?

 

Infrastructure-as-a-Service (IaaS)

Vendors of IaaS are in the business of providing the core infrastructure for applications to run on. This includes the required hardware and bandwidth. As a customer of an IaaS offering, configuration of the infrastructure, including such things as installing operating systems, and other required software, is left to you. You pay the vendor for the hardware and bandwidth management, and manage the development, deployment and management of your applications the same way you always have. IaaS gives you a way to outsource your core IT department – no more load balancing to worry about, no more servers to maintain (other than software updates).

 

Platform-as-a-Service (PaaS)

PaaS providers enable you to build, deploy and manage your applications all from their Internet-based solution. According to Wikipedia

Platform as a Service (PaaS) is the delivery of a computing platform and solution stack as a service. PaaS offerings facilitate deployment of applications without the cost and complexity of buying and managing the underlying hardware and software and provisioning hosting capabilities, providing all of the facilities required to support the complete life cycle of building and delivering web applications and services entirely available from the Internet.

While this definition is good at describing what could be a Platform-as-a-Service offering, it fails to be specific in terms of what specifically makes up a PaaS offering – the min-bar. It seems the only thing that is consistent about the definition of PaaS as you read the marketing information from one vendor to the next is the first and last part of the Wikipedia definition:

Platform as a Service (PaaS) is the delivery of a computing platform and solution stack as a service…entirely available from the Internet

 

The Platform-as-a-Service Components

While there are a lot of different definitions of PaaS (depending on who’s marketing you’re reading), this is one of the consistent truths – PaaS is the combination of a computing platform and a core set of tools and infrastructure exposed as services entirely available from the Internet. The minimum (min-bar) appears to be that there must be at least a computing platform, deployment infrastructure, development tools, application monitoring and management, and a pay-as-you-go billing model to be considered truly a PaaS offering.

 

Computing Platform

PaaS offerings are generally hosted web application development platforms that rely on an underlying computing platform that doesn’t require anything on-premise or installed locally. Windows Azure, Amazon EC2, and Force.com are examples of computing platforms that could be part of a PaaS solution. While some feel that to be a true PaaS offering, all of the components must be provided by a single vendor, I think its fair to say that with white labeling you may never know. It is feasible to have a PaaS offering from a vendor leverage the computing platform from another vendor. I could provide a PaaS offering that uses Windows Azure or Amazon EC2 as its computing platform, even if as my customer you weren’t aware of it because I adequately abstracted it). This is not unlike how Apple’s iCloud cloud computing platform manages links to uploaded content in Windows Azure and Amazon Web Services.

 

Deployment Infrastructure

A true pass offering provides the infrastructure and tools to deploy an application to the computing platform, and should simplify the deployment process by handling as much of the “heavy lifting” as possible.

 

Development Tools

Depending on the provider, a PaaS offering could provide simple, browser-based development tools that enable you to do everything from modify a template-based solution to edit source code. Some PaaS offerings will include design and testing tools in addition to the basic development tools, but it appears there is no requirement to have these tools to be considered a PaaS solution.

 

Application Monitoring and Management

Once you’ve developed and deployed your web- or cloud-based application you need to be able to monitor it and manage it in the wild. A PaaS offering includes a monitoring solution (e.g. a dashboard) and tools to manage the application (add users, allocate resources, etc.). These should be self-service tools enabling the PaaS user to manage their own applications.

 

Pay-As-You-Go Billing

One of the advantages of PaaS is the significant reduction in capital expenditures (e.g. not having to buy servers, data centers), but also the ability to manage costs effectively. Using a PaaS offering enables you to only commit financial resources as they are needed (in other words, pay monthly and scale up when and if needed).

 

Software-as-a-Service (SaaS)

SaaS is the great vision of how software will be delivered in the future, and has some historical ancestors. In the 1990’s there was a class of software businesses called Application Service Providers (ASPs). These were businesses with an expertise in hosting, managing and providing software – typically from other vendors – for businesses that didn’t want to or couldn’t do it themselves. The key difference between ASPs and SaaS is that SaaS vendors are not typically middlemen like ASPs. SaaS vendors are typically providing the software they produce in the form of a service, rather than shipping a DVD and having the customer install, host and manage the software themselves. Office 365 is a fine example of SaaS. For years Microsoft has created and shipped versions of Office. With each new version you would upgrade from the previous version by uninstalling the old software from your computer, and installing the new software in its place (or just buying a new computer and starting from scratch). Office 365 provides an Internet-based alternative to the traditionally client-based software, including hosted versions of Exchange and SharePoint, as well as browser-based version of Word, Excel, PowerPoint and OneNote.

 

The Killer App PaaS

While a computing platform, deployment infrastructure, development tools, monitoring and management tools and pay-as-you-go billing are required to be a true PaaS offering, the capabilities for software design (UX, prototyping, etc.), testing (functional, regression, etc.) and team collaboration are not required and are likely to become differentiators for vendors who can provide a more complete solution.

PaaS

Many of the PaaS vendors, including Force.com (SalesForce) and emerging players like LongJump, are claiming to have complete lifecycle offerings, including project management tools, team collaboration capabilities and at least some design and testing capabilities in addition to the min-bar for PaaS. This is likely the battlefield for PaaS in the near future. Just as we saw the battle for Application Lifecycle Management (ALM) playing out between a variety of players, including Microsoft, IBM Rational, HP and niche players like Serena, we’re likely to see a battle for PaaS that has these “differentiator” capabilities at the center of the war.

Its not clear who the players are yet, although we can all make some pretty good guesses. The real question will be, who can provide the best set of capabilities to The Right User™. As this war looms on the horizon, determining what the war is over (who is The Right User™) will be equally, or perhaps more important, than how big the guns are.

D7

Goodbye Microsoft. Hello Telerik.

If you keep up with me on Twitter you know that last Friday was my last day at Microsoft. I joinned Microsoft as a vendor in 2004 after I sold my company (dotnetjunkies.com) – I was hired in to fix a broken community program that dotnetjunkies had been part of, and a few months later accepted a full-time position to implement the supporting infrastructure. It was my second tour of duty (my first was in 1999-2000, where I met my dotnetjunkies partner). Over the past seven years I was fotunate enough to have some great experiences running a development team, and owning the product management of one of the most successful and widely used IDEs on the planet, Visual Studio. Itwas a good run, but it was time for a change.

Today was my first day as an empployee of Telerik – whom I believe to be a fantastic company that is doing some very innovative work, and working in a very agile way. While today was uneventful (travel day from Seattle to Boston for my onboarding and a management summit), it was a good day. I spent a lot of time thinking about what is to come. About the excitement the coming months and years will bring. I thrive in fast moving, agile, start-up style environments and expect that the culture at Telerik will suit me well.

There is of course an immense pressure that I feel as well – I supose anyone transitioning jobs, especially after seven years, is likely to feel a sense of pressure to prove themself quickly. My hope is to balance that pressure with the common sense to not try too hard too soon. A friend of mine gave me a book a while back – The First 90 Days: Critical Success Strategies for New Leaders at All Levels by Michael Watkins. This is a great (and short) read for anyone moving into a new leadership postition either in a new company, or a company you already work at. The cornerstone is to understand why you were brought in, and implement a matching strategy for the first pivitol 90-days. The wrong strategy, while successful in another situation, could spell dissaster. The right strategy – one that matches the purpose for you to move into the role – should yield good or better (potentially stellar) results.

As I embark on my first 90-days, I plan to share what I can. Telerik has a reputation for being very connected to the community, as I have been for over a decade. If you’re interested, then plan to hear from me regularly as I share the amazing work we are doing here at Telerik.

D7