How I Finally Fixed Email And Changed My Life

Standard

How I Finally Fixed Email And Changed My Life

Between work and family I seem to be in a state of constantly-swamped, so I’m working hard to simplify my work habits to allow myself more time for thoughtful, focused work.  This was the biggest improvement yet: I’ve recently DOUBLED my effectiveness by clearing my schedule and my headspace from the constant distraction and false-productivity of email.  We’ve all heard that we should compartmentalize email, to batch our email work in two appointments daily. I’ve previously failed at this, but now I’ve found the one change that makes it possible, even in an email-driven startup. Step 2 below is the crux of the change, but you need to follow 1-2-3.

shutterstock_129610085

Groundwork: Get your inbox < 100 conversations.

Removing the distraction of email from your life requires first that you’re keeping it to a manageable level. I’ve kept my combined two inboxen (thanks, Mailbox and Boomerang and Evernote) to under 30 threads consistently for months. I get stressed when that number crosses 20 or 30, but if you’re in the hundreds or thousands, you need to demolish that first. I’ll provide that groundwork in another post.

Step 1: Set a time for it

The first step is one you’ve heard before: set a time to deal with your email, so that you compartmentalize it in your day. On the first day I committed to this change, I set a time. 11am, I’m settled and I’ve dealt with any crises, and it’s my first chance to sit down for an hour of uninterrupted work. Block out one hour, whenever it is that you can work. Don’t stress about how many times per day, just get started with one appointment with your inbox.

Step 2: Give it the time it deserves

This is the change. Even when I only check my email a few times a day, I would take the same approach: prune the crap, reply to the easy, and stall on the complex.

You can’t change the # of times you interact with email, unless you also change HOW you deal with it.

You’ve blocked out an hour for this. Give is the focused attention you would to interviewing a new hire. Know that you are doing NOTHING BUT EMAIL for the next hour, OR until you get to zero. No excuses. One hour. What does this do? It changes my approach to the complex ones. Instead of saying “this will take some serious thought, a bit of research, and a long reply, I’ll do it later”, now is the time. I have the space of the blocked time, and I know I have nothing to move onto until my inbox is empty. Prune the crap, reply to the easy, and 18 minutes into the hour you’re left with the complex.

Step 2.5: Give each message the time it deserves

Many messages involve subtasks, so I can’t turn off my wifi. Some require that I coordinate a meeting time with 2 people, so since I know I have an hour to work (42 mins and counting…) I’ll take 5 minutes and ping those two people in chat or call them. If an email has been sitting there for days because it involves calling my insurance company, pick up the effing phone. I’ll take tangents on individual messages, in order to get them out of my inbox, while working within the luxury of my blocked out hour. Other messages just get recorded in my task list (Evernote, worth a separate post), as TODOs for later.

By giving myself the luxury of a focused hour to deal with email, I removed the luxury of ignoring the complex messages, and forced away the excuses.

Step 3: Forget it. Selectively.

The first time I tried this, I got to zero in under 50 minutes, and both personal and work inboxes were completely empty for the first time in probably two years. More importantly, I had COMPLETELY DEALT WITH complex issues that had been languishing because they deserved more than a brief reply. As a founder and an exec (and husband etc) the most important issues can’t be resolved with a “sure, sounds good”. They require attention, thought, and response. I was finally able to do that.

The benefit?

That day, my mind kept returning to my inboxes, the heroin pellets of the modern workplace. And the immediate second thought was “oh, it’s empty.” Of course, more email came in every minute. But the most interesting thing was this: as I watched it come in, I realized how infrequently actually important email arrived. So even though I now knew that the inboxes weren’t empty, I knew they could wait until the next time I focused on them.

Maintenance

I don’t follow conventional wisdom and turn off my email notifications. I can watch mail come in on my iPhone notifications, and if something is important, I can jump on it. But I don’t open it every 10 minutes to delete things. That’s stupid. I’m able to only process my email 2-4 times a day because people can reach me on text and iMessage and phone, and by walking over to my desk.

I enjoy my most productive and focused work now, thanks to the knowledge that it is totally safe to ignore my email for hours at a time.

