Michael Platt, a .NET Architect with Microsoft UK, writes a great story about architectural thinking. He describes being called by a distraught customer who claimed that their n-tier application was failing to scale past 50 users because 'Windows wasn't scalable'. Without spoiling the story, the post highlights a couple of points for me:
- The need to avoid panicking and remain clear-headed when thinking about problems (e.g. don't invoke magic, witchcraft or the Windows platform as the primary reason for a problem)
- The evils of premature optimisation (though to be fair, this problem seemed to illustrate the evils of optimising without really understanding what's going on)
- The value of understanding software architecture. Every now and then I devalue what I know about software architecture because it seems like such a well documented area - surely everyone knows about it? Stories like this remind me of the value of knowledge and experience.