Wednesday, June 10th, 2009
If you can do it twice, you can do it three times

Many people don't understand just how scalable software is.  Computers are really good at performing simple tasks over and over.  They don't get bored.  They don't quit.

 

So let's look at some hypothetical software and talk about how difficult it is to do different things.

 

Let's say you're building a site that lets users publish blogs. To publish one blog (such as this one) you need a table to store the posts, and another table to store comments.  I've got more bells and whistles, but those two tables store just about everything.  So I'll assume that this hypothetical software only has those two tables.

 

This means that the software supports exactly one blog.  You can add as many posts as you want but there's no way to differentiate between multiple blogs.  In order to support more blogs, you need to add another table that stores information about each blog which links to the individual posts.  What I'm saying is that there is a fundamental difference between supporting one blog and supporting two.

 

Those of you that have experience programming know that adding the extra table takes about 10 minutes.  It's hardly any work at all, but there is work involved.  The thing is. once you have a table that stores information about the individual blogs, you can add as many entries to that table as you want.  There is no additional development work necessary to go from supporting two blogs to supporting three (or four or 5000).

 

I mention this because sometimes the way software is distributed makes it seem like it's difficult to duplicate certain things.  Maybe you only get to add so many user accounts or you can only perform an action a certain number of times before you have to pay more.  This is almost always an artificial limitation imposed by the software company as a way to get you to pay more.  Don't get me wrong, these companies have every right to use whatever fee structure makes them the most money, but we as consumers need to be more aware of these practices so that we know when to call BS.

 

I first thought of this because the Palm Pre application launching screen only allows for three different pages (or whatever they're called).  You can add links to apps and contacts anywhere you want on these three pages, but you can't make a fourth.  For a device that is generally very well designed, it seems crazy that they would allow more than one page without allowing as many as I want.

 

Notes:  Because at least one of you works at Facebook, I should say that scalability is an issue when you have millions of visitors every day.  Really high traffic websites can't just scale infinitely, but this isn't an issue for 99.9% of software out there. 

 

More Notes:  Sometimes making the jump from one to two doesn't actually require any work (as was the case with a project I recently had to write specs for).  Most of the time there is a little work.


Posted by Tyler King

This post has 2 Comments

June 10, 2009 at 01:14 pm
When it comes to ridiculously high traffic sites, everything you know about relational databases is wrong.

June 10, 2009 at 01:34 pm
Yeah, that doesn't surprise me.  I figure that by the time it matters, you're making enough money to hire someone that knows what they're doing

Leave a comment

Please fill this out to prove you aren't a robot.
You can Create an Account or Log in to hide this.
Name: Required
Email: Required. This will not be shared
Your Website: Optional
Comment:
Email me if other people comment on this post
Receive Email Updates:


About this site
Hi, I'm Tyler King and this is my blog. It's about programming, graphic design, UI design, and anything else related to software development. You can read this post to learn a little bit more about what I'm trying to do here.

If you're interested in learning more about me, check out my Portfolio, Bio or Resume.
Search
Tips
If you have any feedback about the site or you have a topic you'd like me to write about, send an email to tips@TylerKing.net.
Archives
2010 (2)
March (2)
2009 (88)
August (6)
July (17)
June (20)
May (33)
April (12)
Links

More about me:


My friends:


Sites that I really like:


Blog
Portfolio
Resume
Bio
Contact
© 2010 - Tyler King