Ahhhhhhhh

I’m slowly recovering from heroin pellets, and while my inboxen still creep up to dozens sometimes, I know I have time every day to sit and ensure that the important, thoughtful items get dealt with instead of delayed, and that’s incredibly satisfying. In the hours I go between checking my email, I’m able to do the focused, thoughtful work I need to for my company and my family. Focus and presence are everything.

Accelerators – Founder Perspective 2: Then & Now

Standard

… a continuation of Founder Perspective, where I discussed the value we received from our time in an accelerator.

GET TO WORK.

After Demo Day, in November of 2011, we left Montreal on a high of success.

Screen Shot 2013-08-12 at 10.43.35 PM

We closed angels and VCs that we were working with, we moved back to Vancouver feeling like heros, and got to work on the reality of building not a pitch or an idea but a real business.  After the high of Demo Day comes the long slog of recruiting and selling.  We had some success in our first year, building the company to a team of 8 and a run-rate of about $1mm annually, and then we acquired SuperRewards, which took our business to a larger scale again.  Today we are about 25 people between San Francisco and Vancouver, and profitable.

COHORT VS COMPANY.

Accelerators are very good at one thing: accelerators get startups investment-ready.  Some programs say that they are for later-stage companies, but the value is only there if the startup is still not ready for venture investment.  Before the seed or A-round, the problems facing a company are EXISTENTIAL.  The question during an accelerator is SHOULD THIS COMPANY EXIST.  Is there a real opportunity, can we get anyone to give us a chance to try?  This is what accelerators excel at, as I cover in Part 1.

The thing to remember is this:

Screen Shot 2013-08-12 at 10.58.47 PM

This is the classic Startup Curve by Paul Graham, which we all know and love/hate, tracking our progress quarter by quarter.  (I can tell you exactly which segment of this Playerize is on right now, but my lips are sealed.  If you’re big, buy now before we eat up all your upside :)

The thing to remember… is just HOW VERY EARLY Demo Day is on this timeline.  It’s the gold star.  It’s before the investment, before the TechCrunch, before the sorrow and the hope and the growth.  It’s before everything other than proving your idea is worthy of a serious look.

Demo Day means your startup has surmounted an existential challenge, but there is a lot or road left with no babysitting.

THE SKILLS TO SURVIVE.

This is a scary curve for those who run accelerators.  A program may be three months long, but it’ll be 3-7 years before any possible acquisition.  And while the accelerator shepherded the startup through that first existential crisis, the eventual success of the company is not built on a pitch or a mentor, but on the ability of the founders to execute and operate over that long timeline, at a scale that they likely have never experienced before.

This is the breakdown of my time during the accelerator and after.  To create better outcomes, we need to create better managers and CEOs.

Pie Charts

NEXT.

#3: Some suggestions for training better operator CEOs in accelerators.

Then I’ll get into Accelerator Hacks for founders going into a program.

Accelerators – The Founder Perspective

Standard

I promised during a talk I did at the Accelerator Rally (thanks @ianmtl!) in MTL last month that I would lay out here a series of articles on where, as a founding CEO, I got the most value from our accelerator during and after, what I would change, and what I would tell startup founders going into a program, so this is part one of many.

DIVING IN TODAY: where we got the most value from the accelerator during and shortly after the program / THE HONEYMOON PERIOD.

I co-founded Playerize with Lyal Avery in Vancouver in early 2011, and after establishing some really promising early proof points, we got into the first cohort of FounderFuel that August.  Lyal and I had more experience than many of the other founders, Playerize was a solid idea, and we got quite a bit of positive attention during and after Demo Day.

Here I am on stage on Nov 8th, pitching to a crowd of investors and community on FounderFuel’s first-ever Demo Day.  Still one of the proudest days of my life, although Lyal still refers to it as “The Sweater Vest Pitch”:

Demo Day2

And, to take advantage of the fog of admiration you feel right now for that sweater vest, point the first:

ATTACK THE IDEA.

