Posts Tagged ‘Software as a service’

New Version Every Other Week for Three Years?

February 16, 2011

I get up every morning determined to both change the world and have one hell of a good time. Sometimes this makes planning my day difficult.

E. B. White
US author & humorist (1899 – 1985)

Releasing a working version to customers every two weeks is fun.

  • It is fun for customers who use the features instead of watching fictitious  “product road maps”.
  • It is fun for developers who see their work is actually used.
  • It is fun for the executives who can change the business priorities quickly.
  • If is fun for product managers who can measure actual usage.
  • It is fun for the R&D manager ,as the problems can not be hidden for long.

In my company,  we delivered 72 versions to customers  in three years.

Programming in the large and programming in th...

Image via Wikipedia

Here is one way to do it:

  • Hire top talent for development , QA , IT and operations.
  • Deliver the product as a Service (SaaS). Upgrading one instance is much easier than upgrading 10,000.
  • Bi weekly synchronization meetings on Monday and Thursday. Monday is just team leaders and Thursday is all of R&D.
  • Invest early in QA automation. We invested $20,000 in Automation infrastructure at a very early stage.
  • Invest in Unit-Testing as much as possible.
  • Avoid branching. Branches are evil. Merges are Yikes. One branch is good, two is max.
  • Invest in the “Ugly stuff”. Deployment scripts, upgrade scripts, database consistency.
  • Constructive dictatorship. Every code change  has a ticket. Every. No exceptions.Really.
  • First week is for coding. Than it is feature freeze. Three days for QA and bug fixes.Code freeze. Two days for final QA and critical fixes only. Release on Sunday.

In the next post I’ll try to answer the tricky questions: What about longer features? How not to scare the customers? and more.

Commodity Clouds, IAAS and PAAS – Part II

February 2, 2011

In the first post we looked at some common mistakes resulting in premature “Commoditization” declarations.

In this post we would look at IAAS and PAAS in more detail.

In software, it is rare to have Nobel-prize-worthy-discoveries.  Still, it does not mean all inventions  are trivial. At the high level, analyst point of view, Windows XP, Vista and Windows 7 share the same technology. In the real world, there are many differences. In the real world, Vista was a complete failure although it was “a commodity operating system” and windows 7 was well accepted.

And these days we have people speaking about IAAS ( infrastructure as a service) as a “dying dinosaur” because PAAS (platform as a service) is the new king. They must be kidding.  Lets reconsider the facts.

  • Force.Com, the first  PAAS, is not working out. I don’t know of any major company that built their entire successful new company on top it. The licensing, performance and “Governor rules” caused it to fail. What works nicely inside salesfroce.com did not work well for the rest of the world. Maybe that why they bought Heroku.  Did any of their other acquisitions (DimDim\ManyMoon\Jigsaw\Etacts) run on Force.Com ?
  • VMFORCE.COM does not exist yet, as far as I can tell. It is just a press release , at this stage. When I read through the hype, there is no cloud portability at all, and it still looks like running JAVA on a single server with no scaling or multi-tenant capabilities. The home page seems quite stale.
  • AZURE is not much better off.  At its current stage Azure is more similar to COM+ than it is to .NET . Microsoft has invested so much marketing money on Azure that people think it actually has something that can compete with EC2. In the real world, Microsoft has no solution to run Virtual Machines in the cloud for public access. Their  PAAS solution can not run any of their applications – SharePoint,Exchange,Office, SQL Server Dynamics are all running on  internal IAAS solution, not on Azure PAAS. Wait 3-7 years for this to happen.
  • Did anyone hear of “Facebook” or “Twitter” using any PAAS platform ? Funny, but they are not keen to run their services on their biggest competitors platform. I wonder why.
  • Even Amazon EC2, who is by far the market leader and innovator , has long, long  road for to achieve the core feature set. Seriously. They added user management few weeks ago,only through the API, after four years in production. That’s probably the #1 feature any enterprise expects to find in any software service .
  • No one has really solved the problem of WAN based storage replication (despite bandwidth being “a commodity” 🙂 ).  This is critical for IAAS success in the enterprise.

The most expensive and longest effort is rewriting existing software. There were trillions of dollars spent in coding existing applications. Why would anyone rewrite the same business logic in a new platform, if they don’t need the scale?

