Jens Schauder is software developer since 1997. He loves software development for the constant challenges and constantly changing environment. A great chance to learn and teach. He is also blogger, author of various articles and speaker at conferences. Jens is a DZone MVB and is not an employee of DZone and has posted 90 posts at DZone. You can read more from them at their website. View Full User Profile

We Need a New Movement: DbApps

  • submit to reddit

You probably heard about the DevOps movement. The idea is that developers and operations often don’t get along very well and that we have to change that in order to produce, deploy and maintain high quality software fast. I certainly agree with this movement. I have seen the great divide between developers and operations bring projects more or less to a full stop.

But there is another big divide running through many software development teams: Application developers versus database developers (or administrators).

In my experience this divide manifests itself in these ways:

  • Application Developers don’t give a damn about what happens in the database
  • Database Developers set up rules for the database without bothering to explain why or assisting in living up to these rules
  • Application Developers throw database related problems towards the Database Developers and just wait for a fix, without trying to learn to fix it themselves.
  • Database Developers insist that everybody uses their toolchain (e.g. sql plus + bash) without caring how or if this integrates with the tool chain of the rest of the team.
  • Application Developers demonstrate an attitude of: “It’s a database problem, not mine”
  • Database Developers demonstrate an attitued of: “It’s an application problem, not mine”

You two, listen up: It is your project. If it sucks or even fails, nobody will ask if it was the database part of the team or the application part of the team. It’s just the team. So I’ll expect the following from you:

Application Developers: Learn yourself some SQL. And I don’t mean select * from table. I mean merge statements, analytic functions, DDL and PL/SQL. Learn to read Explain plans and how to use data dictionary views. If there is a database related problem try to solve it. If you fail get help by a database expert, but make sure you are doing the work, so next time you can fix a similar problem yourself.

Database Developers: Learn the programming language used by the rest of the team. Learn what is happening in on the Continuous Integration system. Make sure it massages your database scripts as well. Read about refactoring databases, continuous integration of databases and listen to this podcast about agile database development.

Both: Get used to the fact that there are many aspects to a project and you probably understand only half of them. Get in the habit to talk to the guys and girls understanding the other half.

Published at DZone with permission of Jens Schauder, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)



Fahmeed Nawaz replied on Tue, 2012/06/12 - 10:21am

GuiceyMongo is a Google Guice & MongoDB integration library that facilitates DB/DBCollection configuration and injection, and injection of interfaces that automatically proxy the methods as an eval to a configured database. There are more features in the works, like Google Protobuf-like data entity generation and a DSL for typed querying based on the generated data entities.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.