Sounds simple, but the big benefit is in making the idea strong in a big opportunity sense.  Lyal and I were initially building what would have been a profitable, but small-scale company.  Few in the community, and NONE of the GPs and VPs are interested in that, so the modifications that the accelerator partners pushed us to make in the program and the pitch prep transformed Playerize from a profitable lifestyle business into something with serious growth and scale potential, and we generated a lot of excitement in that theater.  Accelerators are good at taking your lifestyle business and making it a scalable VC-backed venture.

PITCH PREP.

Pitch prep is a no-brainer.  Every accelerator puts a lot into this, and the degree of success depends on the people doing the coaching and how intensive the process is.  Three quick points about pitch prep:

– The real value of the pitch prep is extremely concentrated idea-refinement.  After 10 weeks of being torn to shreds by the partners, we then spend 2 weeks of pitch prep making it actually hang together.  Demo Day is a business plan competition, played out in 30 slides.  (As business plans should be drafted – I’ll post on my method for this later).  The final weeks of the program probably contained as many mini-pivots as the first 10.  It’s not until you’re saying it out loud that you find out which elements support each other, and which are extraneous, negative, or downright fucking pretentious.

– I think too much effort is being put into the presentation layer of the pitch.  I’m not nostalgic for my hand-done keynote from 2011, but in some recent demo days I’ve been at, the standard for decks is so high, it’s obvious that at least half of the time invested went into working with a professional designer and iterating the deck, instead of refining the idea and talking points.  I challenge accelerators to limit Demo Day pitches to black-on-white bullet points.  Investors are smart enough to identify the good ones without cityscapes and shit.

– I think perhaps more startups should fail.  I understand all of the practical difficulties with an accelerator washing out part of every cohort, but that’s the reality in most groups.  Sometimes the pitch prep is almost too good, and the turds are well-polished.  Demo Day is for battle-hardened ideas, and any idea who doesn’t struggle through, getting better week by week, should probably get the tube-sock-and-bar-of-soap treatment.

INTROS TO CAPITAL.

Again, EVERYBODY does this.  The difference is made when the introductions carry personal weight from the partners.  It doesn’t matter how many VCs are in the mentor network, once you pass the “not an idiot, and listens to advice” tests, the next step in getting capital is a personal recommendation from someone influential.  Fundraising value in an accelerator comes not from access to investors, but PUSHY intros to capital.  I’ve had an investor say “if you’re not into these guys, I don’t know what I can ever send you”.  The difference is made when the partners spend personal capital to recommend you.  This doesn’t scale – they can’t vouch for every startup in every cohort – but it’s a blocker to fundraising.

MENTOR COMMUNITY VS FOUNDER COMMUNITY.

In general too much time and effort is put into the founder / alumni community.  If you’re YC, sure, the fact that I can bug the Dropbox founder is incrediballs while it lasts.  The value in that though, is that they’re operating at a scale you hope to achieve.  FounderFuel has a big, broad mentor network, and when I have a question about something like sales team compensation, I don’t ask a startup founder from my cohort, I ask the CFO of a 300-person company.  Just like the old saying of ‘dress for the job you want, not the job you have’, get operational advice from people who are at least two levels beyond you.  I LOVE my cohort team, we’ve been through shit together, we’ve spilled the same blood in the same mud, and I’m eager for beer and gossip.  But the value is with the mentors on almost every practical question.

NEXT.

#2: Where I get value now that we’re an operating company

#3: Some suggestions for trailing better operator CEOs in accelerators.

Then I’ll get into Accelerator Hacks for founders going into a program.

Follow or subscribe, yell at me on twitter and in comments!

 

 

 

De-Risking Risk Capital: A Lightweight Angel Fund

Standard

This discussion springs from Boris Mann‘s post today, which touches on the need for “fail money” in Canada.  I agree with nearly everything he says, and it can’t be disputed that more active capital is required to continue the growth of the startup economy in Canada and build our web and digital media industries.

My reaction though is centred around (1) I hate the term “fail money”, but I know what he means is that we need more capital going to companies to TRY, and half will fail, which needs a high risk tolerance and (2) I’m a small-time angel investor myself, and at my level this concept makes me very nervous as an investor.

