138
Twittex: From Idea To Live in 7 Days Stuart Herbert Technical Manager www.gradwell.com [email protected] [email protected] Welcome to my talk for the PHPNW 08 conference.

Twittex - From Idea To Live in Seven Days

Embed Size (px)

DESCRIPTION

Slides from my talk at PHPNW 08.

Citation preview

Page 1: Twittex - From Idea To Live in Seven Days

Twittex:From Idea To Live in 7 Days

Stuart HerbertTechnical Managerwww.gradwell.com

[email protected]@stuartherbert.com

Welcome to my talk for the PHPNW 08 conference.

Page 2: Twittex - From Idea To Live in Seven Days

Let me introduce myself. My name is Stuart Herbert. You have probably come across my blog, which is syndicated on Planet PHP.

Page 3: Twittex - From Idea To Live in Seven Days

I’ve been a professional software engineer since 1994, and I’ve been working almost exclusively on web-based projects since 1993. My career has given me the opportunity to gain a lot of real-world experience with UK household names over the years, and I’ve also been an active contributor to open-source software since the early 1990’s.

Page 4: Twittex - From Idea To Live in Seven Days

I am currently the Technical Manager for Gradwell, a role I started in April 2008. We are what is fashionably called a Unified Communications company. We do premium quality broadband, email, hosting, and Voice-over-IP (VoIP). VoIP is the majority of our business in 2008, and we are the UK’s third largest VoIP provider, with an annual turnover in excess of two million GBP. Celebrating our 10th anniversary this year, the company was founded, and is run by Peter Gradwell, who has been very active in the UK internet scene for the past decade.

Page 5: Twittex - From Idea To Live in Seven Days

