Category Archives: Leadership

I’m in the middle of undertaking a large software project – something that could take 200 hours to get to an MVP. I wanted to get things organised. My first thought was to use some of the tools I’m used to – Trello for a kanban style board, bug tracking, continuous integration services, Slack. But on second thought I realised that all of these tools are designed to aid in communication to other team members. With a team of one (me) all the communication can happen within my own head thus the time that would go into configuring all these extra tools and transcribing my thoughts into them is wasteful.

Instead I’m able to work off off of a simple todo list.

Do some brain storming, sketch out some ideas on paper then figure out some reasonable list of high level tasks.  I can leave it all on paper so it’s on my desk and in my face and easy to scratch off and add to at any time.

If I add just one more developer to this project, then suddenly all these things come back into play. It becomes necessary to discuss who is doing what, to understand and verify each other’s work, to maintain consistent code style and quality. Digital platforms like Trello become necessary to stay in sync and the quick and flexible paper approach gets crumpled up and tossed into the waste bin.

It’s hard to appreciate the cost overhead of scaling from one to two people.  It’s easy to look at a calendar full of scheduled meetings and see how much time is spent talking compared to writing software, but what is harder to see is the amount of time spent chatting on slack, updating trello, and commenting on pull requests. There are communication costs that are hard to measure.

It’s something to consider when you are deciding to hire your first person

Learning new things that affect the core of your being is a challenge not many people take upon themselves.  Yet it could be the personal pivot you need to make a genuine change.

Many years ago I took a Dale Carnegie course, it showed me a side of myself that I couldn’t get from my friends and family who are always trying to be nice and avoid confrontation. Those people accept you for who you are and will not challenge you to change.  That course taught me that I cannot speak loudly. Through exercises I got better at conversation and assertiveness.  It helped change my behaviour at work and grow as a person.  It’s something that I could not do on my own, nor could I get it from the people around me.

I needed a coach.

A coach will analyse you and provide constructive feedback on how to get better by suggesting exercises to do, changes to make, and perspectives to consider. A great coach has a keen eye to spot areas for improvement and will hold you accountable to work on them.  This is something you cannot expect to have from your friends and family who will typically avoid candid conversations. Chances are you need to hire a coach.

Last year I took sailing lessons. It was a chance to learn something completely different from what I do all day and gave me a very different sense of accomplishment compared to, say, learning another Javascript framework. Part of the difference is that with sailing I had a coach who suggested areas to improve on all the time and with each lap I got better.  At the end of the course it changed me, it had opened the door to many other perspectives which were not even on my radar prior to taking the course.

This is the power of a coach.  To show you things you cannot see for yourself.

For years, when I was in meetings I spoke at a low volume which created the perception that I was shy and not confident.  NOBODY TOLD ME!  It took years, and then when fishing for feedback on an annual performance review my boss suggested taking the Dale Carnegie Course to build some assertiveness.  Why didn’t anyone say something sooner?

We continue to need coaches in our lives.

Even the best sports players of all times at the peak of their careers still rely on their coaches.  With that in mind perhaps we should all have a coach to help us improve with some aspect of our lives more often. A piano teacher, or speech coach, CEO coaching, or business mentor. If there is something you could say “I am not awesome at X”, then perhaps it’s worth finding a coach for X.

It’s something I hope to make part of my routine more often, accept that I have areas for improvement and find a coach to help work on them in-person.

The last few months have been absolutely mad and it all comes down to one difficult change that I have made to the way I do things.

Always be Shipping is a mantra I have started to follow.  It means that I’m focused on finishing things and putting them into the market as quickly as possible – even if it’s not perfect or has  features missing.  Test the market with a real product or service and then revisit and improve the experience later.  The benefits have been shocking.

Over the last couple of months I have started and finished roughly 8 different software products.  They are all now in production and the ones that are for sale have been selling.  The more I do the easier and more comfortable the process becomes.  Each product is a chance to test a bunch of new ideas and evolve the code to include new features.