The issue is that I’m not investing enough to create a portfolio effect to counteract the high risk of any single investment.  I know others in the same boat, people with tens of thousands to spend, which only enables 1-3 investments, which gives you a really high risk.  We need a mutual fund of angel investing.  While startup accelerators and angel funds or super-angels come close to this, it’s not working well in Canada right now.

I talk about this quite a lot in my MBA thesis, which is a startup accelerator business plan (posted on this blog earlier today).

What I’d like to create is an investment vehicle that is very public about the status of its fundraising rounds, through an investor portal.  Any investor with at least $5,000 to spend can create an account, see the status of any rounds being raised by the fund or its portfolio companies, become accredited, and commit funds to any of the rounds.

The benefits of a very open, public, and broad approach include:

  • Creating a valuable contact database of interested potential investors
  • Remove barriers to participation for small investors
  • Significantly de-risk startup investing by allowing portfolio approach
  • Remove fundraising risk by casting a wide net
  • Open approach will generate significant attention and interest
  • Open and frequent communication keeps investors and prospects engaged with our companies and efforts
  • Open and requent communication also increases investor satisfaction, leading to high rates of initial and repeat investment
  • Ability to offer rounds being raised by portfolio companies and other unrelated startups to this investor portfolio, perhaps in return for fee or equity

This structure is a modification of the currently popular super-angel approach, and would obviously require one or two active investing partners to be doing the legwork.  The innovations here are around the broad community of investors and the unusual level of openness and transparency.

From my business plan, here’s a mockup of how I imagine the investor portal looking:

A Startup Accelerator Business Plan

Standard

As part of my Queen’s MBA we don’t do a thesis, each student crafts a new venture business plan.  Because I’ve been excited by the potential of the startup accelerator model, I created a plan for an accelerator based in Vancouver and inspired by Bootup, Y-C, and TechStars.  I believe, and I know I’m not alone, that when dealing with very early stage teams it’s IMPERATIVE that the investment be paired with a strong mentorship presence and a lot of coaching and learning.

I’m proud to publish the full business plan here, I’ve redacted a few names that I included without their permission pending a response from them.

What I’m especially proud of are a few innovations that I think are necessary:

  • The investor portal (pp 6 and 16) – in Canada, the biggest issue is raising the funds for investment.  I want to create a lightweight and very public system that allows many small investors to participate, which does three things:
    • Fulfill the capital requirements with a MINIMUM of partner time spent, especially in subsequent rounds
    • Communicate clearly and frequently with investors, increasing their satisfaction at participating, and creating a lot of engagement with investors and potential investors, leading to higher repeat investment
    • Generates a lot of publicity and attention, creating a high level of investor awareness and participation
  • The creation of an endowment fund (pp 11, 12), which receives a portion of the exit funds on behalf of both the investors and the management, so on an ongoing basis the reliance on additional fundraising is reduced, and the management and investors who worked on one round will have a limited participation in all future rounds.
  • A focus on coaching startups as high-performance teams.  Mentorship on product development and pitching is valuable, but as I say on page 7:

Our initial education program will be significantly different from those of other accelerators in its inclusion of content for improving personal effectiveness and coaching high-performance team practices in the startups. The short length of the program means that one of the most effective things we can do to improve the success rate of our graduates is to improve their ability to perform both individually and within their team long after their graduation. We intend to outperform our peers in this market in part through helping to launch more productive, better performing, and emotionally healthier teams.

Why aren’t I starting this?  This plan has one significant weakness, which I included intentionally for the purposes of this as an academic project: even with the innovations around investor attraction and retention, it’s probably not possible to operate an accelerator as a going concern in Canada that requires annual fundraising.  The successful American accelerators and angel funds are backed by $30+million endowments that remove the uncertainty of funding next year’s cohorts and the partner time required to go fundraising.

Here it is, in all it’s glory.  I must give significant credit to Boris and Danny of Bootup Labs for their knowledge and assistance, to Jed Christiansen for his thesis analyzing the accelerator model, and to Ben and Mack from Compass Engine who helped with the founder perspective.

Startup Accelerator – Business Plan

The Daddy-preneur Fitness Program