One of the services we offer, and the subject of this talk, is Twittex (http://twittex.com). Twittex allows you to receive SMS messages from your Twitter feed.

Page 6: Twittex - From Idea To Live in Seven Days

All you have to do is to register your twitter account and your mobile phone with Twittex.

Page 7: Twittex - From Idea To Live in Seven Days

Decide which friends you want to watch, and when they post a status update to Twitter, you will receive an SMS containing their status update.

Twittex is a very simple, and very straight forward service.

Page 8: Twittex - From Idea To Live in Seven Days

Twittex.com TeamTwittex was built from scratch in a seven day sprint by a team from Gradwell.

From left to right, back row: me (project management, queue servers, queue management, provisioning), Ben Cole (Twittex.com website), Daniel Leech (Gradwell symfony components), Matt Park (Twittex logo).

From left to right, front row: Ben Smithurst (SMS integration), Paul Thomas (server provisioning, server monitoring), Tim Douglas (Twittex.com website).

Page 9: Twittex - From Idea To Live in Seven Days

Objectives

1. How We Built Twittex In Just Seven Days

2. What We Got Wrong

3. What We’d Do Differently Next Time

In this talk, I want to share with you our experience of building Twittex.com. I’ll start off by explaining the key factors that allowed us to build this service from scratch in just seven days.

Page 10: Twittex - From Idea To Live in Seven Days

Objectives

1. How We Built Twittex In Just Seven Days

2. What We Got Wrong

3. What We’d Do Differently Next Time

Although we think it was a great achievement to build Twittex in just seven days, with hindsight we made a few mistakes along the way. Some of them were obvious, and should have been avoidable, but not all of them were, and I’d like to share those with you too.

Page 11: Twittex - From Idea To Live in Seven Days

Objectives

1. How We Built Twittex In Just Seven Days

2. What We Got Wrong

3. What We’d Do Differently Next Time

Finally, if we could go back in time and do it all over again, what would we change?

Page 12: Twittex - From Idea To Live in Seven Days

Questions Welcome!

Please feel free to ask any questions you have at any point during the talk. There will also be time at the end of the talk for questions.

Page 13: Twittex - From Idea To Live in Seven Days

Background

1. Introducing Twitter

2. Twitter and SMS

3. The Opportunity

4. The Competition

Not everyone has heard of Twitter - surprising as that seems - so let’s start by introducing Twitter and explaining what it does.

Page 14: Twittex - From Idea To Live in Seven Days

Twitter is a microblogging service hosted at http://twitter.com. Anyone can signup for free.

Page 15: Twittex - From Idea To Live in Seven Days

Once you’ve logged in, you can post short messages to the Twitter website (known as the public timeline). It’s a great way to broadcast to the world what you are currently up to.

Page 16: Twittex - From Idea To Live in Seven Days

Each user on twitter gets their own “feed” - a list of messages from people that you choose to follow. Here’s a screenshot from my Twitter feed. Your feed is also available via the Twitter API.

Page 17: Twittex - From Idea To Live in Seven Days

As well as keeping in touch with your friends without having to keep up with the latest blog posts, Twitter is also proving to be very useful for creating online communities. One example can be found on the PHPNW 08 conference website, where all posts tagged with #phpnw automatically appear in the right sidebar.

Page 18: Twittex - From Idea To Live in Seven Days

Background

1. Introducing Twitter

2. Twitter and SMS

3. The Opportunity

4. The Competition

So that’s what Twitter is. But where does SMS come into it?

Page 19: Twittex - From Idea To Live in Seven Days

Twitter allows you to register your mobile phone in the Devices tab.

Page 20: Twittex - From Idea To Live in Seven Days

Once you have registered a device, you simply navigate to a Twitter user that you’re following, and click where it says “Device Updates OFF”. Twitter will then send you an SMS every time that Twitter user posts a status update. And, best of all, these SMS messages are free.

Page 21: Twittex - From Idea To Live in Seven Days

Once you have registered a device, you simply navigate to a Twitter user that you’re following, and click where it says “Device Updates OFF”. Twitter will then send you an SMS every time that Twitter user posts a status update. And, best of all, these SMS messages are free.

Page 22: Twittex - From Idea To Live in Seven Days

This is a great service, and at Gradwell we’ve recently integrated it into our customer information feeds. Our customers have long been keen on getting SMS alerts about service-related problems, so we decided to achieve this by publishing our status information through Twitter.

Page 23: Twittex - From Idea To Live in Seven Days

Background

1. Introducing Twitter

2. Twitter and SMS

3. The Opportunity

4. The Competition

A couple of weeks after we’d relaunched our GradwellStatus service, Twitter made some changes to their service. These changes left us with a bit of a problem, but also with an opportunity to launch a new service of our own.

Page 24: Twittex - From Idea To Live in Seven Days

On Wed 13th August, Twitter decided that it could no longer afford to provide free SMS alerts for several countries, including the UK where Gradwell operates. If memory services, I believe these SMS alerts were costing Twitter 1,000 USD per Twitter user per year. That’s a lot of money for a firm with no revenue model!

Page 25: Twittex - From Idea To Live in Seven Days

The story was quickly picked up by TechCrunch (if you work on the web, and you don’t read TechCrunch, you should), and from there spread like wildfire around the ’net.

Page 26: Twittex - From Idea To Live in Seven Days

Background

1. Introducing Twitter

2. Twitter and SMS

3. The Opportunity

4. The Competition

Twitter’s withdrawal of free SMS alerts suddenly created a new market, one that possibly had real potential. Gradwell wasn’t the only company to recognise this by any means.

Page 27: Twittex - From Idea To Live in Seven Days

First to decide that they were going to launch a service was tweetSMS. They got the word out very quickly and very successfully.

Page 28: Twittex - From Idea To Live in Seven Days

tweetSMS was quickly followed by Zygo, which is run by former colleagues of mine from the old New Media department at Orange.

Page 29: Twittex - From Idea To Live in Seven Days

By 22nd of August - just nine days after Twitter withdrew their service - no less than eight rival services were competing in this new market. That’s a lot of competition!

Page 30: Twittex - From Idea To Live in Seven Days

We Can Do Better!(Or Have Fun Trying :)

At Gradwell, we decided that we wanted to compete in this market too. As we were the only telco launching a service (all our competitors are new media companies), we believed that we could provide a better service. And even if we failed, it would be a lot of fun to try, and it would also be a great way for me to learn a lot about my staff.

Page 31: Twittex - From Idea To Live in Seven Days

Timeline #1:Actual Events

Let’s start by looking at a timeline of what actually happened, and when. This timeline was compiled using BeeDocs, and at the PHPNW 08 conference, it was presented as an animated timeline.

Page 32: Twittex - From Idea To Live in Seven Days

I’ve split the timeline up into two streams. Along the top is what was happening out on the web, and we start with Twitter withdrawing their SMS service on the 13th August.

Page 33: Twittex - From Idea To Live in Seven Days

TechCrunch picked up the story on the same day, and began to spread the word far and wide.

Page 34: Twittex - From Idea To Live in Seven Days

On the very next day, TweetSMS announced their plans on Mashable (another website you should add to your Google Reader feed if you don’t have it already).

Page 35: Twittex - From Idea To Live in Seven Days

Zygo announced their service on the following day ...

Page 36: Twittex - From Idea To Live in Seven Days

... by the 22nd of August, there were eight competing services analysed by the OnlineJournalismBlog.

Page 37: Twittex - From Idea To Live in Seven Days

The second stream in the timeline looks at what we did at Gradwell. Our story starts on the 14th of August, when I came across the TechCrunch story in my Google Reader lists. I immediately thought that we could plug the gap created by Twitter, and that it was something we should do.

Page 38: Twittex - From Idea To Live in Seven Days

By the middle of the afternoon, Ben Smithurst and I had sketched out the architecture we wanted to build for the service, and felt confident with our underlying design.

Page 39: Twittex - From Idea To Live in Seven Days

By 7pm on the 14th, I phoned Peter up, and left him a voice mail asking for his approval to build what would become Twittex.

Page 40: Twittex - From Idea To Live in Seven Days

As Peter was camping out in the wilds of Scotland, we had to wait until he drove to the nearest town for some milk before he had a phone signal. This didn’t happen until the following morning.

Page 41: Twittex - From Idea To Live in Seven Days

With approval secured, we settled down to getting on with the work. Ben Cole immediately set to work on building the website.

Page 42: Twittex - From Idea To Live in Seven Days

We spent a few hours coming up with a name for the service, finally settling on twittex. As soon as I approved the name, we registered the domain to make sure no-one else came up with the same name :)

