Your browser doesn't support the features required by impress.js, so you are presented with a simplified version of this presentation.

For the best experience please use the latest Chrome, Safari or Firefox browser.

The story of a Melbourne .NET startup

Welcome!

We're the co-founders of Appfail

An online cloud-hosted SAAS

Provides failure monitoring for thousands of web sites

Provides web site administrators with rich analytics and detailed information about failures.

This is the story of Appfail

Over the past 18 months:

Who is this for?

Software developers, or...

Anyone interested in getting involved in a web/software startup!

Sam Kroonenburg


@samkroon

Software Development Manager at Kiandra IT

Ex-Microsoftie

Developer on Windows Vista, Server 2008 & Windows 7

Disk Defragmenter, Volume Shrink, Windows Backup

FAST Search For Internet Sites 2011

Dr Peter Sbarski: "The Doctor"


@sbarski

Software Developer at Kiandra IT

Monash Uni PhD

Ex-government policy-wonk

All around nice guy

The idea

First, let's define a failure

When a piece of code running the web site, crashes unexpectedly

Something happens that the programmer didn't forsee

Manifests to end user as:

Popular web sites can experience tens of thousands of failures per day

It started with a...

<rant>

Web site failures cost money!

Phew...

</rant>

Windows Error Reporting

At Microsoft, we knew when Windows failed.


With Windows Error Reporting:

Wouldn't it be nice if...

Our apps automatically detected unhandled errors and reported them to a cloud service with rich failure analytics.

A cloud service which

So We Built It!

Product Goals


Personal Goals

Who uses Appfail?

We monitor thousands of web sites across the world:

Corporates, startups & government.


Many large, global brands are monitored by Appfail.

But we can't tell you who!

The product

Demo Time!

The build

Building Appfail

Started in Jan 2012 & worked for 5 months

Building Appfail: Tech

Code like the cool kids!

Building Appfail: Keep It Low Cost

During development, it cost almost nothing!

We were lean & had no costs!

Remember, nearly everything is already a solved problem!

Outsource everything that isn't your core product!

Here's all the services we used to build Appfail, initially.

Next

Challenge Assumptions

Test your ideas & think like a user!

Draw the feature on paper & walk through it as a user.

We:

The Great Rules Engine Debacle!

Grand idea: Appfail automatically rates 'severity' of failures.

Determined with complex, customizable rules.

For example, a set of ANDed rules based on:

Built a complex UI for defining rules, and background worker to execute these rules and assign severities.

Hooked this into notifications - eg. SMS me when an 'Extreme' severity failure occurs.

The Great Rules Engine Debacle!

We were struggling to implement a simple UI

We sat down & said: "How would we apply this to web site X?"

The more time we spent trying to actually use the feature, the more we realised it didn't make any sense!

The Great Rules Engine Debacle!

The truth is: All unhandled exceptions are bad!

They *all* stop the user from performing an action, and they all detract the web-site's brand.

URL Scoping:

Any page failing in a user's path to the order page is equally bad! Eg. the product page, the search page, the category browser.

It's hard to define rules that say exactly what is severe and what isn't.

Design matters

Great design:

So, how did we achieve this?

Designing Appfail: First, we got help!

If you're not good at something, get as much help as possible!

We didn't have a designer, but we did get some great advice.

Tait Brown, an awesome front-end dev, pointed us to a lot of great resources.

Here's what we did

Designing Appfail: Outsource your colours

First, we chose a colour scheme

http://colourlovers.com

Failures are depressing enough!

So we opted for vibrant & fun

To inspire our users to destroy those failures!

Designing Appfail: Copy others!

Then, we found a web site layout that we liked

This would be great for Appfail's dashboard

Google Plus

Designing Appfail: Copy others!

Expanding on this concept, we got inspiration from dribbble.

A community of passionate designers, who share amazing designs

Dribbble: Dashboard

Search for 'dashboard'

Dribbble: Dashboard

A selection of amazing dashboard designs

Dribbble: Find one that's right for you!

Here it is!

Google Plus-esque

but horiztonal tabs, and Microsoft metro-inspired!