Standard

There are lots of dads in the startup scene, and perhaps more than anyone else, we need to keep fit while pushing ourselves hard – building a business and raising a family require not just time, but more importantly energy and attention.  More on this coming in a later post, but springing from a discussion over beer at the Main Street Daddypreneur Meetup a few months ago, here’s some resources on cramming fitness into a schedule with no slack.

The most important criteria here is that none of the activities require a lot of context switching cost – to spend 30 minutes at a gym I need to drive or bike there, park,  shower after, get back home, and maybe pack a bag beforehand.  This is over an hour lost for a half hour of fitness contribution, and that’s a waste we can’t afford.  I’m seeking activities that can be done at home or work an don’t require scheduling, as nap and meeting times can be unpredictable.

And a disclaimer – I only succeed at about half of what’s below in a given week.  But I try to get it done every day, and I try to be flexible and relaxed about what I actually accomplish.  If you can add one or two things below to your current week you’ll be better than last week.

High-Intensity Inverval Training

Don’t train longer, train smarter.  Using high-intensity intervals, you can jack up your metabolism for 24 hours, and gain the fitness benefits of a traditional cardio workout 4X LONGER.  It’s discussed in the AskMen article below how this approach is appropriate for not just cardio but for fat loss and muscle gain.  Never spend an hour on a stationary bike again.  This is an intense activity, and they say you should only do it 2-3 times per week.

How it works:

Hardcore
Greatest improvement, longer recovery time
Less Hardcore
More endurance, shorter recovery time
5 min warm-up
Maximum effort for 0:15 to 0:30 80% intensity for 0:45 to 1:30
2 min. recovery 1-2 min. recovery
Repeat 6-10X Repeat 5-8X
Cooldown

Further reading: AskMen.com – HIIT | Wikipedia – High Intensity Interval Training

A HIIT timer app: http://gummisoft.weebly.com/hiit-timer.html

Bike Everywhere

I love biking much more than running.  It gets my heart pumping, gets my lungs gasping, and works my legs until they’re wobbly.  And it does it with resistance instead of impact, so I’m becoming more muscular instead of skinny and sinewy (sorry, distance runners).  I’m lucky (?) enough to live in a very hilly area of Vancouver so I can jump on my bike and effectively do HIIT by spending 20 minutes pumping up and down the hills near my house, and I return tapped out but feeling amazing.   The other great lead biking has over running is that it’s a transportation method!  You don’t want to run to your next meeting, but bike there and you’re getting in shape, reducing your carbon footprint, and saving money.  I never feel like a part of my city so much as when I’m cycling through it.  Bikes can be inexpensive (I have a $500 Norco urban bike of some kind) so there’s little barrier to getting started.  Oh yeah, and since this is a Daddypreneur program, don’t forget what a great family activity cycling is, get your kids in love with it early and you’re giving them some good lifestyle habits :)

In Vancouver I get great service at The Bike Doctor (Broadway).  I also have several kid carriers.  Hit me up if you want to talk about them.

Also, this is very cool, a friend in a graduate program at UBC helped produce this “Google Maps for cycling”, it generates bike routes and includes info on hills and bike lanes: http://www.cyclevancouver.ubc.ca/cv.aspx

Effective Bodyweight Excercise

Save money and time – cancel the gym membership.  I love spending time in the gym, trying equipment and excercises that I can’t do at home, but realistically I make it about once a month.  Just as I can get better cardio workouts from the HIIT sprints above compared to an hour on an elliptical, so can I boost my metabolism and build strength with a small set of excercises done at home.  Put together a program of pushups, bycicle crunch, pullups, and lunghes, for example, and you can tax your whole body in a half hour or less.

For pushups, I strongly recommend the 100 pushup website & the iPhone app that helps me do it on the go.  This program does an initial test and then pushes you through eight weeks of increasing workouts to get you to 100 pushups a day.  I just noticed that at long last they have programs out for crunches, and squats, so if you want a full-body workout and don’t have time to figure one out, just put  those three in a spreadsheet and get started.  I think I might do that this afternoon.