VMWARE succeeded because it has great economic benefits without requiring a rewrite. PAAS solution is probably the right way to go in the long run, but might stay marginal for quite long time, IMO. IAAS has  a great start and would continue to evolve, but is far from being a commodity when looking beyond the hype.

Related Articles

[picapp align=”none” wrap=”false” link=”term=platform+shoes&iid=9588154″ src=”http://view1.picapp.com/pictures.photo/image/9588154/year-old-taylor-momsen/year-old-taylor-momsen.jpg?size=500&imageId=9588154″ width=”234″ height=”351″ /]

Does SLA really mean anything?

January 31, 2011

I believe most SLA’s (Service Level Agreements) are meaningless.

In the world of Software as a Service and cloud computing it has become a very popular topic, but the reality is very different from theory.

In theory, every service provider promises 99.999% of availability which means less than 6 minutes per year.

In reality, even the best services (Amazon, Google, Rackspace) had events of 8 hours of availability problems which means they are at 99.9% availability, at best.

High Availability 99.999 Downtime Table

High Availability 99.999 Downtime Table from Wikipedia

Moreover , the economics just don’t make any sense. SLA’s can not replace insurance.

Imagine the following scenario.

E-commerce site “MyCatsAndSnakes.Com” builds its consumer site in “BestAvailabilityHosting” which uses networking equipment from “VeryExpensiveMonopoly, INC.

If MyCatsandSnakes is unavailable, the site owner “Rich Bastardy” loses $100,000 per hour of downtime.

Rich pays BAHosting $20,000 per month and they promise him %99.999 avilability.

BAHostig bought two core routers in high availability mode ,connected to three different ISP’s. Each router costs $50,000 and Platinum support is another %30 per year. So total cost is $130,000 for the first year.

One horrible day, the core routers have a software bug and the traffic to the MyCatsandSnakes is dead.

Since the routers have the same software the high availability does not help to resolve the issue and VeryExpensiveMonopoly top developers have to debug the problem on site. after 8 hours of brave efforts, cats and snakes are being sold online again.

Try to guess the answers to the following questions:

  • How much money did Rich lose? (Hint: $100,000*8 )

  • How much money would Rich get from BestAvailabilityHosting? ( Hint:  (8/(24*30))*$20,000 = $166 )
  • How much money would BAHosting get back from VeryExpensiveMonopoly? (Hint:$0)

The networking vendor,VeryExpensiveMonopoly, does not give any compensation for equipment failure. This is true for all hardware and software vendors.

They don’t even have SLA for resolution time. The best you can get with platinum support is “response time”, which is not a great help.

As a result , the hosting provider can not have back to back guarantee or insurance for failures in networking.

The hosting provider limits its liability to the amount of money it receives from Rich ($20,000 per month), which makes sense.

Moreover, the service provider would only compensate Pro Rata, so the sum becomes even more neglible.

But that does not help Rich at all, as his losses are far bigger. He lost $800,000 of cats and snakes deliveries to young teenagers across Ohio.

The real answer, IMO, is “Insurance”. If Rich really wants ro mitigate his risk, he can buy an insurance for such cases.

The insurance company should be able to asses the risk and apply the right statistical costs model . Asking a service provider to do it is useless.

SLA’s might be a good way to set mutual expectations, but they are certainly not a replacement for a good insurance policy or a DRP.

Here is an interesting review of CRM and SalesFore.Com (lack of ?) SLA . And here is Amazon’s SLA for EC2    and RackSpace.

Amazon: “If the Annual Uptime Percentage for a customer drops below 99.95% for the Service Year, that customer is eligible to receive a Service Credit equal to 10% of their bill”

GoGrid promises 10,000% but “No credit will exceed one hundred percent (100%) of Customer’s fees for the Service feature in question in the Customer’s then-current billing month”

RackSpace promises 100% avilability , but “Rackspace Guaranty: We will credit your account 5% of the monthly fee for each 30 minutes of network downtime, up to 100% of your monthly fee for the affected server.” 

Again, i don’t think one can blame these service providers, but the  gap from the perception seems major.

There are three real answers for customers who want an SLA from a service provider:

1) It would be better than on premise

2) How much are you willing to pay for extra availability?

 3) We have a great insurance agent 🙂