Went to YOW 2010 thanks to my workplace the other day. A 2 day conference full of presentations and workshops on coding, best practices and new developments. All in all pretty cool. One of a few topics which was echoed throughout the conference was the concept of performance and scalability.
Probably the most important concept in improving the performance / latency / scalability of your application is that you can’t improve what you can’t measure.
Sounds simple, right? It reminds me of the Assets / Liabilities concept in Rich Dad, Poor Dad. Simple concepts are sometimes the hardest to follow, since we as adults tend to make things more complex than they need to be.
Probably the most common reason things are slow is because of lack of ‘mechanical sympathy’ when writing code, or over-engineering or false-optimising. K.I.S.S is a common principle not just in software but in engineering, I remember a car racer re-iterating the K.I.S.S principle when looking for performance gains. The most effective way to speed up a car is to remove weight from the car.
Perhaps we can borrow from this in software and simply remove code. The less weight (or LOC) you have in your project, the more quickly you can brake, accelerate or turn. In short, you are lightweight and mobile (yes i’m avoiding the term agile “con razon”).
Einstein said something like “make something as simple as it can possibly be to work, but no simpler”. Good advice =)