The bicycle crunch is considered the best ab workout (study by American Council on Excercise).  When short on time, I just do pushups and bicycle crunches.

While I get mocked by my wife for it’s “Cosmo for men” attitude, Men’s Health is actually pretty good at presenting a variety of body-weight or at-home workouts every issue when you’re looking to mix it up and try something new.

Update 2010-10-26: This report on realbuzz.com lists the most effective excercises for each muscle group, based on research.  This is a great starting point for creating a time-compressed full body routine: http://www.realbuzz.com/articles/the-top-10-best-exercises/

Meditate

Life is crazy.  Kids are amazing/stressful.  You can improve your focus and mood by meditating for a few minutes a day.  I’m trying to make this part of my routine, but it’s hard with fluctuating kid wakeups.  When I can fit it in, 5-10 minutes of focusing my mind and quieting the noise does wonders for my mood and energy.

Great post by Alex Payne on his advise for surviving the startup lifestyle with energy and health, including a nice bit on meditation and some resources: Staying Health & Sane at a Startup.

Fit It In

Hardest part!  I think there are three principles, that you can use individually or combine:

1) Schedule it.

If you can, set up appointments with a personal trainer.  I was never in better shape than when I was seeing a trainer 2-3X per week, not just because she kicked my ass for a solid hour, but because I had an appointment that I was paying for.  If you can block this into your schedule and afford the trainer (40-50/hr) it is by far the best option.

If not, scheduling it is still one of the best ways to ensure you have time.  Whether it’s 5:30 AM three days a week, or 8:30PM after the kids are in bed, pick a time, schedule it, and think throughout the day about that as inviolable time.  Recognize the importance, commit, and you’ll be happy you did.

2) Pick slack times.

No slack times, right?  I’m in the middle of an MBA, multiple contracts, with a 1- and 3-year old.  And.. And… So I get up at 5:30 to be able to get work done and exercise in before the kids wake up somewhere around 6:30.  I started taking swimming lessons this fall, and fit it in after dinner once a week.  Get creative with your schedule :)

3) Relax.

As in the disclaimer at the top, you can’t do it all.  If you can, I’m very jealous.  Pick one or two things from this list and commit to them for a few weeks.  Let me know how it went, and if you have other things that work for you, let’s add them here.

Better Personal Investing

Standard

“The index fund is a good innovation, not because it has any magic – anone can figure it out – but simply because by owning the market at a very low cost you will, by definition, do better than everyone who owns the market at a very high cost” – John Bogle

I think by now we’ve all heard some stats on the poor long-term performance of actively managed funds.  From mid-2004 to mid-2009:

  • S&P 500 outperformed 63% of managed large-cap funds
  • S&P Mid-Cap 400 outperformed 73.5% of managed mid-cap funds
  • S&P Small-Cap 600 outperformed 67.7% of managed small-cap funds

Of course anomalies exist!  I’ve seen hedge fund prospectuses (prospecti?) with years that enjoyed gains in the hundreds of percents.  On a more reasonable basis, we see active funds that will outperform the market for five years at a time.  But this doesn’t mean that they have any “secret sauce” or expert opinion that can be applied consistently to win.  In fact, since there must be thousands of managed funds right now in North America, and tens if not hundreds of thousands of asset managers, there’s no way that any of them are able to consistently beat the others.

And you never know which fund will be outperforming in which year.

You need to avoid two things:

1) Wasting your time trying to identify mutual funds that will do well – the research and uncertainty involved is annoying and most people are unqualified (myself included)

2) Decreasing your returns by paying significant management fees.  The funds that my bank account manager recommend all have expense ratios between 1.4% and 2.25% annually.  That comes right off the top of your returns.  This sounds small but has a big effect: If we invested $100k for 20 years, 5% will result in $265k, and 7% will result in $386k.  That’s a big difference.

How do we avoid these?  Follow the warning in the quote at the top – try to match the market at the lowest possible cost.  We do that with ETFs, which have expense ratios more like 0.25%.  You just boosted your returns by over 1% annually compounded.  That’s huge.