First, we put up a brief

and included our colour scheme!

Then we got some logos!

... and our favourite!

Eventually we decided on

And then modified this ourselves, to:

Designing Appfail: Put it all together

Glue it all together, and you have a great looking web site.

What happens when you combine...

This dashboard style

With these colours

And this logo?

This dashboard!

And this web-site!

All without a graphic designer!

The launch

Marketing

You can't afford to pay for advertising

Don't focus on pay-per-clicks

How else can you drive traffic?

Marketing: Influence the influencers

Launched beta in June.

Our plan: To engage influential people & companies in the dev community.

Here's what happened.

Twitter

We followed a lot of renowned developers on Twitter.

We knew that a tweet from them would bring traffic.

We wished that we had pre-existing relationships with these influencers...

But we didn't.


So, we simply asked them!

Scott Hanselman

Retweeted us on day 1 of beta, to 60,000 followers.

Discussed Appfail in his email newsletter.

This lead to 2,000 visitors on launch day!

50 sign ups in the first few days.

Jon Galloway

Tweeted us, to 10,000 followers.

We wanted more!

We wanted coverage with more staying power...

Something that would stay around longer than 1-2 hours.

We set our sights on the front page of ASP.NET

ASP.NET

Our blog post 'Do you know when your web site fails?' was featured on the front page of http://asp.net for a week.

This lead to 8000 blog post views and hundreds of sign ups.

AppHarbor

In a similar vein, we contacted AppHarbor

They blogged about Appfail a week after we launched beta.

Partner with established organizations

Give them an incentive to promote and sell your product!

AppHarbor Add-On

We integrated Appfail as an add-on for the AppHarbor cloud platform.

This lead to a large number of sign-ups.

You can plug Appfail into any AppHarbor web site in just a couple of minutes.

Traffic is great...

But it's only half the battle

It's important to present a simple message to users.

Why your service is worth paying for!


The same message should work for an engineer, or their boss!

We did this with a product video.

How To Produce A Professional Product Video in 1 Day

Ingredients: 1 day & $150.

How To Produce A Professional Product Video in 1 Day

1

Write a script

How To Produce A Professional Product Video in 1 Day

2

Record your own voice, using your smartphone

How To Produce A Professional Product Video in 1 Day

3

Create the video with PowToon, synced to your voice.

4-6 hours

How To Produce A Professional Product Video in 1 Day

4

Crowd source a professional voice over, for $100.

http://voicebunny.com

Pete won!

We paid to have our press release sent to hundreds of outlets.

We didn't get any top-tier media coverage

But our press release was copied as an "article" hundreds of times

Our organic search rankings went through the roof!

Appfail is in the top Google results for a large array of important search terms.

Dogfood!

How can you improve the platform if you don't use it constantly?

Be your most avid user and your biggest critic!

We used Appfail ON Appfail!

One major issue during launch was a browser & device specific problem: on twitter in iOS only.

Took some time to find & diagnose. Appfail could have helped us diagnose this sooner!

New feature

This lead to a new feature, in days!

Graphical platform & browser info.

Blogged about how we used our experience to improve the platform.

Be your most avid user

We hit some teething issues during first few days of beta.

But because we use Appfail on Appfail, we found & fixed them quickly.

Every failure is an opportunity!

We emailed affected users an apology, along with a walkthrough of how we used Appfail to find & fix the issues!

Devops Devops Devops

Do you have "at-a-glance" visibility of your services status?

If not, how do you know if it's working or not?


We didn't have any devops at launch

We figured -- let's get it out there and see if anyone likes it first.

The problem?

To start with, things will go wrong!

Nobody likes a service that doesn't work properly.


At one point, our service was malfunctioning for 3 days, and we didn't know!

dashing.net

We needed a dashboard...

So Pete built one - open source!

Works on any screen/device

It can display anything

At-a-glance operations dashboard

High level reports that tell us what the service is doing.

We watch this every day, and know if things go awry!

Growing the business

Lesson learned

Sure Up The Foundations

Initially, you've focused on a minimum viable product