There are many skills that go into releasing a software product.  There’s the programming stuff,  server stuff, then there’s websites, graphics, and perhaps video or sound recordings.  If you get all that done there’s still the other half of the work involved in finding a marketplace to put it in and arranging for payment methods, and all the marketing and promotion to make sure people can find out about it.  Each task poses a risk that it could de-rail a project.

Shipping is the inflection point where you can take a break from product creation and start to find ways to bring money in from all that work.

There are two things to be aware of that can prevent shipping a product

  1. Focus reducing the scope and limiting feature creep.  There are so many great ideas to implement but being able to cut back on things so that there are a manageable number of difficult technical objectives before it’s ready to sell it critical.
  2. Being familiar with the process of shipping so that you know what needs to be done and how to do it efficiently enough that it’s not so tedious you avoid the work.  Ship your products regularly enough that it becomes routine.

It is a real rush to have something for sale that you can check the stats on every morning.  Read the reviews, test ideas, run sales, and compare revenue models.  It is exciting and as addictive as gambling.

Recently a potentially huge opportunity landed in my lap.  The most interesting thing about it isn’t that I was able to see the opportunity and was in a position to seize it, it is that other people not only didn’t take the same opportunity when it was presented to them, but they ran in the other direction.

We both saw completely different things in this opportunity.  To me it is a low risk business opportunity with limited up front costs, in partnership with someone with the skills and business network to make it successful.  The other person perceived massive risk with an untrustworthy business partner who would somehow rob all their money.

How can two people (same age, similar backgrounds) have such polar opposite reactions to a potential business opportunity?

The biggest thing is that having read lots of books about success – Think and Grow Rich, by Napolean Hill, Richest Man in Babylon, Outliers by Malcolm Gladwell and many others.  And having been to networking events with hundreds of ambitious entrepreneurs I was able to quickly put this guy into a category.  He has all the personality traits of the prototypical successful entrepreneur.  To such a degree that I knew if he wasn’t already wealthy it was inevitable that he would be in the future.  And I had both the technical skills and the business savvyness to relate with him.

The other person was weird-ed out by someone with lots of different things on the go.  Anyone who on a whim would get into the iPhone apps business is too surreal to be believed and it raised red flags.  Anyone with money to spend on side projects must be doing something sketchy.  It was all too out of the ordinary to be real.

It’s still too early to tell how all this will pan out, but that is the life of an entrepreneur.  Take lots of calculated risks.

The key in this case was that I was able to see the opportunity and had enough experience to take advantage of anything that came my way.  If it had been contract work – I already have a business set up, if it was a new business venture – I know a bit about what it takes to register and set it up.  I have enough practical experience with monetization, marketing, and sales strategies to be able to intelligently discuss them.

Luck comes to people who keep their eyes open for chance events and take action on them when they present themselves.

Stay hungry. Stay foolish.

Practical experience is without a doubt the best way to learn something.  Since the beginning of the year I have been trying to DO as much as could possibly be done by one person.  This year I started my company Halotis Inc.  That was an interesting experience – to meet and talk with an accountant, get all the paperwork done, issue shares, start business bank accounts and everything else that was required.  It was a massive change of pace and perspective and through the process I learned lots of practical things that you will never learn in school or find in books.

For months I worked on building the Automatic Blog Machine site.  it does a lot of interesting stuff and it was technically challenging, but it was also a chance for me to execute a marketing strategy.  I recorded and edited videos, wrote sales copy, built up an email list and actually did a reasonably successful launch of the site.  I did a lot and learned a lot.

