Tuesday, January 8, 2008

optimizations are (not) evil

Once upon a time I've heard that optimizations are evil. I don't think that optimizations are evil, but they should have their time and place. Every time you do optimizations during the development you make mistakes. You draw hidden mistakes(+) and draw new(-). My opinion is to perform optimization after the (process|code|project|.*) development. When you try to optimize smth during the development process you might not know if they are needed here. And what are they for? (What|Who) will be affected? And probably these optimizations are useless because in the next optimization stage you decide to use another technology. When the hole system is finished now you can squint your eyes and search for the bottlenecks. Because now you know how the whole system works. When you think you've found the bottleneck ask your friend about it. When you are looking for unoptimized parts you _want_ to find them, even they don't exist. And you'll find a couple, of course then. =) Each time you want to optimize measure machine run_time and your (optimization+bugfixing+coffee)_time. Compare them and make right decision. I've decided to make special post-release stage: post-release-optimization stage. During this stage I can't break the release and I know what current release does. All changes will go to the "-pro" release and to the next release. And now I'm proud to have "-pro" releases =).

No comments: