Should one get performance by iterative optimization or through clean design?
It goes without saying that there are strong arguments for both approaches as one simply has to look at the history or academic research and industrial business strategies.
The part of the question that I find fascinating is the balancing act that is needed when operating on a limited budget.
The iterative optimization philosophy argues that getting a product out the door is the most critical requirement for any endeavor as no product means no consumers. Then if performance is insufficient, iteratively profile and optimize the system by removing bottlenecks.
The performance by design philosophy argues that the best way to hit a extreme performance, in terms of time and total resource expenditures, is to architect the system correctly the first time and then tweak the product.
Two examples of these approaches from the automotive world are rally cars (e.g., Subaru) in the iterative category and the Bugatti Veyron. (I'm a sube owner so I'll use them as an example). Subaru's are great cars to drive around every day that can be tuned into exceptional race and overall performance monsters with significant effort. However the iterative tuning approach simply cannot reach the upper echelons of performance - that takes a directed design. The Veyron on the other hand has no attachment or history to street cars (though it is street legal) - it was purpose built to be the fastest production car ever. To hit their top speed they had to shrink the side view mirrors (due to problems with aerodynamic lift) and the car needs to be dropped to hit max speed. From Top Gear February 2007: James May: Getting close to the maximum, which means the tires will only last for 15 minutes. But that's okay, because the fuel will run out in 12 minutes! Simply put, if you want the maximum performance, serious architectural design issues need to be factored into the base design.
So what does this have to do with LineRate Systems?
Simple, our core technology for LineRate Systems allows us to build software based network appliances delivering "Veyron" class performance but in my opinion will require a custom software architecture not currently found in software applications or operating systems.
The question for the reader is, how do you make the decision to follow an iterative or design approach to building a high performance product?
For us the business decision is straightforward - current market conditions make it unlikely that we will raise the capital necessary for the custom solution before we run out of existing capital... that and we have a customer interested in the basic product today.




No comments:
Post a Comment