Page 43: Twittex - From Idea To Live in Seven Days

Shortly after, we had ourselves a logo. Although Gradwell doesn’t have a graphic designer in-house, we’re very lucky that one of our staff can turn his hand to this sort of work, and that he was very happy to make the time to do so.

How long would it take you to get a new logo for a service that you wanted to launch? Days? Weeks? Longer? In a show of hands at the PHPNW 08 conference, many of the audience said that it would take weeks or longer to get a logo designed.

Page 44: Twittex - From Idea To Live in Seven Days

We carried on working into the evening, and by 7pm we had the ability to send SMS messages out to mobile phones.

Page 45: Twittex - From Idea To Live in Seven Days

By 9:30pm, we’d finished provisioning the servers to run the queues on (more on the queues later on), and had finished compiling and installing MySQL onto the servers.

So to recap: on the Wednesday, Twittex announced that it was withdrawing the SMS service. By the end of the Friday, we had our servers, our domain, our logo, and the ability to send out SMS messages.

Page 46: Twittex - From Idea To Live in Seven Days

The team continued to work throughout the weekend. Whilst work was continuing on the web site, we spent Saturday and Sunday writing the queue management code.

Page 47: Twittex - From Idea To Live in Seven Days

We also sorted out billing and payments on the Saturday.

Page 48: Twittex - From Idea To Live in Seven Days

On Sunday, we adopted the 960 grid system by Nathan Smith, and began using it to prototype the user-visible parts of the website.

Page 49: Twittex - From Idea To Live in Seven Days

On the Monday morning, whilst work on the website was continuing, we put the server monitoring in place.

Page 50: Twittex - From Idea To Live in Seven Days

And, on the Tuesday, we’d finished the website, and opened it up to staff for internal testing. We were kept very busy finding and fixing corner cases in our code that day!

Page 51: Twittex - From Idea To Live in Seven Days

With all the obvious bugs squashed, on the Wednesday, we were ready to launch. We contacted TechCrunch to announce our service ...

Page 52: Twittex - From Idea To Live in Seven Days

... we also contacted Twitter’s own PR people ...

Page 53: Twittex - From Idea To Live in Seven Days

... but heard nothing back from them at all. At the same time, we sorted out an introductory offer price ...

Page 54: Twittex - From Idea To Live in Seven Days

... and put the service live.

Page 55: Twittex - From Idea To Live in Seven Days

Shortly after, Ben and I had to jump in the car and drive up from Bath to Sheffield for an important meeting the following day. Unfortunately, there was a serious accident which closed the M5 for four hours, giving us plenty of time to do even more bug fixing whilst we waited for the road to re-open. Laptops and mobile broadband are essential tools for any developer who travels!

Page 56: Twittex - From Idea To Live in Seven Days

