GreenWave Software
© Copyright 2003-2010, Chip Cooons

Updating Philosophy

Chip | Cocoa, Strategy, Uncategorized | Wednesday, April 9th, 2008

Developers are told repeatedly to “ship code to real users” and get feedback. How does this translate into the customer experience and their update cycle?

What do you think?

I’ve decided recently to move away from packaging up point releases and instead ship more frequent updates via the Sparkle+ framework. This will allow me to keep my motivation and engagement up, but could impact the user who will see more frequent updates. Which is a better approach for customers? Post a comment or ping-back with your thoughts.

On a related note

I’m working on several new features in MagicBrush-Photo that will be developed incrementally over time. In parallel there are bug fixes and minor tweaks occurring within the code.

In a multi-developer group, a more rigorous release plan and management would be a given (I hope). But for a single developer, do I really want to spend time maintaining branched code (current and development) and merging things back together for a release?

I’ve decided to not keep code merged and instead created a framework for setting a flag within the preferences of the application to enable development/partially complete features. This way, I can send a stand-alone script to testers to turn-on features within the current release.

Hopefully, these two changes in my approach will help me drive some significant new features more quickly to the users of MagicBrush-Photo

An Aside on Creative Thinking

Chip | Strategy, Uncategorized | Tuesday, January 3rd, 2006

In my last post, I began describing a technique that is based on the military estimate or appreciation process for developing strategy and operational plans.In a nutshell, when faced with any series of alternative actions that you or the opposition may take, you should look at three key alternatives:

  • The worst thing that the opponent (or you) could do, 
  • The best thing that they could do, and 
  • The most probable thing they could do.

This is a classic method of forcing people to “think outside the box”.How many business people really consider the worst thing that could happen while they are planning?How many of them account for that eventuality in their plans?I’ve been in many too many meetings where the dissenting voice is quickly pushed aside with a terse “that won’t ever happen” when there are real possibilities lurking within the act of just thinking “what if”.So, when faced with alternative actions, force yourself to think of at least three alternatives, and make one of them the worst alternative for you. If your plans protect against that, you can at least be assured you won’t be defeated outright.

Competing – Capabilities and Intentions

Chip | Strategy | Sunday, January 1st, 2006

So strategy is hard. Anything complex usually is. And as the old adage about eating elephants goes, “we have to do it one bite at a time.”So the first bite is understanding what your competitors are capable of and what they intend to do. (I’m assuming at this point you have at least a good idea about who your competition is.)Capabilities should speak to a “perfect world” threat assessment. You may not think that it is realistic for your competitor to corner the market on software patents but if they are pursuing expansion of their patent portfolio, they are capable of causing problems.So what capabilities to you focus on?You have to assume your competitor is rationale, i.e. they are not going to suddenly start giving everything away to inconvenience you. They might give things away for the short term to gain market share; they might give things away that they can then charge for related services, but they will have a rational reason for their action.This is where intentions come to the fore. You have categorized what they have the technical capability to achieve, now you probe the likely actions they will take.This is the art of strategy. You have to understand your competitors well enough to figure out which capabilities they will exploit to their advantage. Obviously, there will be a range of these intentions.To help frame these capabilities and intentions, you should focus on three general scenarios:

  • Best Case – What would be the best case for you that your competitor could pursue. In other words, assume your competitor is incompetent and wanted to help you achive your strategic aims.
  •  

  • Worst Case – What would be the worst thing for you that your competitor could do? Assume they have perfect knowledge of what your aim is, and they want nothing more than to thwart you.
  •  

  • Most Likely Case – Given everything you know, what is the most likely course your competitor is likely to pursue? Assume they are rational. What would you do in their shoes? Obviously (I hope) you can’t just look at one case in this situation. You have to look at a whole spectrum of options and decide what really is most likely. Don’t pull punches. Your competitor won’t.
  •  

Once you have these views into your opponents courses of action, your strategy work is greatly simplified. But we’ll get to that next…

Identify the Goal – II

Chip | Strategy | Thursday, November 10th, 2005

So why is it difficult for a company to decide on its objectives?It is not, I assert, because business leaders are lazy, or stupid. I truly hope this is a true statement.I propose that it is difficult to settle on firm objectives because of the infinite possibilities that present themselves for any given situation.Let’s take our example from my last entry….Hypothetically, we are developing a strategy for a software company that is established in a relatively mature market; i.e the desktop application market. For illustration purposes, they are the number three provider of their class/type of software. They have 20% market-share. The leader in the category has 50% share. The second largest provider commands a 30% share.So, what constitutes victory?

  • Is it increasing market share above 25%?
  • Is it attaining the number two position in the market place?
  • Is it attaining the number one position in the market?
  • Is it establishing a monopoly in the market?
  •  

    We could continue listing options, but the fact that four come immediately to mind should suffice.So which should we pick? I’ll give you a hint; what we pick doesn’t matter. Yet.

    First, we have to understand what our opponents can do, and what we think the are going to do. In military parlance, we must understand their capabilities and intentions. Once we determine that, we can pick the most appropriate definition of victory.And once we define victory, we can begin building a strategy to achieve it.

    Identify the goal

    Chip | Strategy | Wednesday, November 9th, 2005

    Now, from my prior post, it may appear that I don’t find anything useful regarding strategy development on the web.That’s not true. At least not totally true.I think there are some corner’s of the net that have very interesting work and links. Of course, context is required.Before we dive into game theory and its relationship to strategy, let’s make sure we are all operating in the same context.Firstly, strategy assumes you are in conflict with another entity. This could be organized conflict, such as war or a direct competitive endeavor. It could be more general conflict such as fighting market trends. Regardless of the focus of the conflict, it is this opposing entity that you are developing stratagems against.Secondly, strategy implies, that you are concerned about an overall plan, not a single tactic to achieve victory. “Shoot first” is not a strategy for winning a war or battle or even a gun fight. The plans and activities that ensure you will take the first effective shot in the fight would constitute a strategy.Thirdly, you know what victory looks like. It is impossible to plan if you don’t know what the overall aim or objective is. In the military, it might be the defeat of the opponent. But it might also be creating a state in which the opponent can no longer inflict material damage against your forces. Or it might be inflicting sufficient casualties on the enemy that they cannot entertain battle for the next generation. Knowing what the ultimate objective is, in detail, is critical.  So let’s apply this thinking to a business.Hypothetically, we are developing a strategy for a software company that is established in a relatively mature market; i.e the desktop application market. For illustration purposes, they are the number three provider of their class/type of software. They have 20% market-share. The leader in the category has 50% share. The second largest provider commands a 30% share.So, what constitutes victory?

    • Is it increasing market share above 25%?
    • Is it attaining the number two position in the market place?
    • Is it attaining the number one position in the market?
    • Is it establishing a monopoly in the market? 

    Deciding what the desired outcome is, is the first step in developing a strategy. Unfortunately, for many companies, it is not so simple.

    Powered by WordPress | Theme by Roy Tanck