• Being both a VB.NET developer (yes, VB.NET; coming from a C and C++ background I'd prefer C# but other team members don't) and a SQL Server DBA, spending also one or two days a week on BI solutions with the Microsoft stack, I'm kind of stuck in the middle.

    The days you knew in advance what you were building are long gone now. A very efficient solution in terms of processor usage, memory usage, network bandwidth and disk access degrades slowly as more and more changes are piled upon it. It's easy to blame the developer but he didn't plan it that way, neither did the manager or anyone else. With so many software providers to choose from a company must do whatever the customer asks to avoid loosing another valueable account. Only after seeing the nearly finished application that customer will tell you what other features he can't live without. A relational database is not the most optimal tool to support these constant changes in requirements but it is a very stable environment to store data.

    Developers think row-based. They cannot work with set-based algorithms. Everyone who tells you otherwise hasn't worked together with developers. LINQ is a beautiful integrated query tool on sets, but most developers still prefer those old-school For Each loops. If your lucky they understand the benefits of joins and use them appropriately. They're good at other things but they're no good at databases. Efficient algorithms are at the base of efficient code, but for most developers getting the job done without subtle flaws or hidden 'features' is already hard enough. I know a lot of performance tuning on many aspects of applications, but I'm generally called AFTER an application becomes too slow to be useful.

    Most programmers like to call themselves developers. Most companies want to hire developers while paying only a programmers salary. Most errors will only surface after the solution has been deployed. The use of inefficient techniques are no exception to that rule. Good programmers are hard to find, good developers even harder. Would you be able to learn those so-called developers how to implement their solutions with those efficient techniques? If not, please stop complaining ...