You've made pragmatic decisions to get it "out the door"


Sooner or later, you have to grow up


Hit performance pain due to earlier architectural decisions

Needed a solid foundation for growth

Rock Solid Platform

Our core foundation was a composition of disparate services

AppHarbor + AWS + MongoHQ

Being in 3 places, this was hard to manage!


Each provided an abstraction to make things 'simpler'

But every abstraction removes your ability to tweak/control things.


So, we decided to move to Windows Azure

Unified strategy - on a rock solid platform

Designing For Growth

We needed to reduce the complexity!

Simplify everything to make it easier to expand service AND team

Our Vision


We also decided to rearchitect for high availability

Designing For Growth

Now becoming a well established service.

No longer acceptable to go offline for hours at a time.

Needed architecture that supported system upgrades without taking the system down.


Azure made this possible

Remove Strong Dependencies

BizSpark

We became a Bizspark sponsored startup

Microsoft supported us with a reduced hosting bill

Allowed us to provide a blazingly fast service to customers

Challenge Assumptions

Don't be afraid to change everything

if the evidence suggests that you should

Put your ego aside, and challenge your assumptions

"Free forever"

During beta, our service was free

We promised "free forever" -- to have a basic, free plan alongside our paid plans


We came out of beta, and launched our paid plans

...and barely anyone signed up.

We tried it all...

We tried restricting the free plan


We tried making other plans more prominent


We tried hiding the free plan behing a small link


But people continued to choose it...

Nothing worked... but we needed to pay the bills!

Could we remove the free plan?

Our users will revolt!

Our users will take to Twitter in their masses!


... right?

So we changed everything


And the silence was deafening!

No user backlash.

No angry social media commentary.


Just paid sign-ups.

Less of them, but paid ones.


Now Appfail had a future

Get over yourself!

As a startup - you're not that important!


You don't have that many users

and they aren't watching your every move


It's OK to change things -- just don't change them all the time.

Don't be afraid to give up equity

... for the right partner!


The wisdom out there is to find a VC for funding

We knew what this would mean

It would mean giving up a job we loved -- and financial security for our families.

So we never considered VC funding at all...


Enter: Kiandra IT

We entered into discussions with our employer: Kiandra IT

We partnered!

...and a new world of opportunities opened for Appfail.

Amazing!


We could now focus on Appfail during work hours at Kiandra IT

AND we now had an awesome team available to us

For example, Lars Klint came on board and helped us build our Windows 8 & Windows Phone app

The truth is: We were very lucky

Kiandra IT is a fantastic company

Run by directors who share our passion for making awesome software.


Don't just aim to get VC funding -- consider alternatives!

Reflecting on Appfail

Advice before departing on the startup journey

Don't aim to be a millionaire

Aim to build a product that you love. That you believe in.


Of course, everyone wants to make millions

But it really should be a secondary concern

If you build a product that you love...

Be committed

What's the difference between...


Your friend who says:

"I came up with the idea for Facebook WAY before Facebook"

...and this guy?

Well, he actually created Facebook.

Building the first 80% of your product is the best part

The last 20% is laborious!


It feels like your day job:

But this is what separates those who have it, from those who don't

Don't underestimate the impact this will have on your life.

Running a startup is hard work.


Everyone thinks at the start:

It's OK -- if it takes off, I'll get to work on it full-time.

If it doesn't -- I'll shut it down & get on with my life.

The problem?

Wild overnight success is rare

In most cases, you have to work at it over time.

Initially you have to work, for no/little money to:

You work 2 jobs, one at work, and one after hours.

This will be hard at times.

Buy your wife flowers

It's tough on your significant other

... and if you're anything like me, you can become myopic.

Don't forget about the rest of your life, and what really matters.

Oh, and... unless you're mad like me

don't have twins 2 months after launch!

But most of all...

Enjoy it!

Because unless you're superman

or Elon Musk

you've only got a couple of these in you!

Thanks for listening!

Thanks to Microsoft and Kiandra IT for their help

in organizing and publicising tonight's talk.


We'll be hanging around afterwards if you want to have a chat!