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.
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).
I believe the front end side: GUI, WEBUI, XAML is more important than middle tier and database tier.
That's kinda like saying the color of a car is more important than the engine and the tires.
It's probably not a big deal to build a database. It is, however, a big deal to build one correctly, optimize an existing one, and maintain a well-designed data store. IMO, that is why database/datastore guys get the big bucks.
Some of the most challenging work I've done as a programmer is dealing with user interfaces (xhtml, xaml, servlets, mvc, asp.net etc). That being said, I think you're running into two different issues. On the database side, as Mathew said, a true DBA is going to be able optimize a large (millions of records) database in ways a regular developer will not know how. On the middle tier, I think the reason the UI is often so complex is because often the developer doesn't really build a true middle/business logic tier. So they end up putting all the logic in the application in the user interface, which is wrong. Finding good developers who know how to build a solid, object-oriented business layer who know domain driven design and OO design patterns is RARE. Build a bunch of classes with just getters/setters that match your database objects is NOT object oriented design. Hence they are worth more.
Other than that, I agree that still, UI work is very challenging programming and should be considered more important than it currently is.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With