So, we launched our service just 7 days after Twitter announced they had withdrawn theirs, and what’s more we were the first folks to have a working service live. Were we swamped by demand? No. One of the reasons was that our initial pricing was badly wrong. We had to reduce our pricing from 10p per SMS message to 5p per SMS message, and we had to do it quickly.

Page 57: Twittex - From Idea To Live in Seven Days

With our meeting in Sheffield out the way, we headed our separate ways (Ben back up north, me back to South Wales), doing more bug fixing on the way. We improved the log messages that Twittex writes, to help us diagnose problems quicker.

Page 58: Twittex - From Idea To Live in Seven Days

We also created a new Twitter account just for testing twittex with. Up til now, we’d all be using our personal Twitter accounts, which put a bit of a limit on the type of test messages we wanted to send.

Page 59: Twittex - From Idea To Live in Seven Days

Our friends at PlusNet kindly mentioned us on their blog - our very first bit of publicity!

Page 60: Twittex - From Idea To Live in Seven Days

As we still hadn’t heard anything from TechCrunch or Twitter at all, and hadn’t been mentioned by them either, we decided to widen the net by contacting The Register and Mashable. Sadly, neither website wrote anything about us :(

Page 61: Twittex - From Idea To Live in Seven Days

On the following Monday, Jemima Kiss wrote a piece for the Guardian’s website about Twitter and SMS messages. We dropped her a quick email about our service. Jemima was kind enough to write back - the only one who did out of all the organisations we contacted - letting us know that we’d basically missed the boat.

By keeping below the radar until we had a service to launch, we’d completely missed the news cycle.

Page 62: Twittex - From Idea To Live in Seven Days

But Twittex Really Started Months Ago!

So that’s how we built Twittex in just seven days. Except - it’s not the whole story. Work on Twittex had actually started *years* before.

Page 63: Twittex - From Idea To Live in Seven Days

Huh?

Years before? What do I mean by that?

Page 64: Twittex - From Idea To Live in Seven Days

Twitter.com

Twittex.com

SecPayNetsuite Gradwell

Let’s start by looking at the architecture for Twittex.com. We have the Twittex.com website, built in just seven days.

Page 65: Twittex - From Idea To Live in Seven Days

Twitter.com

Twittex.com

SecPayNetsuite Gradwell

It pulls feeds down from Twitter ...

Page 66: Twittex - From Idea To Live in Seven Days

Twitter.com

Twittex.com

SecPayNetsuite Gradwell

... and then re-uses Gradwell’s existing telco infrastructure.

Page 67: Twittex - From Idea To Live in Seven Days

Twitter.com

Twittex.com

SecPayNetsuite Gradwell

An important part of this infrastructure is our ERP/CRM system, Netsuite. As a company with a multi-million pound turnover, Gradwell has to produce audited accounts every year. A company of our size simply cannot create a new service, hook it up to a PayPal shopping cart, and leave it at that.

Page 68: Twittex - From Idea To Live in Seven Days

Twitter.com

Twittex.com

SecPayNetsuite Gradwell

For payments, we use SecPay, because it’s the only payment gateway in the UK that’s certified to work with Netsuite at this time.

Page 69: Twittex - From Idea To Live in Seven Days

PHP ServersPHP Servers MySQL Server

PHP ServersQueue Servers

Software

Load-balancers

Software

Load-balancers

That’s the architecture for Twittex. If we look inside the Twittex.com box, we’ll find a pair of PHP servers.

Page 70: Twittex - From Idea To Live in Seven Days

PHP ServersPHP Servers MySQL Server

PHP ServersQueue Servers

Software

Load-balancers

Software

Load-balancers

These servers sit behind a pair of load-balancers.

Page 71: Twittex - From Idea To Live in Seven Days

PHP ServersPHP Servers MySQL Server

PHP ServersQueue Servers

Software

Load-balancers

Software

Load-balancers

Twittex uses MySQL to hold subscriber information.

Page 72: Twittex - From Idea To Live in Seven Days

PHP ServersPHP Servers MySQL Server

PHP ServersQueue Servers

Software

Load-balancers

Software

Load-balancers

And finally we have a set of queue servers which manage the job of polling Twitter for new messages.

Page 73: Twittex - From Idea To Live in Seven Days

At the heart of our infrastructure is VMWare ESX, which we adopted late 2007. ESX gives Gradwell the ability to provision new servers extremely quickly. We don’t have to wait for new hardware to arrive, and we don’t have to have someone physically installing kit into racks in a data centre.

Page 74: Twittex - From Idea To Live in Seven Days

We’ve been using symfony for over a year now as our framework of choice. We chose symfony because we felt it had a more responsive and more supportive community that its competitors.

Page 75: Twittex - From Idea To Live in Seven Days

As I mentioned, we use MySQL for our databases. I can’t imagine there’s anyone reading this who hasn’t heard of MySQL, but I’ve included it for completeness :)

