adam bien's blog

Programming Languages And Productivity Are Like German Highways 📎

There are no speed limits at the German highways. In theory. In practice there are lot of road works, traffic jams and local speed limits. Those "natural" limitations are enough to keep your average speed significantly lower, than originally estimated. Regardless how fast you are driving at the unlimited sections (also > 200 km/h) at the next traffic jam, the race car will meet the trabi. And if you are really lucky, you will gain few minutes at the end of a long journey. (This fact of course doesn't prevent drivers to buy race cars :-))

Many software projects are exactly like that. Regardless how fast you are developing and which marvelous tools or languages you are using, the lack of domain knowledge and functional requirements will slow you down. In practice you will get some irrational non-functional and rational requirements on top as well. And don't forget about some annoying political and "strategic" games...

Technology used rationally never was a problem in the past. With a touch of pragmatism you can be extremely productive - regardless which platform, language or framework you are using. Just be careful with your next estimation - a new language and platform will hardly increase your productivity in order of magnitudes. Introduction of pragmatism, at the other hand, could speed you up significantly, without changing the language or platform.

[see page 253 (Pragmatic Java EE Architectures) in "Real World Java EE Patterns" book