That’s why you play the game!
I just finished watching the Giants beat the Patriots in the Superbowl. I had not actually intended to watch the game, because I really had little interest in who won. Then I figured, no matter who won, a certain amount of sports history would be made.
Going into this game, no one (myself included) gave the Giants much chance of winning. Up until a few weeks ago, no one would have guessed that they would even be playing. That brings me to the point of this post – the fact that stats really are irrelevant. On any given day, any team can win. That is why they play the game.
This carries over into the “real” world. Whenever you are starting something new – whether it is a business, or a new innovation, or anything else you can think of – there will always be lots of people telling you not to play in certain games because there is no chance of winning. The fact is, there is almost always some chance. It may be slim – but what it comes down is whether you execute better than the other players on game day (only in the real world, everyday is game day).
So do not always run away from the game because there are players out there with better records and better stats. All you have to do is go out and play better.
Easy, right?
Business life lesson – Don’t let anyone steal your dream : Atlantic Canada’s Small Business Blog – IQI Strategic Management Inc.
This is an interesting post, and fits in well with other things which have been on my mind lately, and with things about which I have posted.
It occurs to me that over the years, I really have let the world steal my dreams. I think we all do this – we get so wrapped up in the day-to-day “operations” of life that we lose track of the grand visions. We also tend to be told that we need to think realistically, and be reasonable, and play it safe. We spend much of our lives being taught what is possible, and even worse, what is impossible. I think that is why so much advancement in science, arts, and other fields comes from the young, because they have not yet learned that what they are trying to do is “impossible”.
One of the nice things about a grand vision is that you spend much less time worrying about whether it is possible of not, and more time just working towards it.
Ok, so now what?
I will let you know, right up front, that this is going to be a largely self-indulgent post. I am basically just thinking out loud, and doing it in public. Kind of like standing on a street corner talking to myself, I guess.
You see, I am on the verge of a life changing moment. Or maybe I am in the middle of it – it is a long moment. It started when I received notice on October 11 that my services were no longer required. Maybe it started even earlier, when the acquisition of Whitehill by Skywire was announced, and I was pretty sure that my time here was coming to an end. No matter, since I do know when the moment ends – December 15.
This transition period has been very complex, emotionally. I have, after all, spent close to 9 years at Whitehill – a considerable portion of my working life. I have invested a great deal of emotion and energy into it. And of course there is the people side of things – I have worked closely with a group of people for many years now.
On the other hand, I have been feeling for some time now that it was time for me to move on from Whitehill, and do something new. For the past year or so I have been semi-actively working on other ideas, plans, schemes, etc. I have been held back, however, by inertia, fear, complacency – all the usual things. So, in a way, being laid of could be viewed as a good thing – forcing me past these issues which I may never have overcome on my own.
So, I am now presented with an opportunity to do something new. I can do something a little bit new, like finding a similar role in a different company. Or, I can go all the way and completely reinvent myself again (I have done this twice before in my working life). I am taking this situation as an opportunity to re-evaluate what I do, how I do it, and most importantly why I do it.
As is typical for me, this evaluation has involved a great deal of reading. Even before the transition at Whitehill became concrete, I had been reading a number of books on starting my own MicroISV, including Eric Sink on the Business of Software and Micro-ISV: From Vision to Reality, both of which were extremely useful. Recently I have been reading Timothy Ferriss’ The 4-Hour Workweek: Escape 9-5, Live Anywhere, and Join the New Rich, which is a very interesting read and has some cool ideas, though not all of them I see as being good ideas.
In addition, there are the various blogs I follow, such as Escape from Cubicle Nation (which has had a couple of interesting, relevant posts recently – Excellent reading for those paralyzed by fear of leaving their job and Tips on cutting the ties and saying goodbye from Psychology Today) which in turn led me to 10 Remedies For “I’m Starting My Own Business And I’m Paralyzed With Fear!”, which of course has a 10 links to some other interesting posts.
I must admit that even now, when I know I am leaving, i still feel paralyzed with fear a lot. I swing from be optimistic about the future, to wildly ecstatic about the possibilities, to absolutely terrified that life will collapse in six months. Part of this, I know, is because I am moving outside of my comfort zone. This will be the first time in 20+ years that I will not be employed by someone, for even one day. That is a bit creepy!
So, getting to the title of this post, what now? I really do not know at this point. I have opportunities out there already, and I have no shortage of my own ideas. I have been asked by various people what I want to do. About the only thing I can say for sure right now, is that I want to do something “new and interesting” – I just have not decided what yet.
I have decided that as of December 15, I am going to take a few weeks to “decompress”, and to unclog my brain from all the Whitehill clutter that has built up. The last thing I want to do is to jump into something instantly. I know with certainty that once I am away from here for a few weeks, my thinking will change dramatically.
All in all, it promises to be a very interesting new year!
Service Oriented Architecture is your Ticket to Hell?
With reference to Service Oriented Architecture is your Ticket to Hell, it always amuses me how people insist on calling any idea which does not agree with their own, “bullshit” – always thinking in terms of absolutes, and believing “my ideas are great, yours are BS”. Remember, an idea is a dangerous thing when it is the only one you’ve got. The statement that Service Oriented Architecture (SOA) increases agility can be interpreted in two ways: as increasing the agility of your architecture, or as increasing your ability to adhere to the dogma of “agile development” (which has been bastardized as much as all dogma ultimately is).
(of course, I tend to think of SOA in the dogmatic view of Erl as somewhat bastardized as well, and I do not recognize his authority on the subject as absolute. I was modeling systems as collections of autonomous interacting objects/services years before the term was hijacked)
I will start by looking at the closing statement of the post, since I actually agree with it:
What I am saying is that, if SOA is scaled up without precaution, it can create systems so precarious that anyone asked to maintain them will feel like s/he’s won a ticket to programmer hell.
While I agree with this statement, I do not agree with specifically targeting SOA. This statement applies equally well to any architectural model, including any emergent architecture coming out of an agile development project.
Lets now look at the two specific concerns expressed with SOA.
It is not entirely clear to me that SOA requires excessive amounts of “up front” architecture. The only locked in architectural decision is the one to model your system as a system of interacting services. Even the choice of what kind of a service bus to use should not imply lock-in, since if you implement things properly, it is not particularly onerous to move services from one context to another. And the decision to model your system as a collection of loosely coupled services does increase the agility of your project, in some respects. Need an additional execution component? It is fairly easy to implement it without disrupting the rest of the system. Need to take one out, or change its implementation? Same thing.
Looking at the second concern, I would agree that is possible to create “strange loops” and other architectural oddities through unconstrained application of service oriented architectures. The same was said for a long time about inheritance dependencies in object oriented systems. It remains important for the architect of the system itself to understand the implications of any services being used. This is an inherent complexity of large, complex, distributed systems.
(as an aside, this is a fundamental problem I have with agile methodologies – the idea that up front architecture is sacrilege – and I have seen little to no evidence the agile methodologies scale to large, complex projects).
As for the comparison between object oriented approaches and SOA, I do not see the two approaches as being mutually exclusive. What are services but large scale objects which respond to messages and provide a service/behaviour? Much of the same modeling concepts which apply to OOAD also apply at the larger scale (of course some do not – such as granularity of operations).
Ultimately, I find SOA to be a useful approach to modeling large, complex distributed systems (and yes, I have built a few). Is it perfect? Probably not. Are the “gothcha’s” in there if you apply it blindly, and without due thought? Absolutely – the same as any other approach I have seen. Is it the correct approach for every system and every project? Absolutely not. It is one approach. It pays to know more than one, and to use the correct one in the correct situation.
Anyone else out there sick of “Us versus Them”? Afterthought…
This morning I had an afterthought regarding my post last night Anyone else out there sick of “Us versus Them”?
I recognize that there are cases where the debate is necessary, or at least may be perceived as necessary. So, in that case I would add one more item to my “guidelines”:
6. If you absolutely must try to convert people to your point of view (in violation of item 5), try describing what is positive about the solution you support, rather than ranting and raving about why the alternative is evil and will bring about the downfall of civilization as we know it. (“Microsoft is evil” is not a valid argument).
(Note this is one of the biggest problems of our time, not just in software, but everywhere. Look at our leadership – no one presents viable, intelligent alternatives to anything, they just bash the opposition.)
Anyone else out there sick of "Us versus Them"?
Well? No, I am not talking about politics, war, or religion (though I guess I could be). I am talking about the software/technology business. There are days the whole business just annoys the crap out of me. Let me step back a bit…
I was just on Google Reader, reviewing my various RSS feeds – specifically my Digg feed. I know I should stay away from that feed, but I just cannot seem to – it is like watching Fox News, or listening to clips from Howard Stern, even though I know something in there is going annoy me, bug me, disgust me or otherwise create negative feelings, I just cannot resist looking.
What typically ticks me off on Digg is a post (usually more than one) on the following ongoing us-versus-them arguments:
- Linux versus Windows
- Mac OSX versus Windows
- Open Source versus Microsoft
- Open Source versus any commercial software
- ODF versus Open XML
- Java vs C++ vs .NET versus any other language
- Dynamic languages versus any other languages
- Web Applications versus Desktop Applications
- And many many more
At any given time on Digg, on blogs, and in the “regular” press, you can find lots and lots of people blathering on about these subjects. Sometimes, you can even find me blathering on about them. Most of these posts are characterized by the following:
- They are poorly written, grammatically incorrect, etc.
- They are very emotional, and often hate-filled (and occasionally filled with colourful metaphors)
- They are low on factual information
- They imply (or more often, openly state) that anyone who disagrees with the post is so completely stupid that they do not deserve to live
Here are a few examples: So you think that Microsoft’s Open Office XML is ‘Teh Shiznitz’?, Virtualize Windows on Linux? Microsoft Says No Way!, Surprise: Microsoft not so ‘open’ after all?, Is the era of Microsoft Ending?, and a lot of the VistaSucks blog.
There are days that I feel if I hear/read/see one more of these stories, I am going to trash my computer, tie my belongings in a kerchief on the end of a stick and become a hobo. In a more productive vein, I would like to suggest the following guidelines:
- Use whatever OS you like. If you like Linux, use Linux. If you like Windows, use that. Same for OSX. Heck use CPM if you want.
- If you are a programmer, use whatever language you want, or which makes sense for a given project. If your employer will not let you use the language you like, stop whining and get a new job.
- If you like MS Office, use it. Same for OpenOffice or StarOffice.
- If Web Applications make sense for you, use them. If you like desktop apps, use them.
- Whatever you use for whatever you do, please shut up about it, and stop trying to convert everyone in the world to your point of view!
But I want to be Disruptive!
I have spent a great deal of time over the last couple of years thinking about the process of innovation, different types of innovation, and how to innovate in a small but established organization versus a startup organization. I was reading Innovator’s Dilemmas: Do You Really Need To Be Disruptive? over on consultaglobal this weekend, and got to comparing some of Jose’s thoughts with work I have done in the last year.
As Jose says in that post, he is more interested in the process of defining a product roadmap in terms of gradual innovation, and in managing product portfolios. We have been very successful with this type of innovation, having a strong product management process for our existing product suite. In my role, I have been more interested in how we do larger scale innovation – how do we come up with the innovations now which are going to drive our growth 2+ years from now?
I have defined an innovation cycle as shown below.
Recognizing that disruptive innovation is, well, disruptive, as this cycle is traveled counter-clockwise starting from the upper right, we go from a high-chaos, low-process environment to progressively higher process and lower chaos.
In this model, the upper right quadrant represents what we are really good at, evolutionary innovation driven by product management. The upper right quadrant represents the starting point – the idea generation engine. This is traditionally a hit and miss process of collecting ideas from various parts of the organization (or just a few people), and trying to pick which ones to invest time and money in. It is my belief that this activity can be wrapped in a process without destroying the creativity needed to really come up with ideas. Among the activities I consider important in this quadrant are:
- Establish some context for innovation (see this earlier post)
- Get ideas from everybody, not just R&D or Product Management
- Get out and talk to customers
- Involve your staff who are in front of customers, especially professional services people if you have them
- Engage in structured/facilitated brainstorming with groups from various cross-sections of your company
- Know how you are going evaluate ideas and decide which ones to investigate more deeply
The last point is important – it is no use having lots of ideas if you have no way to evaluate them. No organization can go deep on all the ideas generated, and a small organization can only really attack a couple. See this earlier post for my thoughts on using the Needs, Approach, Benefits, Competition (NABC) approach. At the end of this stage, and ideas should have a reasonable Needs definition, with a rough indication of the other three categories.
The next quadrant is what I have called Play. This is where ideas which survive the evaluation in the Ideas stage and start to play with them, flesh them out, create prototypes, and generally move the NABC definition forward. Early in this phase, the Approach needs to be clarified, while the Needs are evaluated more deeply. Later in this stage, if a viable Approach is identified, and the Needs continue to make sense, then the Benefits and Competition need to be addressed (note that in reality, it is never anywhere near this linear, but this is for the benefit of description). By the end of this stage, we should be able to present a fairly strong value proposition for those ideas which have survived the process.
The next stage is to Build the products (ok, probably only one) for which the value proposition seems best. I will not get into the build process, except to say that the NABC analysis should be kept at the forefront throughout the process, and not be afraid to make hard decisions if things stop making sense.
The final stage is the Evolution stage, where the product moves into the incremental, evolutionary development cycle of a completed product. Note that for a new product, there may be some iteration between Build and Evolve.
Finally, the cycle is closed by having ideas from ongoing product evolution feed back into the Ideas stage.
So, is it ever this neat and clean and linear? Well, no. But that does not mean it is not valuable to have a model which you at least pretend you are following!
Someone Already Thought of My Idea – Now What?
This post Someone Already Thought of My Idea – Now What? is a few months old, but I just came across it tonight. it makes some very good points about a problem I think many of us have – we want to come up with that brand new, perfect idea, that no one else has ever even dreamed of.
Well, it is probably not going to happen. No matter how smart you are, there are many many people out there as smart or smarter (unless you are that one person out there who actually IS smarter than everybody else - it is not me, so I am not going to worry about it), and it is highly likely that at least one of them will have thought up an idea very similar to yours.
So, what do you do about it? Well, you do not give up for one thing. Just because someone has the same idea you have, does not mean they have the same business you have. There are so many variables, and so many opportunities to innovate every aspect of your approach, that you absolutely can do it better than someone else.
Ultimately, it comes down to execution. Given two people/organizations with the same idea, the one that executes better has a much higher likelihood to win. Note that no matter how good your execution or anything else, there are no guarantees – you can do everything right, make no mistakes, and still lose (I think Picard said that on STNG – kind of sad that I am quoting Star Trek wisdom!).
I will make an analogy with football (I frequently do – and I mean American football, not soccer). Both teams in a football game have the same objectives, often have very similar levels of talent, are on the same field with the same playing conditions, and really have pretty much all the same tools and strategies available to them. More often than not, the team that wins is the team that executes the best on game day – executes on the fundamentals, and does not do things to hurt themselves.
Much the same holds true in starting a business, and when you find out someone else has had the same idea as you, you only have two choices: execute better than them, or leave the field and find a new game.
Brainstorming is a bad idea? (again)
It is amazing how a single post by the right person can stir up so much commentary. The latest I have read is One head is better than two or more. As Patricia pointed out in a comment to my previous post on this, The Medici Effect author also goes on to say:
“So, should we all stop brainstorming? I don’t think so. Done right, brainstorming is a highly effective way to actively generate intersectional ideas.”
Brainstorming, like any other human-centric activity, needs a process. Throwing a bunch of people into a room and saying “create brilliant ideas” is not an effective process. To me, this is analagous to putting a bunch of programmers in a room with no process and saying “create a wonderful product” (though admittedly, I have seen a fair number of companies try to do software development this way!). Similarly, badly run, pointless meetings with no clear purpose, and no process, do indeed make us collectively dumber.
Anyone who has ever been on an over-acheiving team (work, sports, or otherwise) knows from experience that the right team, working together with an effective process, can achieve things that none of the individuals could come close to working seperately.
Undertaking any group activity, whether brainstorming, software development, or running a business with no process or a bad process will indeed frequently lead to the result that working alone is more productive and more satisfying than working in a group. Does that mean you stop the activity? No, it means you fix the process.






