Chapter 3. What Software Developers Want

To think about how a team can work together for a more cohesive view of data management, it’s necessary to step back and look at what’s important to the various players. Let’s start with the developer’s perspective.

As developers, we have a substantial impact on the way our users do business. All we have to do is keep up with a never-ending list of new requirements, bug fixes, and technical debt.1 How fast we can respond to these needs dictates how fast others can get on with their jobs.

To address the stream of changes, we need to be flexible. The software we work with needs to be flexible, too.

Freedom from Rigid Schemas

We’ve come to realize that requirements are constantly evolving. This is natural—as our understanding of business needs change, our software must adapt to the current demands. Attempting to define a schema up front that will handle all of our data and meet all of our needs is time consuming and frustrating—and changing requirements will affect what needs to be stored, updated, searched, and queried.

We understand that having a schema isn’t bad at all. There’s value in knowing what your data looks like. The challenge presented by relational databases isn’t that they require a schema—it’s that they require exactly one.

One of the hurdles to being nimble is the extremely painful process of schema changes. Identifying the needed change is just the first step, to be followed by a migration plan, scripting the change, adapting ...

Get Defining Data-Driven Software Development now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.