Page 76: Twittex - From Idea To Live in Seven Days

We adopted the 960 grid system for our prototyping, and our live Twittex.com site also uses 960 gs. If you haven’t come across it before, check it out. We found it extremely useful. Using pure CSS, you can create pages that are 960 pixels wide, cut up into 12 or 16 columns. These columns can then be merged to form the final layout. The only change we’d love to see Nathan make to his system would be to add a 20 column version, to allow for even more precise layouts.

Page 77: Twittex - From Idea To Live in Seven Days

For the queues, we used the Q4M storage engine for MySQL 5.1.

Page 78: Twittex - From Idea To Live in Seven Days

Q4M allows you to create first-in, first-out queues that can be accessed via SQL SELECT statements. The really nice thing about using Q4M is that our own code doesn’t have to handle any sort of locking at all. We can have multiple processes emptying the queues, and Q4M ensures that any one piece of data from the queues isn’t presented to more than one of these processes.

I came across Q4M when it was selected for the architecture of a Japanese rival to Twitter.

Page 79: Twittex - From Idea To Live in Seven Days

Why Queues?

But why use queues at all? Let’s take a look at that.

Page 80: Twittex - From Idea To Live in Seven Days

1 Min Queue

2 Min Queue

3 Min Queue

4 Min Queue

5 Min Queue

No Twitter Message :(

Twitter Message :)

Twittex User

We start off with an individual Twittex user.

Page 81: Twittex - From Idea To Live in Seven Days

1 Min Queue

2 Min Queue

3 Min Queue

4 Min Queue

5 Min Queue

No Twitter Message :(

Twitter Message :)

We put the data about this user into a queue. We check all data in this queue every minute.

Page 82: Twittex - From Idea To Live in Seven Days

1 Min Queue

2 Min Queue

3 Min Queue

4 Min Queue

5 Min Queue

No Twitter Message :(

Twitter Message :)

Eventually, our Twittex user makes it to the front of the queue.

Page 83: Twittex - From Idea To Live in Seven Days

1 Min Queue

2 Min Queue

3 Min Queue

4 Min Queue

5 Min Queue

No Twitter Message :(

Twitter Message :)

We go and check Twitter, to see if there any new messages for this user. If there are new messages ...

Page 84: Twittex - From Idea To Live in Seven Days

1 Min Queue

2 Min Queue

3 Min Queue

4 Min Queue

5 Min Queue

No Twitter Message :(

Twitter Message :)

SMS Sent

... we send out the messages as SMS’s, and put the user’s record back onto the end of the queue.

Page 85: Twittex - From Idea To Live in Seven Days

1 Min Queue

2 Min Queue

3 Min Queue

4 Min Queue

5 Min Queue

No Twitter Message :(

Twitter Message :)

Eventually, the user once again makes it to the front of the queue.

Page 86: Twittex - From Idea To Live in Seven Days

1 Min Queue

2 Min Queue

3 Min Queue

4 Min Queue

5 Min Queue

No Twitter Message :(

Twitter Message :)

What happens where there are no new Twitter messages? Well, we won’t want to poll Twitter every minute for every user. That’s a lot of wasted effort.

Page 87: Twittex - From Idea To Live in Seven Days

1 Min Queue

2 Min Queue

3 Min Queue

4 Min Queue

5 Min Queue

No Twitter Message :(

Twitter Message :)

Instead, we have additional queues, which are checked less and less frequently.

Page 88: Twittex - From Idea To Live in Seven Days

1 Min Queue

2 Min Queue

3 Min Queue

4 Min Queue

5 Min Queue

No Twitter Message :(

Twitter Message :)

The user’s record works its way through these queues, until eventually it hits our 5 minute queue.

Page 89: Twittex - From Idea To Live in Seven Days

1 Min Queue

2 Min Queue

3 Min Queue

4 Min Queue

5 Min Queue

No Twitter Message :(

Twitter Message :)

