C# – Why do most people say that data services and the database are the most important parts of a system?


Why do most people say that data services and the database are the most important parts of a system?

From what I have seen, it is the front end development: GUI, WEBUI, XAML that is the most important. Certainly more important than the middle and database tiers.

I don't think it is a big deal to build an application's database. After all, the data schema comes from the business analysis and there is very little "creative" work on the part of the database developer. The same is true for the business logic side (middle tier). In addition, J2EE and the .NET enterprise framework both help to make the business logic simple to develop.

So, what is the database developer doing that is so important? Why do we even need a standalone database developer? Why do most companies still pay a higher salary to middle/backend developers instead of front-end developers?

I believe that developers building the UI (in Java or C#) should have database knowledge. This would let them build the entire application. In my view, it is impossible to let a not-database knowledge person develop the application anyway.

Please let me know what I am missing here.

Thanks a lot.

Best Solution

The front end is usually much easier to change while the backend needs a more through requirements and design phases. If there's a change to the backend, then the front-end will most likely need to change, so change requests dealing with the backend services (db, etc.) will often result in lots of changes through the middle and front ends. A change in the front end usually doesn't affect the backend.

The DBA issue really depends on the size of your project. If you're talking about projects with a few simple tables and a few thousand records, then you're probably right. A real DBA would probably consider that beneath his/her worth to work on that project anyway. A real DBA is more like a systems administrator that specializes in DBMS optimizations. Nearly any programmer can build tables, relationships, views, stored procs, etc. And especially with easy to use ORMs, a lot of the stuff that DBAs used to do isn't really needed. However, a DBA is crucial when working on large projects and large database systems for DBMS optimizations, system configuration, failover configuration, etc.

Your original question doesn't talk about the project scope and I think that's where you're confused or don't see the importance of a real DBA (not to be confused with someone that knows a bit of SQL or does data entry and call themselves a DBA).

Related Question