After that I turned to iPhone development.  spending night after night working on the software, creating promotional videos, and a website.  The most important thing is that I actually finished the game UFO Invader and released it.  There was so much learned through that process.  It was so rewarding that I decided to keep developing more iPhone software.  And it was so successful (in # of players not revenues) that I’m actually excited to get more done.

Having done the Automatic Blog Machine website gave me the knowledge, skill and most importantly a code base to be able to quickly create a new website for the back end management of my iPhone Apps.  I’m in a good position to be able to quickly test new ideas for web applications.  Do something, and learn a little more.  It keeps getting easier.

Nothing that has happened this year in my business has been the wildly successful hit I wished for.  However, having done these things and learning along the way has each time left me in a better position to take advantage of opportunities when they come up.  I only need one hit business.  There are so many subtleties to making a business really work well that it is impossible to really do it right the first time.  It takes practice, it takes failure, and it takes doing.

The most successful people on this planet are the ones who take the most risks.  They’re constantly testing the waters with new ideas, putting things out there – Doing things, and learning.  They have developed a relationship with risk that eventually pays off.  There are not many people like that in this world.  I have only ever met two such people in my life.  It’s a model I try to emulate myself since working hard and taking risks seems far more rewarding than watching TV.


pareto's law, 80-20 ruleThere’s a principal called the Pareto principle or the 80/20 rule that says roughly 80% of the effects come from 20% of the efforts. This ratio seems to pop up everywhere.

In the case of software development what I have experienced in just about every project I have ever worked on is that it also relates to the amount of time it takes to get something done.

As you get to the last few features of a particular product there somehow becomes more things to work on and finish that get added on. For my iPhone game that I’m currently developing it has been functionally complete for several weeks now. A big part of the work was getting the game engine working, getting a collision detection function that worked well, adding all the menus, graphics, and music. All the major components are in place and it comes down to game play tweaks and subtle improvements.

Somehow there is never an end to the amount of things that can be improved. And so it starts taking up more and more time. the last 20% of a project takes roughly 80% of the development time. It’s something to expect, plan for, and in my opinion try to cut in half.

The ethos of the lean start up is to fail fast by testing early and often. When it comes to this last 20% of the work I’m attempting to cut it in half. There may come a time when I have all the time in the world to work on something until it is perfect. I’m not there yet. So corners have to be cut and the first and easiest thing to cut out is the least valuable stuff that takes the most time, energy and effort.

Shipping something is the most important part of the whole endeavor. Take a look at your last 20% of work and decide what’s really necessary and what is just a nice to have enhancement. Cut out the nice to haves and ship sooner. Then gauge the next steps from customer feedback. With the App Store, it’s always possible to publish an update.

Well I’ve had so much fun writing my first iPhone game that I’m starting to think more about what to do next.  So I have put together a bit of a business strategy to help grow into a successful mobile game/app business.

While still in the early days of the mobile app marketplace (the App Store was opened just 3 years ago) the growth has been astonishing.  We’re already seeing some consolidation of the developers as larger development studios are figuring out the marketing processes that work best and the quality of software being published goes up and gets to a point beyond where a single developer can compete.

This consolidation is a natural part of any new technology.  It always starts out as the wild west and eventually the big guys come in with some acquisitions and start to dominate.

However, though it is getting tough to crack into the top 100 apps for any category in the App Store, there are still some ways for small shops to get there and do well.

The biggest lever that big development studios have to help get them to the top spots on the App Store is that they have a lot of apps.  This network of apps is a platform upon which they can get free advertising to promote their latest and greatest program.  It means that on day one of launching something they can quickly get 10’s of thousands of downloads.  The cost of acquisition for those customers is nearly nothing which makes it hard to compete if you have to promote your apps through paid ads.

That fact massively effects what works as a good iPhone business strategy.  Launching your first product as an awesome fully featured app is going to lead to disappointment.  Listening to the hype that similar games might have gotten with massive install rates and then looking at your own stats may be disheartening.

So a good strategy would be to start ramping up with a slew of apps.  Get as many things into the store that are “Good Enough” that you can start to build your own app network.  This can be iteratively used to help promote each additional app and make each launch bigger than the previous one.

The strategy I have developed maps out the next 5 Games that will sequentially build out the software components required to ultimately build my dream game.  Along the way I’ll have easier games to develop and release and the opportunity to re-skin those games for even more apps in the network.  This way by the time my 5th game is ready to go I’ll have a significant number of customers out there to advertise it to.

It’s going to be a fun ride to get all these things done and out there.

How To choose friendsFriends are very influential people in your life. The conversations you have can either inspire you to set and achieve new goals or abandon them and accept the status quo. The power these people have on your life and your future should not be underestimated. Finding and making the right friends is not something best left to chance if you want to control your destiny.

It has been my experience that some of my friends push me forward. For example I have a few friends that are actively on top of happenings with junior oil companies and when I hang out with them I get the occasional stock tip which is worth investigating. In order to contribute to those conversations I need to be doing research myself and learn about the industry. As a result I learn valuable new things that could result in long term financial gains.

Other friends of mine drink, party and play video games most of the time. They’re fun to hang out with but can make me feel like a jerk when I have work to do. The only thing either of us get out of it is a few laughs and a hangover the next morning.

Finding and making friends that will help you achieve your personal goals faster is something that few people take any initiative on.

One thing to keep in mind is that friendship requires work to maintain. Provide value to your friends without expecting anything in return and without “keeping score”.

Where to find Friends

There are two great ways to meet people who may become a great friend.

Ask your other friends. They may already know someone who has already accomplished what your goals are or have similar interests. Getting an introduction through friends is a fantastic way to start warm with the trusted opinion of a common friend to help bond.

Find a meetup, social group or volunteer organization to join. Check out for local groups, perhaps join the chamber of commerce in your area for business connections, find a related volunteer group, or join a board. You’ll never make friends with the people you want to if you never get a chance to talk to them – so surround your self with good people.

How to build Friendships

People are interesting animals and the psychology involved in friendship is rather fascinating and complex. But there are few key triggers to keep in mind.

People don’t feel like 50/50 is fair. Friendship is a give and take but if you could count the giving and taking between two people who gave and took exactly equal amounts then asked them what their perception was chances are they would both say they give more than they get. The sooner you can stop tracking how much you get out of a friendship and instead focus on how much more you can give the better off your friendships will be.

Consistant communication. Friendships whither and die without attention. It doesn’t take much – maybe a birthday email, Christmas card, pass on a joke every now and then or a congratulations message if you find out something good happened to them. These short messages take very little effort nowadays with Facebook helping to track all this stuff for you. It’s important to show you take an interest in your friends lives, and continue to be on their radar.

Introduce people. Constantly be thinking of who you can introduce where both people stand to benefit from a friendship. Providing introductions is perhaps the secret weapon of making friends. By bringing two people together there is a chance that big things could happen. Million dollar business deals could be inked, new product ideas created and sales made could be attributed to your helpful introductions. The more people hear about you being the connector the more people will seek you out. This can and will snowball you into success.

Listen. If most people like to talk then who’s going to listen? Being a good active listener is an incredibly valuable skill and one that helps build relationships.

There you go. A bunch of my best tips for choosing and keeping the friends you need to be successful. One last thing though. it’s worth taking the effort to learn and practice any of these skills that you don’t already have. It may not be easy or feel natural but will pay off in droves.

It occurred to me yesterday when I was reading an essay by technology investor and author Paul Graham called What Happened to Yahoo that RIM seems to be making the same mistake.

Yahoo was making a lot of money – so much in fact that they stopped trying to make more of it. They were blatantly ignoring new product ideas, and improvements to their services because it was too easy for the sales guys to sell banner ad spaces for millions of dollars. Along comes a competitor (Google) with a fundamentally more valuable product (Adwords) which very quickly destroys Yahoo’s banner advertising business. The lack of development at Yahoo over the years had unfortunately destroyed the corporate culture leaving them ill equipped to invent new products. They certainly couldn’t keep up with all the smart people that Google was hiring.

And so the inevitable happened. The business shrank forcing them to divest from important products and “re-focus” on core products.

I suspect that RIM made the same critical mistake. They owned the smartphone market until Apple came out of the blue with the iPhone. However it had taken Apple about 3 years of development before the first iPhone was released. Certainly at some point in these three years the pieces of technology that make the iPhone possible would have been discussed and tossed aside by people at RIM. They got far too committed to their crappy apps, and qwerty keyboards to try anything that might be an improvement.

The money RIM made hand over fist was from the enterprises that would buy expensive servers to manage all the corporate phones. It was the only solution for so long that they really didn’t have to sell it. Every new phone was only a minor improvement to the existing model, but people bought them so RIM probably thought they were doing a good enough job.

Now that there’s a competitor in the market RIM is finding itself in a bad situation. The phones operating system had been worked on by mediocre programmers who left it in a state where it now has to be tossed out – what’s worse is that they couldn’t trust the internal programmers to program their own operating system so they brought QNX in to do a proper job of it. The hardware hadn’t seen any major revisions or new ideas. And the backend servers that enterprises spent lots of money on have become obsolete – the iPhone can connect directly to Microsoft Exchange.

RIM’s business is now in decline and I suspect that they will soon find themselves cutting product lines to “re-focus” on key markets. They’ll continue to slide until eventually they become an acquisition target for the likes of Nokia or Motorola.

My suggestion to RIM to get them out of this is to step back and address some internal issues. They need to hire the smartest programmers they can find – steal them from Google, Apple, Facebook, and Microsoft if they have to. Give those programmers the freedom to work on projects that aspire to do amazing things for users (not businesses) and hold them to that vision. Tackle and rebuild the corporate culture to find and embrase new ideas, more efficient ways of doing things, and new business ventures to make money from. Encourage and give employees time to mingle between departments to discuss ideas and provide time and ways for them to work on them.

Want another idea? Start a business incubator program following the model of y-combinator but focused on BlackBerry Apps. Hire students for 4 months give them about $20,000 and help with the legal work for starting a business as well as networking connections. In exchange take 5%-10% equity stake in the business. It will help establish the developer community, potentially some killer apps or games for the platform and could eventually result in a huge payout if these companies ever get acquired or IPO.

I suspect however that RIM is a ship too big to turn.

I went to school to learn how to program.  In fact I went to one of the best Computer Science schools in Canada – University of Waterloo.  While there I took all of the hardest courses I could fit into my schedule including 2 of the “big three” – Graphics and Real-time Operating Systems – which lead to many (MANY) nights in the lab that I never got home until 5am.

I love writing software and I love reading about it.  In fact I estimate I do about 3 to 4 hours of reading every day!

Over the last few years I have tempered my reading about computer related topics with learning entrepreneurship skills.  Things like sales, marketing, accounting, financing, leadership, and networking.  This evolution has changed me.  It opened me up to a lot of new ideas and points of view.

There are a lot of entrepreneur skills that make a lot of sense for software development.

Great sales people split test and measure the results of any particular approach they take.  They change headlines, colors, fonts, layouts, images etc to try and gather data about what works best.  They never stop testing new things.  Gathering these types of statistics overtime will improve the sales process and make drastically more money for the business.

I have not seen many (if any) applications that are taking this type of approach to optimize.  Imagine how much better software could be if  there were easy ways to gather and visualize how it’s usage changes between versions as a result of UI changes or how real-world performance changes with a new algorithm or data structure.

Entrepreneurs biggest problem is that they have lots of ideas but it’s hard to finish. It’s tough to get though the resistance to actually ship something before another idea comes up to provide an escape to avoid the fear of failure.  Solutions to dealing with this natural tendency is to not self sensor, be stupidly ignorant and stick to the core idea, and anticipate the resistance by pushing through with more focus as the deadline looms.

These are things that I think programmers should embrace.  The first version of a program should be written as quickly as possible, with little thought put into performance or maintenance.  Anticipate that as you get to the later stages of writing a program the parts remaining will get harder and harder to get through (because you’ve skipped the hard stuff along the way).  When you get to the last few bits of a project the only thing remaining is usually the stuff you hate doing – UI code or graphics or tedious clean up.  Expect it.  Focus.  Do the work.

Good entrepreneurs know that their opinion on their own ideas is fairly useless. Not until the product is available on the market where customers can prove it’s value by opening their wallet is anything for certain. Until the idea is proven in the market place it’s value is a guess.

Likewise until a program is in the hands of users, programmers are just guessing at how it will be used, by whom, and with what level of knowledge. Therefore just get it out there and measure these sort of things after the fact. Don’t make too many guesses about a product before letting people use it. And recognize that until people use it your are just guessing.

Most of the entrepreneurs I have met exude a tolerance for taking risks – for going after the big ideas. Have that same boldness for your own software development work and you’ll accomplish great things.