LinkedIn | FaceBook | Twitter
I was reading a blog yesterday about the evils of SELECT *. The author pointed out that it's almost always a bad idea to use SELECT * for a query, but in the case of SQL Azure (or any cloud database, for that matter) it's especially bad, since you're paying for each transmission that comes down the line. A very good point indeed.
This got me to thinking - shouldn't we treat ALL programming that way? In other words, wouldn't it make sense to pretend that we are paying for every chunk of data - a little less for a bit, a lot more for a BLOB or VARCHAR(MAX), that sort of thing? In effect, we really are paying for that. Which led me to the thought of Performance-Driven Development, or the act of programming with the goal of having the fastest code from the very outset. This isn't an original title, since a quick Bing-search shows me a couple of offerings from Forrester and a professional in Israel who already used that title, but the general idea I'm thinking of is assigning a "cost" to each code round-trip, be it network, storage, trip time and other variables, and then rewarding the developers that come up with the fastest code.
I wonder what kind of throughput and round-trip times you could get if your developers were paid on a scale of how fast the application performed...
>pretend that we are paying for every chunk of data
No, please don't. We don't need cryptic data, we don't need cryptic names, and we don't need special routines to handle compressed data.
Instead, identify what you need. Benefits are:
1) Programmers will have to know what they want.
2) Future programmers will know what was wanted.
3) Maintenance coders will know what to fix.
4) No extraneous data wasting resources.
In the old'n days, we wrote code in assembler if it needed to be fast. But I've never seen a fortran program run slow.
This can be taken too far.
A typical business owner is also paying programmers by the hour and getting a usable and sellable application within a reasonalble time is also important.
The word balance come to mind to prevent a situation where you spend all your money developing and have no income.