I love the Couch Potato Portfolio.  Individuals can follow it with minimal investment knowledge and minimal time investment and produce market-tracking returns that will beat most managed funds over any time period over say five years. (Intro here, but most of it is covered in this post).

You buy a group of only 3-5 ETF funds in your cheap discount brokerage account, and you rebalance twice a year.  Rebalancing is when you sell the ones that have gone up and buy the ones that have gone down, so they go back to being evenly distributed.  This GUARANTEES that you are buying low and selling high :)

Here’s an example, using $100k in the “High-Growth Couch Potato”, which I use since I’m young-ish and can have a higher exposure to stocks.  There are a few options on the Canadian Business site for ways to tailor the program to your investing style / goals: Meet the Potato Family.

Initially, I buy:

  • 25% Canadian Equity (iShares XIC, MER 0.25%)
  • 25% US Equity (iShares XSP, MER 0.24%)
  • 25% International Equity (iShares XIN, MER 0.5%)
  • 25% Canadian Bonds (iShares XBB, MER 0.30%)

Your total expense ratio is 0.32%, compared to the 1.5-2% for managed funds.

Spend an hour or two every six months rebalancing.  Say our Canadian and US Equity funds have gone up and the rest are flat or down, I sell those two to bring them to 25% of the new total value and spread the proceeds to the other three in amounts that bring them up to 25% as well.

Read more about the process at the Canadian Business website, which goes into detail on the rationale, the process and the variations:

Introduction

Do the Couch Potato: Step by step guide

Building blocks: ETF suggestions

Colin Powell Quote

Standard

“Organization doesn’t really accomplish anything.  Plans don’t accomplish anything, either.  Theories of management don’t much matter.  Endeavors succeed or fail because of the people involved.  Only by attracting the best people will you accomplish great deeds.”

Ground-Up Rewrite = Flush Your Company

Standard

Software engineers love rewriting old code.  I’m a software engineer, and whenever I look at my own older code (as in more than  a month or so) I get an instant itch to rewrite it.  I’m a bit embarrassed by it, and I think that for various reasons, I can do it better now.  It happens even more when I look at somebody else’s code, because I also assume they must not be nearly as clever as I.  When something’s WORKING we still want to rewrite it, so when a product or component is causing maintenance or performance issues, there is usually a very strong case being made that it needs a ground-up rewrite.  We say things like “we won’t be able to improve the graphic performance unless we completely rework it with a different set of libraries” or “this should have never been developed in Perl, we can’t scale unless it gets redone in C++” (direct quote, by me several years ago).  Or just “this program/class is an incoherent mess, I’m writing a replacement”

Don’t do it.  This will probably kill your company.

Even if it has issues, your production code is the result of say two years of development, of which something like 20% was the fun part of writing shiny new code to solve a problem, and the other 80% was a long slog of tweaks and bug fixes.  Guess what, when you replace that ugly code with your new shiny code you just gave up hundreds if not thousands of man-hours spent improving things.  You re-introduced old bugs and, worse, added new ones that you don’t know about yet.

And the more strategically horrible part of this, is say you spend 2 months writing the new version.  Don’t forget, it will take you twice as long as you think.  During those two months you continue running the old code, but you stop maintaining it because it’s going to be replaced by something amazing “any day now”.  In my experience, you end up with a legacy system that has fallen way behind where it should be, thanks to lack of attention, and a new system that can’t be successfully rolled out because in a production environment it’s not performing as expected.  You now need to invest another significant chunk of time finding and fixing the bugs in it, which you had already done on the old version.

Now you just wasted huge amounts of your most precious resources – time and momentum.  Your customers have wandered off and your competitors just ate your lunch.

The other trigger for this, where there is a legitimate need to do a rewrite, is usually for performance issues.  Such as replacing the Perl code with C++ (bad Jeff).

What should be done instead?  Both situations will arise…

REFACTOR.

When you have legacy classes/components/scripts that are so full of special cases that they can’t be maintained without causing stability problems you DO NOT REWRITE THEM, you pull out functional parts bit by bit, and you name variables and functions bit by bit until it’s clear and well-organized.  And at no point did you add or remove a single line of code that was not there previously.  The code is unchanged, it’s just laid out much better and you can now work in it with confidence.  All of the little fixes and special cases are still there and, perhaps most importantly, there was NO point in time when the code being edited could not be used in production.