If there are still no Twitter messages for the user, the user’s record stays in the five minute queue. We used to have 10 minute and 15 minute queues too, but during internal testing we decided that they made for a poor user experience.

Page 90: Twittex - From Idea To Live in Seven Days

1 Min Queue

2 Min Queue

3 Min Queue

4 Min Queue

5 Min Queue

No Twitter Message :(

Twitter Message :)

If there are any messages for the user on Twitter ...

Page 91: Twittex - From Idea To Live in Seven Days

1 Min Queue

2 Min Queue

3 Min Queue

4 Min Queue

5 Min Queue

No Twitter Message :(

Twitter Message :)

... we move them straight back into the 1 minute queue. This makes Twittex very responsive if you strike up a conversation through Twitter. The user’s record will then work its way back down the queues as before until there’s another message on Twitter for the user.

Page 92: Twittex - From Idea To Live in Seven Days

Timeline #2:Groundwork

Our architecture and our infrastructure re-uses technology that we adapted long before we had the idea to create Twittex. Without this re-use, we could not have built Twittex in just 7 days.

Page 93: Twittex - From Idea To Live in Seven Days

Here’s another timeline, this time looking at all the things we did in the past that made Twittex possible.

Page 94: Twittex - From Idea To Live in Seven Days

We’ve been using AQL for sending and receiving SMS messages since at least October 2003. AQL provide a very easy to use RESTful API, and we’ve had a lot of practice with it over the years.

Do excuse this rant, but if you’re going to build an API for any sort of service, do make it RESTful. SOAP APIs should never be the only API you offer. For a start, PHP’s SOAP client is a toy, and currently does not implement enough of the SOAP standard to make it inter-operate with real enterprise SOAP APIs. Secondly, too many SOAP API authors need to learn that WSDL is not documentation - it is specification. And finally, SOAP APIs also suffer from poor design, because they focus on exposing objects rather than business services. So, please please please, stick with simple but effective RESTful APIs :)

Page 95: Twittex - From Idea To Live in Seven Days

We adopted Netsuite for ERP and billing in May 2007. As a company, we already have an established platform to handle new products, and the financial accounting that goes with them.

Page 96: Twittex - From Idea To Live in Seven Days

We’ve been using symfony since June 2007, and in that time we’ve built many re-usable components for it. We’re also very lucky that we have an internal champion for symfony, who not only advocates for its use but also that it’s used in the proper manner. This keeps our code lean, clean, and very easy to reuse.

Page 97: Twittex - From Idea To Live in Seven Days

We made ESX our main platform earlier this year. ESX gives us flexibility that we couldn’t afford if we were still working solely with physical hardware. How would you launch a new service in just 7 days if you had to wait for new hardware to be delivered first?

Page 98: Twittex - From Idea To Live in Seven Days

The Twitter APIs are very easy to use, being REST based, but nonetheless we’d already had experience working with them. We’d used them in July to integrate our GradwellStatus.com website with Twitter.

Page 99: Twittex - From Idea To Live in Seven Days

Twittex was the first time we’d used Q4M at Gradwell, but it wasn’t something we had to go out and find on the day. A big part of my job as Technical Manager (CTO/CIO in US language) is to have a wide knowledge of what’s available in the open source community and beyond just in case we ever have a need to introduce something new to our established technology stack. I rely heavily on Google Reader to help me keep on top of hundreds of RSS feeds from around the net, as well as attending conferences, trade shows, and talking to my peers.

Page 100: Twittex - From Idea To Live in Seven Days

What Made It Possible

1. We Were Prepared

2. We Were Up For It

3. An Extension Of What We Already Do

So, to recap the elements that made Twittex possible. First and most importantly, we were well prepared. We have been consistent over the years in adopting technology that is simple to use and that gives us increased flexibility.

Page 101: Twittex - From Idea To Live in Seven Days

What Made It Possible

1. We Were Prepared

2. We Were Up For It

3. An Extension Of What We Already Do

It had already been an extremely hectic week, but with no prior notice, my team willingly gave up their evenings and the weekend to work on this project. Do you think we would have been able to build this with a 9-5 mentality? We would have been too late to market, and the project would probably have failed, because we would not have managed to maintain the momentum in the first place.

In questions after the talk, I was asked why my guys were up for it. I think it comes down to two key things: they thought it was an interesting project to do, and to them programming isn’t a job, it’s a vocation. It’s what they love to do.

