CASE STUDIES

The Story of Startup X

(that's not the real company name, you know...)

Startup X called us 8 weeks before their go-live date. They were anxious, because they said they HAD to meet the deadline. They had been working on the system for a few months before then, and the developer they were working with was a few weeks late. It wasn’t really clear when the system will be ready, and bugs kept popping up, while not all features were implemented.
Startup X decided to get a second opinion, and called zx900 for evaluation. They told us that they’re pretty happy with what they have, and that they just needed the development to work a little faster.

We talked to the founders of the company, and we really liked them. Young, aspiring, and really looking to get things done. We decided to give it a go, and asked for access into their source codes.

Unfortunately for everyone involved, once we dug into the code, we found that the best way to describe the system state is “prototype”. The system was actually looking quite nice from the outside. But when we dug deeper we found a few disasters waiting to blow up in everyone’s face:

  • The system could not carry more than 10(!!) users at once. We asked the founders how many users they expect initially, and they had told us they think they can get 100K users quite quickly. To be honest, we’ve seen quite a few web startups, and we knews that getting this amount of users within a few weeks is quite a challenge. But based on the amount of the money the company had alloted for advertising after go-live, we also knew that it’s going to be more than 10 users.
  • The code was completely unmaintainable. The classic definition of spaghetti code. If you’re technical, imagine a few dozen-thousands of lines of code, all shoved into 3-4 methods (functions). We immediately realized why the developers of the system stopped making progress on it at some point - any developer would feel like a rat in a maze if they had to develop in an environment like that, and making progress was really really hard.
  • The system was incapable of scaling. You could not throw hardware at problems, because you’d hit a bottle neck right away in the form of a packed database.
  • There were no security considerations - anyone with just a bit of knowledge in programming could hack their way into the heart of the system, and create free-form transactions.

 The first thing we had to do was having a long and unpleasant chat with the founders of Startup X, explaining to them that they are in deep trouble. It’s never an enjoyable task to tell someone their baby-venture is at risk, but the good news was that we had claimed we might be able to help. In fact, we told Startup X that they had to change their roadmap completely, give up any new feature, and spend the entire remaining time in transforming the system from a prototype, to an actual system that can carry the load.

Startup X did not take it lightly. They called on an industry expert in - a CTO for a major web company - and asked him to step in and make his own assessment. The guy did come in, and after snooping around came back with similar conclusions to our own, with one twist. He said - yeah, the system is completely broken and unworthy, but no one can fix it in the time you have left... His recommendation was to reschedule everything.
That’s when we asked for a joint meeting with this great pro CTO, along with the founders of Startup X. We laid out our plans for stabliizing and scaling the system, making it bullet-proof for performance spikes, fixing a few problematic points in the code for security, scalability, and obvious bugs, and at the same time virtually leaving the spaghetti as is, because we had no time to untangle the code. The guy said “OK, I cannot disprove your theory, but you guys are gonna suffer, with a great risk of failure.” He did wish us good luck, though :)

We headed to work. What do you think happened eventually? (Remember, this is a case study we’re proud of)

We’re not magicians. On the contrary - we are very down to earth. The only reason we were willing to work with Startup X is that they were open enough to let us flip their entire roadmap upside down, and recreate it to suit THEIR business needs. These guys were real pros, but technology is our bread and butter, and being the pros that they are, they knew they had to listen in order to survive.

6 months later, we are still the de-facto CTOs and development team for StartupX. We now have a stable piece of code, that we have almost completely refactored along time, and with every new feature that came along after the initial version. StartupX story is our story - this is what we do for a living.

Oh, and they did get those 100K users in around 3 weeks. All we can say is WOW !