Similarly, when you have to replace a program or component in its entirety, you approach it with a refactoring mindset but it’s a bit more complex and has a bit more risk.  In this case, sooner or later you’re going to replace the component with a new one, and it might be in a completely different language, so you can’t use the classic code refactoring techniques.  Instead, you get as close to that as you can.  First, you work to lock down the real functionality of the legacy code with an exhaustive test suite.  This will likely take you longer to do than actually writing the new one, but it’s the only way you can ensure you stay true to the current behavior.  Look at the code as you set up the tests, ensuring that all the funny special cases and outliers are tested.  Generate tests from three months of live usage, ensuring that you handle everything that users/environments actually try.  Next, keep in the refactoring mindset by making the minimal changes possible.  For example, if I were moving a program from Perl to C++ I would actually have the legacy Perl program call a new C++ program and use its output.  This way I can refactor my code from Perl to C++ line by line and function by function, until eventually I still have a Perl program that actually calls a C++ program to perform ALL of its functionality.  All the Perl program does is invoke the new version and return its output.  Now you can take the final step of replacing the tiny Perl with the new C++ and everything should continue as before.

This process allows you to accomplish BIG architectural changes without ever having code that could not be in live use.  If something unrelated breaks, you can fix it on the latest version and push it out, and you’re not maintaining “production” and “future” versions separately.

If I were undertaking this right now, I would also like to pair it with continuous deployment, so that as I made each tiny, safe, change it went live and any errors would be detected immediately.  Also, as mentioned, refactoring is best done with the safety net of a great unit and integration testing framework.

If you want to learn more about refactoring, most learn from The Bible: “Refactoring: Improving the Design of Existing Code” by Fowler, Beck, and (apparently) a dozen others.  I’ve also learned some great techniques on using this practice to improve architecture from “Refactoring to Patterns” by Josh Kerievsky.  Also, Martin Fowler has a website about refactoring at refactoring.com that appears to have some good resources.  Let me know of any other favorite resources in the comments.  I follow Kent Beck at @kentbeck.

Joel Spolsky (@spolsky) wrote a fantastic article on these problems TEN YEARS AGO and I still see this happening.  I think people need reminded of it regularly.

Joel On Software: Things You Should Never Do, Part I

If you write software or manage people who do, you need to go read his old posts now.  It’ll make you look smart :)

Agile Budgeting – Followup

Standard

Here’s a few more resources that have surfaced since my post on Agile Budgeting / Startup Cash Flow Management:

Geof Harries (@geofharries of subvert.ca) pointed me at Pulse (pulseapp.com), which encapsulates much of my process in a nice web tool.  I haven’t had the chance to try it out, but it looks like it captures the key steps of estimating, scheduling, repeating, and editing.  One benefit of using our Excel spreadsheet was that we could do 30-second “what-if” experiments.  Move a customer payment to a later date and see if you still make payroll.  Increase your monthly billing by 10% and see if you can hire another developer.  This flexibility and control is key to this being something you are willing to use.

Fred Wilson’s (@fredwilson) excellent MBA Mondays series has included a few posts that introduce the basic accounting reports of balance sheet, profit & loss, and cash flow.  My post focused on the cash flow, as it’s the most important real-time report for a bootstrapped / low-capital startup.  He also has his own post on Budgeting in a Small, Early-Stage Company.  I’ll explain why I disagree with his recommendation (at least for the very early stages) but you should go read everything he’s written.

I still think that annual budgeting, as he recommends, is not useful in the early stages, when your business plan, revenue model and cost structure are changing frequently.  Focus on your market fit, your repeatable revenue model, and watch your cash.  Once you’ve accomplished those (reaching the Optimize and Scale levels of the Startup Pyramid @seanellis) then your company will be static enough to spend the time on annual or semi-annual budgets.

Moving forward, I hope to crank out a few more posts on lean processes that I’ve used in the past so we can get away from old BDUF time wasters throughout the company.