Page 102: Twittex - From Idea To Live in Seven Days

What Made It Possible

1. We Were Prepared

2. We Were Up For It

3. An Extension Of What We Already Do

Finally, we believe that a critical factor was the nature of the work. Gradwell is an established and successful telco, and is already used to handling this sort of messaging. We’re not a New Media company suddenly trying to get our head around a different paradigm. This is stuff we know how to do, so we can just get on and do it.

Page 103: Twittex - From Idea To Live in Seven Days

What We Got Right

1. Recognised Opportunity

2. Authority To Proceed

3. Technology

4. Delivery Of Working Solution

What did we get right? First of all, we very quickly recognised that there was an opportunity to be tackled. We needed to do something, because we had been relying on Twitter for SMS updates to our customers. We didn’t um and ah about it, we got our heads down straight away on solving the problem.

Page 104: Twittex - From Idea To Live in Seven Days

What We Got Right

1. Recognised Opportunity

2. Authority To Proceed

3. Technology

4. Delivery Of Working Solution

Despite the amusing story of how long it took to reach Peter for approval, I’m actually very pleased about how quickly we had authority to proceed with the project. We had the green light just 24 hours after coming up with the idea.

In my own experience, most companies are utterly crap at making decisive decisions, especially in such a short period of time. The feedback I had after the talk was that many companies couldn’t make decisions this quickly.

Page 105: Twittex - From Idea To Live in Seven Days

What We Got Right

1. Recognised Opportunity

2. Authority To Proceed

3. Technology

4. Delivery Of Working Solution

I’m very happy indeed with our choice of technology. From ESX through to Q4M, from symfony through to the 960 grid system, everything we used made the job much easier - not much harder. At no point were we having to fight with the technology. We were able to just get on with creating the service.

Page 106: Twittex - From Idea To Live in Seven Days

What We Got Right

1. Recognised Opportunity

2. Authority To Proceed

3. Technology

4. Delivery Of Working Solution

Let’s not forget - we actually launched a working service. It works very well.

But unfortunately, it wasn’t successful in attracting a large user base ...

Page 107: Twittex - From Idea To Live in Seven Days

What We Would Change

1. Marketing

2. Pricing

3. Project Management

The first thing we got wrong was our marketing. We got this badly wrong. We deliberately kept off the radar until we had a working service. We hadn’t done a sprint like this before, so we weren’t certain how long it would take us to build a launch service. By the time we wanted to tell the world about our marvellous creation, the world was no longer interested. The news cycle had moved on, and we had missed the boat. Those behind the news cycle, it turns out, have neither the time nor the attention span to care about working services :)

In my mind, tweetSMS did exactly the right thing. They put up a ‘sign up now - coming soon’ page, and they put it up very quickly. This got them coverage, and no doubt it allowed them to hoover up many of the early adopters that Twittex was also aimed at.

Page 108: Twittex - From Idea To Live in Seven Days

What We Would Change

1. Marketing

2. Pricing

3. Project Management

Boy, did we get this wrong too :) My initial pricing, at 10p a message, was designed to cover our costs. That was a mistake. We had to drop our prices after the first day, once we realised that our competitors were planning on launching services that were around the 5p a message mark.

Instead, I should have made the price as low as possible, and used pricing and our existing bulk discount to gain the largest market share over our competitors.

As it turns out, the market for paid SMS messages from Twitter in the UK appears to be tiny. No-one has made a killing on this at all. The wholesale price for SMS messages is just too expensive. I’m extremely interested in making Twittex a free service supported by advertising. If there’s anyone out there who’d be interested in making this possible, do get in touch :)

Page 109: Twittex - From Idea To Live in Seven Days

What We Would Change

1. Marketing

2. Pricing

3. Project Management

I made some obvious mistakes with the project management too. The main one was that we only started prototyping the web pages themselves three days into the work on the website. What I should have done was had a bit more balls, and committed extra resources on the Thursday (before we had approval to proceed) to create the prototypes up front.

Page 110: Twittex - From Idea To Live in Seven Days

Timeline #3:A Better Timeline

If I could go back in time and do this project all over again, knowing what I know now, what would be different?

Page 111: Twittex - From Idea To Live in Seven Days

Twitter would still have stopped sending SMS updates out on the 13th ...

Page 112: Twittex - From Idea To Live in Seven Days

... and TechCrunch would still have spread the word on the same day.

Page 113: Twittex - From Idea To Live in Seven Days

TweetSMS would still have been first to get the word out that they were launching a replacement service.

Page 114: Twittex - From Idea To Live in Seven Days

But if I could do this all over again, we would have gotten the word out to anyone and everyone as quickly as possible too. The earliest we could have done this would have been the 15th, after the approval to proceed.

Page 115: Twittex - From Idea To Live in Seven Days

Would Zygo (and all the other competitors) have announced too, if we had made our intentions known? That’s impossible to speculate on.

Page 116: Twittex - From Idea To Live in Seven Days

... but I can’t help but wonder whether we’d have ended up with a two horse race instead of an eight-way finish.

Page 117: Twittex - From Idea To Live in Seven Days

Inside Gradwell, some things would stay the same. I’m very happy with how early we recognised the opportunity.

Page 118: Twittex - From Idea To Live in Seven Days

Sketching out the architecture up front is a necessary step, and I don’t think we could have achieved it any sooner than we did.

Page 119: Twittex - From Idea To Live in Seven Days

But one thing I would change would be to prototype the website up front too - even before having approval to proceed.

Page 120: Twittex - From Idea To Live in Seven Days

I don’t think we could have made the project request any sooner. We needed to have confidence that we could build the service first.

Page 121: Twittex - From Idea To Live in Seven Days

We got approval to proceed very quickly.

Page 122: Twittex - From Idea To Live in Seven Days

If we had had the prototypes up front, the website would have been built even quicker. We would probably have taken a day out of the timeline.

Page 123: Twittex - From Idea To Live in Seven Days

We should have created the twitter test account up front, so that we could do a wider range of testing during development. Whether or not this would have allowed us to launch earlier is hard to say, but it would have perhaps reduced the amount of bug fixing we did post launch.

Page 124: Twittex - From Idea To Live in Seven Days

I’m very happy with how quickly we came up with a name and purchased the domain.

Page 125: Twittex - From Idea To Live in Seven Days

We should have paid more attention to the commercials up front. We should have had a clearer idea about them, so that we got our launch pricing right first time.

Page 126: Twittex - From Idea To Live in Seven Days

I’m very happy with how quickly we had the logo done for the site.

Page 127: Twittex - From Idea To Live in Seven Days

Our integration with AQL was done very quickly, and I’m very happy with how that went.

Page 128: Twittex - From Idea To Live in Seven Days

I’m also extremely happy with how quickly we had working servers to deploy code onto. In the past, I worked with organisations who rely on third parties such as Rackspace to provision new servers. The lead times are often 20 working days or longer, because new hardware must be provided.

Page 129: Twittex - From Idea To Live in Seven Days

We probably couldn’t have built the queue management code any quicker ...

Page 130: Twittex - From Idea To Live in Seven Days

... and we probably couldn’t have had the billing arrangements in place much quicker.

Page 131: Twittex - From Idea To Live in Seven Days

I’m happy with the time it took to get the server monitoring in place. This couldn’t have been done earlier, as we needed to provision the servers first before hooking them up to our monitoring system.

Page 132: Twittex - From Idea To Live in Seven Days

If we’d had the prototypes up front, the site would probably have been ready for internal testing a day earlier.

Page 133: Twittex - From Idea To Live in Seven Days

... and we would have been able to launch the site at least one day earlier. Who knows? Just maybe we might have been able to launch on the Monday :)

Page 134: Twittex - From Idea To Live in Seven Days

I doubt we would have been able to avoid being stuck in the traffic jam on the M5.

Page 135: Twittex - From Idea To Live in Seven Days

We would have been able to avoid having to reduce our prices, if we’d got the commercials right up front.

Page 136: Twittex - From Idea To Live in Seven Days

I’m comfortable with having had to improve our log messages after the service had launched. I think it made sense to focus on getting the customer-visible side of the service working first, and then going back and polishing up things behind the scenes to reduce the support burden.

Page 137: Twittex - From Idea To Live in Seven Days

I’d like to think that our friends at PlusNet would still have mentioned us when they did.

Page 138: Twittex - From Idea To Live in Seven Days

Your Thoughts?

That’s what we think would have happened had we done a few things differently. What do you think?

Thank you for viewing this presentation. I hope you’ve found it interesting and that you’ve learned something from it. We certainly learned a lot from doing this project. If you have any questions or feedback, please get in touch with me [email protected].